TL; DR
Sehlopha sa Lipatlisiso tsa Tšireletso ea Xygeni e fumane letšolo le rarahaneng la npm infostealer le fanoang ka liphutheloana tse peli tse kotsi: consolelofy 'me selfbot-lofy.
Phetolelo ea morao-rao (consolelofy@1.3.0) e kenya mojaro o payload o patiloeng oa AES oa 216KB o hlakolang mongolo nakong ea ts'ebetso le ho o kenya tšebetsong ka vm.runInNewContext(). Hobane mohopolo o kotsi o patilwe ka botlalo, di-scanner tse sa fetoheng tse itshetlehileng ka tlhahlobo ya khoele di ke ke tsa bona boitshwaro ba tsona ho fihlela nako ya ho e kenya tshebetsong.
Hang ha e se e hlakotsoe, mojaro o lefelloang, o nang le letshwao la kahare Mosholu oa Nyx, sepheo:
- Li-tokens tsa netefatso ea Discord
- Mabenkele a mangolo a tumello a sebatli a fetang 50
- Katoloso ea sepache sa chelete ea dijithale tse fetang 90
- Lithuto tsa Roblox, Instagram, Spotify, Steam, Telegram, le TikTok
- Ho phehella ha moreki oa desktop ea Discord
Mefuta eohle e 20 ho pholletsa le liphutheloana ka bobeli e tlalehiloe 'me ea netefatsoa hore e na le kotsi.
Kakaretso ea Tekheniki ea Infostealer ena ea npm
Ho fapana le malware a tloaelehileng a nako ea ho kenya, letšolo lena le itšetlehile ka nako ea nako mohlala oa ho hlakola mokhoa oa ho ngola.
Ho na le:
- Ha ho na lonya
preinstallorpostinstallhooks - Ha ho mehala e totobetseng ea netweke ea nako ea ho kenya
- Ha ho na mokhoa oa ho kotula mangolo a sa hlakang
Moroalo o kenang o sebetsa ha mojule o kentswe. Mmele oohle o kotsi o patilwe mme o fetoha memori feela nakong ya tshebetso.
Moralo ona o qoba ho bonoa ka ho khetheha nakong ea ho kenya sephutheloana.
Kamoo Mohlahisi enoa oa npm Infostealer a Sebetsang Kateng
Pele re sekaseka seo Nyx Stealer e se utsoang, re hloka ho utloisisa kamoo e sebetsang kateng.
Mokhoa o kotsi o ka hare ho npm infostealer ena o latela mokhoa o tsitsitseng:
Sesebelisoa se senyenyane sa ho kenya se hlakola mojaro o moholo o patiloeng ebe se o kenya tshebetsong ka matla kahare ho moelelo wa VM wa Node.js.
Moralo ona o entsoe ka boomo. Mohlaseli ha a pate ts'ebetso ka mor'a ho patoa feela, ba joalo ho tlosa khoutu e kotsi ponahalong e sa fetoheng ka botlalo.
Mohlala oa Phethahatso oa Boemo bo Holimo
Boemong bo phahameng, sephutheloana se etsa lintho tse 'ne:
- E fumana senotlolo sa AES ho tsoa poleloaneng ea lekunutu e thata ho sebelisoa SHA-256
- E hlakola mongolo o moholo o nang le khoutu ea hex o sebelisa AES-256-CBC
- E kenya tshebetsong JavaScript e hlakotsweng ka ho sebedisa
vm.runInNewContext() - E fana ka lebokose la lehlabathe le ntseng le pepesa lintho tse matla tsa nako ea ho sebetsa
Kakaretso ea Mokhoa oa Motheo
| Sehlopha | Tlhophiso/Boleng |
|---|---|
| -tharabololo | AES-256-CBC |
| Tlhahiso ea bohlokoa | SHA-256 (lentsoe la lekunutu) |
| Vektheri ea ho Qala (IV) | Li-byte tse 16 tsa 0x00 |
| phetha | vm.runInNewContext (e hlakotsoe, lebokose la lehlabathe) |
Ka ho teba, lebokose la lehlabathe le feta:
requireprocessBuffer- dilekanyi
- thepa e romelloang kantle ho mojule
Sena se bolela hore mojaro o se nang sephiri o boloka bokgoni bo felletseng ba ho:
- Mekhoa ea ho hlahisa mahe
- Bala le ho ngola lifaele
- Etsa mehala ea marang-rang
- Fetola lits'ebetso tsa lehae
Ena ha se VM e thibetsoeng. Ke VM e sebelisoang e le trampoline ea ho phethahatsa.
Mohlala oa ho Encryption oa Runtime (Mokhoa oa ho Phethahatsa oa Motheo)
Sesebelisoa sa ho kenya se senyenyane.
'Mele o kotsi ha o joalo.
Ka tlase ke mokhoa oa ts'ebetso o fumanehang ka har'a sephutheloana:
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); } Hobaneng ha sena se le bohlokoa
Moroalo o se nang sephiri:
- Na eseng li teng ka mongolo o hlakileng ka har'a sephutheloana sa npm
- Ha e bonahale ho bonolo
grepkapa ho hlahloba khoele e sa fetoheng - E etsahala feela mohopolong nakong ea ts'ebetso
- E sebetsa ka bokhoni bo felletseng ba nako ea ho sebetsa ea Node
Motsoako ona oa ts'ebetso ea AES + VM ke sesupo se matla sa boitšoaro ba npm infostealer e lekang ho qoba tlhahlobo e sa fetoheng.
Ka mantsoe a mang:
Haeba o hlahloba sefate sa mohloli oa sephutheloana, ha o bone motho ea utsoang.
U bona sesebelisoa sa ho hlakola mongolo.
Ho Etsahala'ng ka Mora ho Hlakola Sephiri
Hang ha e se e phethiloe, Nyx Stealer e qala maqhubu a pokello ea data a tsamaeang ka tsela e tšoanang.
Leqhubu la 1: Ho Ntša Bopaki ba Sebatli
Malware:
- Khoasolla nako ea ho sebetsa ea Python ho tsoa ho NuGet CDN
- Ho kenya lilaebrari tsa cryptographic
- Li-extracts mabenkeleng a mangolo a tumello a thehiloeng ho Chromium
- E hlakola liphiri tse sirelelitsoeng ke DPAPI
Ho ena le ho bokella ditlamo tsa tlhaho, e sebedisa PowerShell ho letsetsa Windows DPAPI ka kotloloho.
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'); } Mokhoa ona:
- E qoba mesebetsi ea pokello
- E sebelisa li-API tsa crypto tsa Windows tsa tlhaho
- E kopana le lisebelisoa tsa tsamaiso
Ke ho hlakola boitsebiso ba boemo ba OS, eseng ho hlakola.
Leqhubu la 2: Ho Hlakola Token ea Discord
Motho ea utsoang o tseba melaoana. O utloisisa sebopeho sa token e patiloeng sa 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'); } Phallo ea ts'ebetso:
- Tlosa senotlolo sa master ho tsoa ho Discord's
Local State - Tlosa senotlolo sa mantlha ka DPAPI
- Hlakola li-token blobs tsa AES-GCM
- Netefatsa li-tokens khahlanong le Discord API
- Ntlafatsa ka Nitro, libeche, tlhahisoleseling ea ho lefisa
Hona ha se ho lahla mangolo a tlwaelo. Ke ho utsoa ha seboka ho latela melaoana.
Leqhubu la 3: Ho Lebisa Sepache sa Dijithale
Mohlophisi oa npm infostealer o thathamisa:
- Katoloso ea sepache sa sebatli tse fetang 90
- Li-wallet tse 27 tsa desktop
- Litsela tsa sepache se batang
- Lifaele tsa peo ea Exodus
Mohlala oa teko ea ho hlakola mongolo oa peo:
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'); } Haeba e atleha, tumellano ea sepache e tla ba ea hang-hang 'me e ke ke ea fetoloa.
Sena se emela vector ea boleng bo holimo ea ho etsa chelete letšolong lena.
Ho phehella ka Discord Desktop Injection
Kamora ho kotula mangolo a tumello, Nyx Stealer e leka ho phehella ka ho fetola maemo a lehae. Khahlano moreki.
Sepheo:
%LOCALAPPDATA%\Discord*\app-*\modules\discord_desktop_core\index.js Tatelano ya Tshebetso
Mohlahisi oa infostealer o etsa mehato e latelang:
- E felisa ts'ebetso ea Discord
- E fumana mefuta e meng ea Discord e kentsoeng (Stable, Canary, PTB)
- E hlakola
discord_desktop_core/index.js - E kenya mokhoa oa webhook o laoloang ke mohlaseli
- E qala Discord hape
Sena se netefatsa hore linako tsa Discord tsa nakong e tlang li ntša matšoao a macha a netefatso ka bohona.
Habohlokoa, ho phehella hona ha ho itshetlehe mesebetsing e rerilweng kapa diphetoho tsa ngodiso. E sebedisa phetoho ya khoutu boemong ba tshebediso, mokgwa o patehileng.
Esita le haeba sephutheloana sa npm se kotsi se ka tlosoa hamorao, moreki oa Discord o ntse a le kotsing.
Papiso ea Tekheniki: Selfbot e Nepahetseng khahlanong le npm Infostealer
| Sehlopha | Laeborari ea Semmuso | Nyx npm Infostealer |
|---|---|---|
| taetsitshireletso | None | Mojaro o felletseng o patiloeng ka AES |
| VM ea Nako ea ho Run | Ha ho hlokahale | vm.runInNewContext ho bolaoa |
| Phihlello ea Bopaki | Discord API feela | Sebatli, li-wallet, DPAPI |
| Li-Download tsa Kantle | Che | Nako ea ho sebetsa ea Python ka NuGet |
| Mamello | Che | Ente ea moreki oa Discord |
| Ho etsa chelete | Boiketsetso ba bot | Thekiso ea lintlha tsa mokitlane |
Lera la encryption feela le se le arotse letšolo lena ho fereko e tloaelehileng ea mohloli o bulehileng.
Boto ea Discord ea molao ha e na lebaka la ho encrypt codebase ea eona eohle, ho hlahisa PowerShell ho fihlella DPAPI, ho jarolla linako tsa ts'ebetso tsa kantle, kapa ho fetola likarolo tsa kahare tsa ts'ebeliso ea komporo. Ha bokhoni boo bo hlaha kahare ho ts'ehetso e ipolelang hore e iketsetsa likamano tsa Discord, ho se lumellane ha meralo ho ba thata ho ho hlokomoloha.
Ho ya ka pono ya dipatlisiso, npm infostealer ena e siya mesaletsa ho pholletsa le dikarolo tse ngata. Leha ho le jwalo, matshwao a tshepahalang ka ho fetisisa ha se di-URL tse thata kapa ditsela tse itseng tsa difaele, kaha tseo di ka fetoha pakeng tsa mefuta. Ho ena le hoo, matshwao a tshwarellang ke a sebopeho.
Boemong ba sephutheloana, folakha e khubelu e matla ka ho fetisisa ke motsoako oa mojaro o moholo o patiloeng le sephutheloana sa ho hlakola mongolo sa nako ea ho sebetsa se sebetsang hang-hang ka vm.runInNewContext()Leha ho ngolwa ha di-encryption feela ho se kotsi ka tlhaho, ho sebedisa ho tlosa di-encryption tsa AES ho latelwang ke tshebetso ya VM e matla ka hara sephutheloana sa tshebediso ya Discord ho makatsa haholo.
Boemong ba moamoheli, dipaterone tse belaetsang di kenyeletsa mosebetsi o sa lebellwang wa ho hlakola DPAPI, ho hlaha ha tshebetso ho tswa moelelong wa ho itshetleha ho Node.js, le phetoho ya difaele tsa kopo tsa lehae tse sa lokelang ho fetolwa ke dilaeborari tsa mokga wa boraro. Ka ho tshwanang, mokatong wa marangrang, puisano ya setaele sa webhook e tswang kantle e qadileng ke ho itshetleha ho ntshetsopele e emela ntho e nngwe e sa tlwaelehang.
Ka mantsoe a mang, sebaka sa ho lemoha ha se sesupo se le seng sa ho sekisetsa. Ke kamano ea ho ngoloa ha data ka mokhoa oa encryption, ts'ebetso ea nako ea ho sebetsa, phihlello ea mangolo, le boitšoaro ba ho phehella tse senolang tšokelo.
Ho lemoha le ho fokotsa kotsi ka Xygeni
Mohlahisi enoa oa infostealer oa npm o ile a khetholloa ke Temoso ea Pele ea Malware ea Xygeni (MEW) ka kamano e arohaneng ea boitšoaro ho e-na le ho bapisa matšoao feela.
Ho ena le ho batla dithapo tse tsebahalang tse kotsi, MEW e lekola diphoso tsa sebopeho ho pholletsa le sefate se felletseng sa mohlodi. Tabeng ena, ho lemoha ho hlahile ka lebaka la ho kopana ha matshwao a mmalwa: mokgwa wa ho hlakola sephiri wa AES o kentsweng sebakeng sa ho kena ha mojule, ho etswa hang-hang ka hare ho moelelo wa VM, le ho se tshwane ho hlakileng ha bokgoni ba ho ya ho sepheo.
Habohlokoa, ha ho le e 'ngoe ea matšoao ana e pakang sepheo se kotsi. Leha ho le joalo, ha a hlahlojoa hammoho, a pepesa boiteko ba ho pata boitšoaro ba nako ea ts'ebetso. Mokhoa ona o arotsoeng ka mekhahlelo o fokotsa haholo liphello tse fosahetseng ha o ntse o khetholla litšokelo tsa ketane ea phepelo tse nang le kholiseho e phahameng.
Ho feta moo, nyeoe ena e bontša hore na ke hobane'ng ha tlhahlobo ea nako ea ho kenya e sa lekana. Mokhoa o kotsi ha o lule lingoloeng tsa potoloho ea bophelo. E sebetsa feela ka mor'a hore mojule o laele 'me e bonahala feela hang ha e hlakotsoe mohopolong. Ka hona, tšireletso e sebetsang e hloka tlhahlobo e hlokomelang ho patoa, kananelo ea mekhoa ea boitšoaro, le tlhokomelo e tsoelang pele ea ho itšetleha ka ntle ho liketsahalo tsa ho kenya.
Ho tlosoa ha ngoliso hoa sebetsa. Tlhahlobo e hlokomelang nako ea ts'ebetso e thibela.
Hobaneng ha npm Infostealer ena e le ea bohlokoa
Nyx Stealer e emela phetoho ea sebopeho ho malware e thehiloeng ho npm.
Ho tloha khale, liphutheloana tse ngata tse kotsi li ne li itšetlehile ka lingoloa tse bonahalang tsa nako ea ho kenya kapa lintlha tse totobetseng tsa ho ntša mangolo a tumello. Ka lehlakoreng le leng, letšolo lena le patela mojaro oa lona, le liehisa ts'ebetso ho ea nakong ea ts'ebetso, le sebelisa li-API tsa sistimi ea ts'ebetso tse molaong, 'me le theha phehello ka har'a lits'ebetso tse tšepahalang.
Ka lebaka leo, mohlaseli ha a hloke ho sebelisa meralo ea motheo ea npm ka boeona. Ho e-na le hoo, tlhaselo e atleha hobane ho kenya boitšepo ho bolela ho tšepa. Bahlahisi ba nahana hore ho kenya laeborari ke ts'ebetso e sireletsehileng, haholo-holo ha e itlhahisa e le fereko e ka khonehang ea sesebelisoa se tsebahalang.
Ha tikoloho e ntse e hola mme difereko di ntse di ata, moedi oo o sa bonahaleng wa tshepo o fetoha sebaka se hohelang tlhaselo. Ka hona, ho itšireletsa kgahlanong le di-npm infostealers tsa sejwalejwale ho hloka ho lemoha dipaterone tsa meralo ho ena le ho batla dikgwele tse sa fetoheng.
Qetellong, letšolo lena le matlafatsa thuto ea bohlokoa ho software supply chain security: litšokelo tse kotsi ka ho fetisisa ha se tse shebahalang li le kotsi ha li shejoa ka lekhetlo la pele, empa ke tse bonahalang li nepahetse ka sebopeho ho fihlela nako ea ts'ebetso e senola boitšoaro ba tsona ba 'nete.




