Payload Compressi: Obfuscation – Compression (T1027.015)

La compressione dei payload rappresenta una delle strategie più longeve e trasversali nel panorama dell'evasione difensiva. La tecnica T1027.015 si colloca nella tattica TA0005 – Defense Evasion e descrive come gli avversari sfruttino formati di archivio — ZIP, RAR, 7z, gzip — o algoritmi di compressione diretta per offuscare file malevoli, shellcode e stringhe sensibili.

Il meccanismo è duplice. Da un lato la compressione altera la struttura binaria del payload, rendendo inefficaci le firme statiche; dall'altro, il formato archivio aggiunge uno strato di interazione umana che rallenta l'analisi automatizzata. Tecniche più sofisticate includono la concatenazione di archivi ZIP multipli — un singolo file che nasconde directory centrali di archivi distinti, invisibili a parser come 7zip — e gli archivi autoestraenti (SFX), che eliminano la necessità di interazione multipla da parte della vittima.

I numeri confermano la diffusione: 7 gruppi APT documentati, 24 software che implementano la tecnica e 1 mitigazione formalmente mappata. La compressione viene spesso combinata con cifratura e codifica (Base64, XOR), creando catene di offuscamento multistrato che moltiplicano il costo dell'analisi per i difensori.

Il red teamer che vuole simulare questa tecnica in laboratorio ha a disposizione un arsenale ricco, dal banale archivio ZIP password-protetto fino alla compressione in-memory di shellcode. L'obiettivo è testare la capacità dell'EDR e del gateway email di ispezionare contenuto compresso a più livelli.

Il punto di partenza più immediato è la creazione di archivi con payload embedded. Su Windows, MakeCab è già disponibile nativamente e permette di comprimere un eseguibile senza installare nulla:

makecab C:\test\payload.exe C:\test\payload.cab

Per archivi ZIP password-protetti — scenario frequente nelle campagne reali — si può usare 7-Zip (open source) da riga di comando:

7z a -pInfected123 -tzip C:\test\delivery.zip C:\test\payload.exe

La simulazione della concatenazione ZIP, tecnica documentata nella descrizione della tecnica, richiede un approccio binario. Su Linux è sufficiente concatenare due archivi validi:

cat legit.zip malicious.zip > concatenated.zip

Il file risultante appare come un singolo archivio, ma contiene due directory centrali. Alcuni parser leggeranno solo il primo archivio, ignorando il payload nascosto nel secondo. Questo è un test eccellente per validare il comportamento dello strumento di decompressione usato dal gateway email.

Per la compressione di shellcode in-memory, Donut (open source) genera moduli compressi e cifrati partendo da eseguibili .NET, DLL o shellcode grezzo:

donut -i payload.exe -o loader.bin -z 2

Il parametro -z 2 abilita la compressione tramite aPLib. Il risultato è un blob che viene decompresso e iniettato solo a runtime, eludendo la scansione statica del disco.

Su Linux, la catena classica per simulare delivery via gzip — come documentato per Leviathan — prevede:

gzip -c payload.elf > payload.gz

Per testare la detection degli archivi autoestraenti, 7-Zip consente di creare SFX con configurazione di esecuzione automatica. Il red teamer dovrebbe verificare se l'EDR intercetta il processo figlio generato dall'SFX subito dopo l'estrazione.

Infine, per simulare la compressione di stringhe in registry — tecnica usata da Pillowmint — si può comprimere shellcode con PowerShell e scriverlo in una chiave di registro:

$compressed = [IO.Compression.DeflateStream]::new([IO.MemoryStream]::new([IO.File]::ReadAllBytes("payload.bin")), [IO.Compression.CompressionMode]::Compress)

Questo esercizio verifica se il monitoraggio del registro (Sysmon EventCode 13) rileva scritture anomale in chiavi non standard.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.