Blog
ACR StealerEtherHidingInfostealerAI Traffic Analysis

ACR Stealer ed EtherHiding: il C2 che non si può sequestrare

Microsoft ha visto ACR Stealer risolvere il C2 da una blockchain pubblica. EtherHiding elimina il resolver sequestrabile su cui si reggono takedown e blocklist.

Zero Hunt Research··9 min di lettura

Ogni takedown di cui avete letto si regge su un presupposto: da qualche parte nell'infrastruttura dell'attaccante c'è qualcosa che si può sequestrare. Un dominio che un registrar può sospendere. Un VPS che un hoster può spegnere. Un bucket che un cloud provider può disabilitare. Tutta l'economia difensiva costruita attorno al C2 — blocklist, sinkhole, feed di reputazione, disruption coordinate — poggia su quell'unico punto di leva.

Il 16 luglio 2026 Microsoft Threat Intelligence ha pubblicato la sua analisi di ACR Stealer, relativa all'aumento di attività che Defender Experts ha osservato negli ambienti dei clienti tra fine aprile e metà giugno 2026. Nella seconda metà del report c'è il dettaglio che conta più della famiglia di malware in sé: in una parte delle intrusioni un loader Python secondario recuperava la posizione del payload successivo interrogando endpoint RPC di blockchain pubbliche e infrastrutture Web3 di terze parti.

È esattamente lì che il presupposto si rompe. Non c'è nessun registrar a cui scrivere.

Cosa ha osservato davvero Microsoft

ACR Stealer non è una novità. Secondo le Intelligence Insights di aprile 2026 di Red Canary è un infostealer malware-as-a-service scritto in C++, attivo dal 2024, venduto su forum russofoni da un attore identificato come "SheldIO" e valutato come evoluzione di GrMsk Stealer. BleepingComputer, il 18 luglio, riporta che si tratta anche del rebranding di Amatera Stealer.

Quello che è cambiato è il volume e il canale di consegna. Negli stessi dati di aprile Red Canary colloca ClearFake per la prima volta al primo posto della classifica di prevalenza, con ACR Stealer che debutta a pari merito al sesto: viaggia come payload di ClearFake. Una campagna osservata ad aprile attirava sviluppatori con finte pagine di installazione di Claude Code su claude-desktop[.]gitlab[.]io, secondo lo schema paste-and-run.

Microsoft documenta due catene. Entrambe partono da un prompt ClickFix: è l'utente stesso, socialmente ingegnerizzato, a incollare un comando nella finestra Esegui.

Catena 1 (con scrittura su disco): cmd.exe invoca rundll32.exe per caricare una DLL da una share WebDAV remota su HTTPS, con directory basate su GUID e nomi file camuffati da risorse legittime (google.ct). Alcune varianti montano la share con pushd o incapsulano l'esecuzione in conhost.exe --headless. Uno stage PowerShell offuscato scrive il payload in %LocalAppData%\Temp sotto un nome plausibile — LogiOptionsPlus — ed esegue uno script Python tramite un pythonw.exe incluso nel pacchetto. La persistenza è uno scheduled task nascosto travestito da updater software. Il loader risolve le API a runtime ed esegue shellcode tramite VirtualAlloc e le Windows Fiber API (ConvertThreadToFiber, CreateFiber, SwitchToFiber): un percorso di esecuzione che aggira la telemetria sulla creazione di thread su cui si basa gran parte delle detection.

Catena 2 (fileless): mshta.exe recupera contenuto HTA remoto, un loader VBScript passa via oggetti COM a PowerShell, e PowerShell scarica un'immagine JPEG da un servizio di image hosting. Il payload viene estratto dai pixel dell'immagine, decifrato, decompresso ed eseguito in modo riflessivo.

Il resolver su blockchain compare in un sottoinsieme della Catena 1.

EtherHiding: perché quel C2 non ha un resolver sequestrabile

La tecnica che Microsoft chiama EtherHiding trova la sua trattazione tecnica più chiara nell'analisi di ottobre 2025 del Google Threat Intelligence Group. Vale la pena essere precisi sui meccanismi, perché la scorciatoia giornalistica ("malware sulla blockchain") sbaglia proprio la parte che conta.

L'attaccante pubblica uno smart contract su una chain pubblica — BNB Smart Chain ed Ethereum nei casi documentati. Il contract conserva un blob cifrato: tipicamente un IV più l'indirizzo C2 o il payload dello stage successivo. L'impianto lo legge con una chiamata in sola lettura (eth_call). Quella chiamata non genera alcuna transazione. Non costa gas. Non lascia traccia sul ledger.

GTIG fa risalire la tecnica a UNC5142 e alla campagna CLEARFAKE del settembre 2023, e documenta l'adozione da parte del cluster nordcoreano UNC5342 a partire da febbraio 2025. Un contract di UNC5342 — 0x8eac3198dd72f3e07108c4c7cff43108ad48a71c — è stato aggiornato più di venti volte in quattro mesi, a circa 1,37 dollari di gas per aggiornamento.

Confrontiamo onestamente la superficie di takedown:

Metodo di risoluzione C2 Cosa può sequestrare il difensore Costo per l'attaccante
IP / dominio hardcoded L'host, il dominio Ricostruzione completa dell'infrastruttura
DGA Domini pre-registrati, il seed Medio — si brucia il seed, si ricompila
Fast-flux / bulletproof hosting Provider upstream, ASN Basso, ma il provider è un bersaglio fisso
Sito legittimo compromesso Il sito (il proprietario lo ripulisce) Basso — se ne trova un altro
Dead drop on-chain Niente ~1,37 $ per puntare altrove

Non esiste un abuse desk di una blockchain. Il contract non può essere cancellato da nessuno tranne il proprietario, e cambiare la destinazione costa meno di un caffè.

"Abbiamo bloccato il dominio del C2."

Quale? L'impianto chiede al contract un indirizzo fresco ogni volta che gli serve. Avete bloccato un valore, non una sorgente. La sorgente è immutabile, replicata globalmente e raggiungibile tramite una dozzina di API provider pubblici.

L'asimmetria che nessuno mette nelle slide

C'è però un aspetto a doppio taglio, ed è il motivo per cui questa è una storia di detection e non di resa.

Le letture sono invisibili on-chain. Le scritture no. Ogni volta che l'operatore aggiorna il puntatore al payload, quell'aggiornamento è una transazione: registrata in modo permanente, pubblicamente leggibile, con timestamp e legata per sempre a un indirizzo di contract. GTIG ha potuto contare più di venti aggiornamenti in quattro mesi proprio perché è il tradecraft dell'attaccante ad archiviarli. Il C2 on-chain regala all'attaccante resistenza al takedown e consegna al difensore un registro operativo permanente e non manomettibile. Nessun C2 tradizionale offre questo.

Più utile ancora per chi difende una rete oggi: l'impianto deve comunque raggiungere la chain. Non esegue un full node. GTIG ha osservato attori che interrogano provider API centralizzati — Binplorer, Blockchair, Blockcypher, Ethplorer — mentre Microsoft parla di endpoint RPC pubblici e infrastruttura Web3 di terze parti. In entrambi i casi, il traffico è lì, sul filo.

E su una postazione dell'ufficio amministrazione, un processo che non è un browser che apre una sessione verso un provider di nodi Web3 non è un falso positivo. È la cosa più anomala che quell'endpoint farà in tutto il trimestre. L'indicatore si è spostato: non è più il dominio C2, che è usa-e-getta e non bloccabile. È la forma del traffico di risoluzione, che la tecnica non può eliminare senza rinunciare a sé stessa.

ACR Stealer ruba sessioni, non solo password

La seconda cosa che questa campagna fa bene — dal lato attaccante — è la scelta di cosa portare via.

  • Database Login Data e Web Data di Chrome ed Edge, decifrati via DPAPI nel contesto dell'utente stesso
  • Token di sessione e cookie attivi
  • PDF da Desktop e Download
  • Documenti Microsoft 365 dalle cartelle OneDrive e SharePoint sincronizzate

In tutta la catena non c'è nessuna CVE. Non viene sfruttata nessuna vulnerabilità. L'utente incolla un comando, ed entrambe le catene ereditano esattamente i privilegi che l'utente autenticato ha già. È il motivo per cui i programmi centrati sul patching non toccano minimamente questa classe di intrusioni, e per cui "siamo completamente aggiornati" è la risposta a un'altra domanda.

Significa anche che il danno non finisce quando si rimuove il malware. Un token di sessione rubato resta valido finché non scade o non viene revocato esplicitamente: reinstallare il portatile non lo invalida. L'attaccante conserva la casella di posta, il tenant SharePoint e la sessione SSO mentre il vostro ticket di incident response dice "bonificato".

Remediation

Non è un problema di patch, quindi il runbook è un runbook di hunting e revoca.

1. Sono impattato?

Si parte dall'artefatto del paste-and-run. ClickFix lascia un'impronta in RunMRU — la cronologia della finestra Esegui — e Microsoft ha pubblicato tre advanced hunting query proprio per questo. Cercate:

  • Scritture DeviceRegistryEvents su RunMRU contenenti percorsi WebDAV o pushd
  • rundll32.exe o mshta.exe con parent explorer.exe o cmd.exe che caricano contenuto remoto
  • Scheduled task creati da PowerShell con nomi che imitano updater (Autoupdate, nomi in stile vendor)
  • pythonw.exe in esecuzione da sottocartelle di %LocalAppData%\Temp come LogiOptionsPlus
  • HTTPS in uscita da processi non-browser verso API provider Web3 o endpoint RPC di blockchain pubbliche

La firma antivirus Microsoft per la seconda catena è Behavior:Win32/Interhta.Int; la lista IOC del report copre otto domini C2 della Catena 1 (tra cui looksta[.]icu e contrite.quirksturdy[.]icu) e host di payload della Catena 2 come deep-harborio[.]com e auramatrixa[.]com. Trattateli come punti di partenza: sono la metà usa-e-getta dell'infrastruttura.

2. Contenere

  • Bloccare l'egress WebDAV (HTTP/HTTPS verso DavWWWRoot, e il servizio WebClient del tutto se non lo usate — nella maggior parte delle aziende non serve)
  • Impedire a mshta.exe e rundll32.exe di eseguire contenuto scaricato da internet tramite regole ASR
  • Negare ai processi non-browser l'accesso in uscita verso i principali API provider Web3
  • Svuotare RunMRU solo dopo averlo raccolto come evidenza

3. Hunting (ATT&CK)

Fase Tecnica
Esca paste-and-run T1204.004 Malicious Copy and Paste
Proxy execution rundll32 / mshta T1218.011, T1218.005
Stage PowerShell / VBScript T1059.001, T1059.005
Payload nascosto in JPEG T1027.003 Steganography
Persistenza via scheduled task T1053.005
Risoluzione C2 on-chain T1102.001 Dead Drop Resolver
Shellcode via Fiber API T1055 Process Injection
Furto credenziali browser T1555.003, T1539
Esfiltrazione T1041

4. Bonificare e — il passaggio che quasi tutti saltano — revocare

Rimuovere l'impianto è la metà facile. Poiché il bottino sono credenziali e sessioni attive, la bonifica non è completa finché non:

  • Revocate tutti i refresh token e le sessioni attive di ogni identità coinvolta (in Entra ID la revoca delle sessioni di accesso è un'azione distinta dal reset della password: fate entrambe)
  • Cambiate le password di tutte le credenziali salvate nei profili browser compromessi, non solo quella aziendale
  • Verificate regole di inoltro della posta, consensi ad app OAuth e metodi MFA registrati durante e dopo la finestra di intrusione
  • Rileggete i log di accesso a OneDrive e SharePoint cercando download massivi dalla sessione compromessa

5. Verificare

Confermate la bonifica dopo la revoca, osservando i tentativi di ri-autenticazione con i vecchi token. Fallimenti ripetuti da ASN sconosciuti dopo una revoca massiva sono la conferma che quei token erano vivi e ora sono morti.

Cosa resta alla detection

La conclusione scomoda del trend EtherHiding è che la difesa basata su indicatori ha un'emivita sempre più breve. Non si può mettere in blocklist uno smart contract fino a farlo sparire, e l'operatore lo ri-punta per 1,37 dollari ogni volta che bruciate un indirizzo. Ogni IOC del report Microsoft è vero, utile e usa-e-getta.

Quello che non è usa-e-getta è il comportamento sul filo. L'impianto deve risolvere, deve fare beaconing, deve fare staging e deve esfiltrare. È lo scenario per cui è stata costruita l'AI Traffic Analysis di Zero Hunt: un modello deep learning proprietario addestrato su miliardi di sequenze PCAP, con quattro head di inferenza in parallelo — traffico sospetto, classificazione malware, identificazione del tipo di attacco e fingerprinting applicativo — che gira sulla GPU dell'appliance, on-premise, senza alcuna callback verso il cloud. Non si chiede se una destinazione sia in una lista di reputazione. Si chiede se questo host, che non ha mai parlato questo protocollo verso questa classe di endpoint, lo stia facendo adesso mentre prepara e spinge dati verso l'esterno. Un C2 risolto su blockchain è invisibile alla reputazione e rumoroso al comportamento: esattamente lo scambio che la tecnica non può evitare di fare.

La seconda metà è la validazione. ClickFix funziona perché il percorso paste-and-run non viene quasi mai testato: le organizzazioni verificano il livello di patch, non se mshta.exe può ancora scaricare contenuto HTA remoto da un desktop utente o se l'egress WebDAV è davvero bloccato. Lo swarm di 10 agenti del pentest generativo di Zero Hunt risponde su base empirica: gli agenti Exploit, Credential e Post-Exploit eseguono una catena costruita per quell'ambiente dentro un container effimero con hardening gVisor, e riportano se quel percorso ha funzionato qui, non se esiste una policy sulla carta. Ogni finding è firmato ECDSA, e le campagne change-triggered rieseguono il test quando l'ambiente cambia. Il risultato è evidenza sui vostri controlli, invece dell'assunzione ereditata che la regola ASR attivata nel 2024 stia ancora facendo il suo lavoro.

Il contract non lo potete sequestrare. L'endpoint che ci parla lo potete vedere benissimo.