Steganografia C2: Steganography (T1001.002)
La steganografia applicata al Command and Control rappresenta una delle tecniche più eleganti di occultamento del traffico malevolo. Codificata come T1001.002 nel framework MITRE ATT&CK e appartenente alla tattica TA0011 (Command and Control), questa tecnica consiste nell'annidare comandi, payload di seconda fase o dati esfiltrati all'interno di file apparentemente innocui — tipicamente immagini JPG, PNG, BMP, GIF, ma anche documenti PDF o file audio.
A differenza della crittografia, che rende evidente la presenza di dati protetti, la steganografia mira a nascondere l'esistenza stessa della comunicazione. Un file immagine scaricato da un blog o allegato a un'email non desta sospetti nei controlli perimetrali tradizionali, che si concentrano su firme note, reputazione dei domini e pattern di traffico anomali.
I dati MITRE censiscono 11 famiglie di malware che implementano questa tecnica, 1 gruppo APT documentato (Axiom) e la campagna Operation Ghost attribuita ad APT29. La varietà degli approcci è notevole: si va dall'appending di dati grezzi a file JPG (Duqu), all'uso di Least Significant Bit encoding in bitmap (ZeroT), fino al parsing di chunk IDAT in file PNG per estrarre comandi cifrati con AES (LunarMail). L'impatto operativo è significativo perché neutralizza gran parte delle detection basate su DPI e sposta l'analisi verso correlazioni comportamentali più complesse.
In un esercizio red team la steganografia C2 richiede di costruire un canale bidirezionale che sopravviva ai controlli di egress filtering e SSL inspection. L'obiettivo è dimostrare che un implant può ricevere comandi da un file immagine ospitato su un servizio legittimo (CDN, hosting di immagini, social network) senza generare traffico distinguibile da un normale download.
Per la fase di weaponization, i tool più consolidati in ambiente Linux sono steghide (open source), utile per nascondere payload in file JPEG, BMP, WAV e AU con protezione a passphrase, e outguess (open source) per JPEG. Un esempio di embedding con steghide:
steghide embed -cf carrier.jpg -ef payload.bin -p PassPhrase123
L'estrazione lato implant avviene con steghide extract -sf carrier.jpg -p PassPhrase123. Per LSB steganography su PNG e BMP, la libreria Python stegano (open source) offre API immediate: from stegano import lsb; secret = lsb.reveal('carrier.png').
Per simulare comportamenti tipo ZeroT o LunarMail, uno script Python che manipoli direttamente i chunk IDAT di un PNG (usando la libreria Pillow, open source) permette di replicare l'encoding usato in campagne reali. La compressione zlib prima dell'embedding e la cifratura AES-CBC del payload aumentano il realismo dell'esercizio e mettono alla prova le capacità di detection basate su entropia.
Sul fronte C2 framework, Sliver (open source) supporta nativamente l'encoding di dati binari in file PNG per le comunicazioni, offrendo un banco di prova pronto all'uso per team che vogliono testare la propria SOC contro tecniche moderne. La generazione dell'implant avviene con sliver-server e la profilazione del canale HTTP con carrier PNG è documentata nel wiki del progetto.
Su Windows e macOS, tool come ImageMagick (open source) e ffmpeg (open source) permettono manipolazioni programmatiche di immagini e file multimediali utili per costruire carrier più sofisticati (ad esempio nascondere dati in frame video o in metadata EXIF esteso).
Un attacco realistico prevede: generazione del carrier, upload su un servizio hosting con reputazione pulita, configurazione dell'implant per polling periodico con jitter, estrazione ed esecuzione del comando in memoria. La catena va tracciata con cura per fornire al blue team artefatti utili al debriefing: hash dei carrier, timestamp di download, entropia dei payload estratti.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo