// 4 CVE · 2 EXPLOIT NELLE ULTIME 24H
La campagna TerminalFix nasconde payload eseguibili Windows nei pixel RGBA di file PNG. Non usa LSB ma tutti i bit disponibili, rendendo l'immagine irriconoscibile e

La campagna TerminalFix, attiva dal 28 agosto 2026, sfrutta una variante di steganografia che rinuncia alla plausibile negabilità visiva per conquistare un vantaggio tecnico decisivo. Gli operatori nascondono eseguibili Windows (PE e DLL) all'interno di file PNG strutturalmente validi, ma anziché limitarsi ai bit meno significativi — il classico approccio LSB che preserva l'immagine — codificano il payload binario in tutti i bit dei pixel RGBA. Il risultato è un file PNG che sfugge ai controlli automatici ma che, una volta renderizzato, mostra un'immagine irrimediabilmente corrotta.

La scelta è funzionale: i tool di rilevamento steganografico si concentrano su anomalie nei metadati o su alterazioni sottili dei bit meno significativi. Un PNG che usa l'intero spazio dei pixel come memoria binaria pura passa inosservato a questi controlli, pur essendo visivamente "rumoroso" quanto basta per non destare sospetti in un contesto di download automatico.

Punti chiave
  • Il file PNG analizzato (hash f5f1eb6d...) è strutturalmente valido con header IHDR, IDAT, IEND corretti, ma contiene un eseguibile Windows di 49.720 byte nascosto nei pixel RGBA
  • La steganografia usa tutti i bit disponibili, non i LSB: l'immagine originale è perduta e il rendering mostra pattern visivamente caotici
  • Il PE estratto è LockScreenContentServer.exe, eseguibile Microsoft genuino utilizzato per sideloading di una DLL malevola
  • La catena d'attacco culmina in un reverse tunnel WebSocket su gitnow[.]dev:443 che fornisce proxy SOCKS TCP arbitrario nella rete interna

Come il payload si nasconde nei pixel: l'analisi di SANS ISC

L'analisi tecnica condotta da Didier Stevens per SANS Internet Storm Center parta dal file PNG con hash SHA-256 f5f1eb6d43dd61d5b069c250e5c666384f7417d0c95014773bf9edf8ff13bebe. L'uso di pngdump.py, tool proprietario della raccolta, conferma la struttura formale corretta: IDAT decompressibile, 111 scanline, 112 colonne, filtri SUB standard, nessun metadato anomalo. Le dimensioni — 112 colonne per 111 righe con pixel RGBA a 4 byte — generano 448 byte per scanline.

Attivando l'estrazione dei dati raw del bitmap (opzione -R), l'analista trova nei primi 8 byte la lunghezza del payload embedded: 49.720 byte. Subito dopo emerge il DOS stub "This program cannot be run in DOS mode", signature inequivocabile di un Portable Executable Windows. Il PE carved corrisponde a LockScreenContentServer.exe, un eseguibile legittimo del sistema operativo Microsoft che viene strumentalizzato per il sideloading.

Due ulteriori file PNG, analizzati con lo stesso metodo, contengono la DLL malevola frammentata in due parti. Anche questi utilizzano la stessa tecnica a bit completo. La ricostruzione del payload passa attraverso i filtri PNG standard — SUB e gli altri definiti dalle specifiche — per ottenere il raw bitmap, quindi la lettura sequenziale dei byte come stream binario puro.

"The threat actors decided to use all of the available bits. The original medium is lost, and the PNG looks like this when rendered" — Didier Stevens, SANS ISC

Dal CAPTCHA falso al tunnel reverse: la catena TerminalFix

Microsoft Threat Intelligence ha tracciato la campagna come evoluzione di ClickFix, con una variante critica: invece di indirizzare la vittima verso la finestra di dialogo Esegui, TerminalFix spinge l'utente verso Windows Terminal e PowerShell. Il vettore iniziale è un falso CAPTCHA che istruisce l'utente a copiare e incollare comandi PowerShell, sfruttando abitudini consolidate di verifica.

La DLL sideloaded — dui70.dll — esegue PowerShell che scarica i file PNG da domini controllati dagli attaccanti e ricostruisce il payload frammentato. L'esecuzione finale avviene tramite pythonw.exe, senza finestra visibile, con un client Python che stabilisce connessione WebSocket verso gitnow[.]dev sulla porta 443. Da questo canale gli operatori ottengono "full SOCKS-style TCP proxy access", secondo la descrizione di Microsoft.

La persistenza è garantita da un scheduled task con intervallo di 60 minuti. La campagna ha colpito "multiple industries", ma il dossier non specifica numeri di vittime o settori precisi oltre questa indicazione.

Perché l'abbandono di LSB cambia il gioco difensivo

La steganografia LSB tradizionale punta a un obiettivo duale: nascondere il payload e mantenere l'immagine originale sufficientemente intatta da non generare sospetti. TerminalFix inverte questa logica. La priorità non è più la plausibile negabilità visiva — l'utente medio non apre con un viewer ogni file scaricato da un browser — ma l'evasione dei controlli automatici.

I tool di rilevamento steganografico si aspettano anomalie nei bit meno significativi o in metadati non standard. Un file che distribuisce il payload su tutti i bit dei pixel, applicando correttamente la specifica PNG, non presenta queste anomalie. Il filtro SUB, parte della codifica standard, viene gestito regolarmente durante l'estrazione. Non è chiaro dal dossier se il filtro sia sfruttato attivamente o sia semplicemente processato come previsto dalle specifiche.

Per gli analisti forensi questa evoluzione impone uno spostamento metodologico: l'ispezione dei metadati e delle appendici dopo IEND non basta più. È necessario estrarre i pixel raw, decompressi e filtrati, e analizzarli come stream binario. Il toolset convenzionale, ottimizzato per LSB e appended data, deve integrare capacità di carving su bitmap decompressi.

Cosa fare adesso

  • Ispezionare i file PNG sospetti a livello di pixel raw decompressi, non limitarsi a metadati e strutture after-IEND: i tool di analisi devono applicare i filtri PNG standard e leggere il risultato come stream binario
  • Monitorare le connessioni WebSocket in uscita verso domini non categorizzati, in particolare su porta 443 con pattern di traffico SOCKS-like: il tunnel reverse di TerminalFix usa questo canale per bypassare i firewall perimetrali
  • Rilevare l'esecuzione di pythonw.exe con connessioni di rete attive e nessuna interfaccia utente visibile: l'uso di Python come runtime per il client di tunneling è indicatore comportamentale specifico della campagna
  • Controllare la creazione di scheduled task con intervalli regolari di 60 minuti che puntano a eseguibili in percorsi non standard o a script PowerShell che scaricano immagini: questo meccanismo di persistenza è documentato nella catena d'attacco

Domande e risposte

Perché gli attaccanti hanno accettato di perdere l'immagine PNG originale?

Il dossier non offre una motivazione esplicita, ma la lettura tecnica suggerisce una scelta di ottimizzazione per l'evasione automatica. I controlli di sicurezza si concentrano su tecniche LSB e anomalie metadato; un payload distribuito su tutti i bit, con struttura PNG formalmente corretta, non attiva questi allarmi. L'immagine corrotta è irrilevante se il download avviene senza visualizzazione umana.

I filtri PNG standard sono parte dell'attacco o della normale decodifica?

I filtri — incluso SUB — sono documentati come parte della codifica PNG standard applicata durante l'estrazione. Il dossier non chiarisce se siano sfruttati attivamente per offuscare il payload o semplicemente processati per ottenere il raw bitmap. La formulazione cauta è necessaria su questo punto.

TerminalFix è legata a gruppi noti?

Il dossier non riporta attribuzioni a attori specifici né sovrapposizioni infrastrutturali con campagne precedenti. La tecnica di reverse tunnel WebSocket e il sideloading di binari Microsoft legittimi non sono esclusivi di un unico cluster di attività.

Fonti

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti


Fonti e riferimenti
  1. isc.sans.edu
  2. microsoft.com
  3. virustotal.com