Immagine illustrativa generata con AI
Falsi recruiter distribuiscono NodeRabbit e PollCat: i nuovi RAT multipiattaforma di Nimbus Manticore
Falsi recruiter su LinkedIn diffondono i RAT NodeRabbit e PollCat di Nimbus Manticore tramite finti test tecnici con pacchetti npm trojanizzati.
Testo generato da intelligenza artificiale, pubblicato senza revisione umana. Trasparenza IA
Una campagna di cyber-spionaggio attribuita al gruppo iraniano Nimbus Manticore, conosciuto anche come Iranian Dream Job, prende di mira sviluppatori attraverso LinkedIn e altre piattaforme dedicate al lavoro. L’operazione, resa nota il 1 settembre 2026, trasforma comuni test di programmazione in vettori per due remote access trojan finora non documentati: NodeRabbit e PollCat.
Kaspersky ha collegato entrambi i malware all’attore iraniano. Le vittime ricevono archivi apparentemente preparati da recruiter di grandi aziende tecnologiche e vengono invitate a eseguire localmente progetti software entro scadenze molto strette. Il codice malevolo è nascosto nei file dell’applicazione, nelle dipendenze npm già incluse o nei componenti di avvio.
Non esistono patch da installare: non si tratta di una vulnerabilità di un prodotto, ma di una catena di social engineering che convince il candidato a eseguire il malware.
Il test tecnico diventa la prima fase dell’intrusione
Nimbus Manticore usa una procedura costruita intorno ad attività familiari per un ingegnere software. Un presunto addetto alla selezione contatta il candidato, presenta un’opportunità professionale e gli assegna una prova tecnica plausibile.
Nel caso osservato in Afghanistan, l’archivio Front-Technical-Challenge.zip, ospitato su AWS, conteneva il sorgente di uno strumento di project management chiamato Taskflow. Le istruzioni concedevano tre ore per correggere i bug del frontend, vietando l’impiego di assistenti basati sull’intelligenza artificiale.
Un’indicazione invitava espressamente a non modificare server.js, descritto come già funzionante. Era invece il punto di attivazione dell’infezione.
La prima riga del file importava colorized_terminal versione 2.1.0, un pacchetto npm contraffatto. La dipendenza non proveniva dal registro npm: era stata collocata direttamente nella directory node_modules distribuita con l’archivio. Una volta importato, il pacchetto avviava in background:
node_modules/.cache/.320697f1/index.js
Quel file contiene NodeRabbit. La tecnica evita di presentare alla vittima un eseguibile apertamente sospetto e sfrutta il normale flusso di lavoro del test: installare o esaminare il progetto, avviare il server e provare l’applicazione.
Altri campioni della stessa famiglia sono stati individuati su due sistemi in Egitto ed Etiopia. In queste varianti il pacchetto usato come esca è pretty-log versione 2.1.0, anch’esso inserito nel progetto come dipendenza trojanizzata.
NodeRabbit controlla file, processi e configurazione di rete
NodeRabbit è un RAT basato su Node.js, progettato per funzionare su Windows, Linux e macOS. La prima variante analizzata comunica con tre applicazioni ospitate su Azure:
plugplay.azurewebsites[.]netrgbteller.azurewebsites[.]netwslwebui.azurewebsites[.]net
Il protocollo di comando e controllo separa registrazione, recupero degli ordini e invio dei risultati. Gli endpoint sono rispettivamente /api/rabbit/checkin, /api/rabbit/task e /api/rabbit/result.
Gli 11 comandi supportati consentono agli operatori di raccogliere informazioni sull’host, elencare processi, eseguire istruzioni tramite shell ed esplorare directory. Il malware può inoltre leggere file a blocchi, restituirli in Base64, scrivere contenuti decodificati in posizioni arbitrarie e cancellare file o intere directory.
La ricognizione comprende adattatori di rete, indirizzi MAC e IP e configurazioni DNS. Il server può anche modificare la frequenza del beaconing, adattando il traffico C2 alle esigenze dell’operazione.
Una funzione permette di ricevere uno script Node.js codificato in Base64, salvarlo con un nome casuale e l’estensione .tmp, eseguirlo e rimuoverlo subito dopo. In questo modo l’attaccante può estendere dinamicamente le capacità dell’impianto, lasciando meno file permanenti sul sistema.
Le varianti più recenti introducono controlli contro gli ambienti di analisi e un supporto parziale ai proxy aziendali. Una di esse usa endpoint mascherati come servizi software:
/sdk/v2/ready/sdk/v2/config/sdk/v2/events
La persistenza cambia in base al sistema operativo: chiave Run del registro su Windows, voce cron su Linux e Launch Agent su macOS. Alcuni campioni si presentano come aggiornamenti di Microsoft Edge o componenti di Intel Driver & Support Assistant.
WSL, VS Code e Git hook ampliano la persistenza
La terza variante di NodeRabbit contiene funzioni mirate a Windows Subsystem for Linux. Crea un’attività Windows eseguita ogni giorno alle 10:00, dalla quale uno script Visual Basic viene avviato attraverso wscript.exe e wsl.exe.
Aggiunge inoltre 12 comandi dedicati alla gestione di processi, persistenza e ambienti di sviluppo. Può enumerare le unità Windows visibili da WSL, terminare processi, cambiare il server C2 e verificare quale indirizzo sia attualmente configurato.
Particolarmente rilevanti sono le funzioni rivolte agli strumenti usati dagli sviluppatori. Il RAT può cercare repository Git nelle directory comuni o utilizzate di recente, quindi inserire un launcher nei Git hook. L’esecuzione di normali operazioni sul repository può così riattivare il malware.
NodeRabbit può anche installare una falsa estensione di Visual Studio Code chiamata “GitHub Copilot Helper”, controllarne la persistenza e rimuoverla su comando. Un’altra capacità estrae indirizzi di account da archivi Outlook OST e PST.
Queste funzioni indicano che l’obiettivo non è soltanto mantenere l’accesso alla workstation. Repository, credenziali, contatti professionali e strumenti di sviluppo possono fornire materiale utile per ulteriori intrusioni.
PollCat usa OTP e urgenza come elementi scenici
La seconda catena impiega l’archivio RankChallenge-react-6uJSX3-main.zip, presentato come una valutazione tecnica a tempo. Il progetto contiene diversi riferimenti incoerenti a esercitazioni CTF: il pacchetto principale si chiama ctf-server, il backend stampa CTF server running e il frontend utilizza chiavi con prefisso ctf-.
Questi elementi fanno pensare a un’applicazione derivata da un template o generata con assistenza automatizzata. Kaspersky valuta anche l’ipotesi che gli operatori abbiano chiesto a un assistente AI di creare una piattaforma React in stile CTF, aggiungendo successivamente il malware.
Un tutorial PDF invita il candidato a premere Continue, inserire un codice OTP di sei cifre aggiornato ogni 30 secondi e concludere l’esercizio entro un’ora. La procedura produce urgenza, ma non protegge realmente il test.
PollCat funziona indipendentemente dall’OTP. Un errore di validazione impedisce di accedere ad alcune funzioni dell’esercizio, senza fermare l’infezione. Se la verifica riesce, l’applicazione genera un JWT e avvia persino una seconda istanza del RAT.
PollCat, scritto in JavaScript offuscato, stabilisce una persistenza giornaliera su Windows, Linux o macOS. I suoi sette endpoint gestiscono registrazione, identificazione dell’host, recupero dei comandi, invio dei risultati e trasferimento di file. Tra questi figurano /beacon, /gate/hello, /gate/fetch, /gate/submit, /vault/<uuid>, /vault/push e /gate/track.
Il malware dispone di 22 comandi per operare sui file, eseguire shell e JavaScript, trasferire dati, caricare DLL e gestire archivi ZIP. Può anche enumerare processi, unità, volumi e punti di montaggio. Tre istruzioni — WS_DOWNLOAD, REQUEST_ELEVATION e PERSIST — risultano presenti, ma non implementate.
La ricognizione cerca software aziendale e prodotti di sicurezza
PollCat controlla la presenza di directory riconducibili a 24 aziende e famiglie di prodotti, tra cui Microsoft, Google, Cisco, VMware, Fortinet, Palo Alto Networks, CrowdStrike, SentinelOne, Kaspersky Lab, ESET e Bitdefender.
La ricerca comprende anche browser e strumenti di accesso remoto. Quando trova una corrispondenza, il RAT inventaria la radice della directory e invia il risultato in JSON a /api/system-details/result.
La scansione non è ricorsiva, ma fornisce comunque agli operatori un profilo iniziale della workstation: difese installate, applicazioni aziendali, browser e possibili strumenti amministrativi. Queste informazioni possono guidare le azioni successive e aiutare a evitare controlli specifici.
L’attribuzione a Nimbus Manticore deriva anche dalle somiglianze con MiniFast, conosciuto come MiniUpdate o Retrograde. PollCat condivide con quel backdoor modalità di beaconing, recupero dei comandi e caratteristiche operative, oltre all’uso di Azure Websites e domini protetti da Cloudflare.
La campagna segna un’evoluzione rispetto agli strumenti in C, C++ e Go già associati al gruppo. Una base JavaScript multipiattaforma riduce il lavoro necessario per colpire sistemi differenti e si mimetizza meglio dentro progetti destinati agli sviluppatori.
Come individuare e contenere un possibile attacco
Le organizzazioni dovrebbero considerare non attendibile qualsiasi coding challenge ricevuta da un recruiter finché identità e azienda non siano state verificate attraverso un canale indipendente. Gli archivi contenenti una directory node_modules già popolata richiedono particolare cautela.
Occorre cercare colorized_terminal 2.1.0, pretty-log 2.1.0, file JavaScript nascosti sotto .cache ed estensioni VS Code non autorizzate. Va verificata soprattutto la presenza di “GitHub Copilot Helper”.
Le attività di risposta dovrebbero includere controlli su:
- chiavi Run del registro;
- attività pianificate e avvii giornalieri alle 10:00;
- cron e Launch Agent;
- Git hook modificati;
- esecuzioni anomale di
node,wscript.exeewsl.exe; - accessi inattesi a file Outlook OST o PST;
- connessioni verso gli host Azure associati a NodeRabbit;
- traffico verso gli endpoint C2 descritti.
Le dipendenze dovrebbero essere reinstallate da registri verificati, anziché usare quelle fornite nell’archivio. I test esterni vanno eseguiti in sandbox o macchine virtuali isolate, senza credenziali aziendali, repository sensibili o accesso ai sistemi produttivi.
Non è noto un punteggio CVSS e non esiste un aggiornamento risolutivo. La difesa dipende quindi dal controllo dei progetti ricevuti, dalla separazione degli ambienti di sviluppo e dal monitoraggio delle tecniche di persistenza impiegate dai due RAT.
Fonti
Questo articolo è una rielaborazione originale basata sulle fonti seguenti.
