Iscriviti al webinar gratuito del 20 Ottobre per diventare Ethical Hacker! Scopri di più
Occultamento in NTFS: NTFS File Attributes (T1564.004)
La tecnica T1564.004 sfrutta caratteristiche native del file system NTFS per nascondere dati e binari malevoli in aree normalmente ignorate dagli strumenti di scansione tradizionali. Ogni partizione NTFS mantiene una Master File Table (MFT) che descrive ogni file e directory attraverso un insieme di attributi, tra cui gli Extended Attributes (EA) e gli attributi Data. Quando un file possiede più attributi Data, quelli aggiuntivi prendono il nome di Alternate Data Streams (ADS) e possono contenere qualsiasi tipo di contenuto, incluso un eseguibile completo.
L'abuso rientra nella tattica TA0005 (Defense Evasion) perché consente di sottrarre payload alla vista di antivirus, EDR con signature statiche e strumenti di enumerazione che elencano solo lo stream principale. Un binario copiato in un ADS non compare in Esplora file, non incide sulla dimensione visibile del file host e può essere eseguito direttamente da alcuni interpreti.
I numeri del framework ATT&CK sono significativi: 15 famiglie malware documentate abusano di questa tecnica, tra cui piattaforme di alto profilo come Regin, Astaroth, Valak, WastedLocker e BitPaymer, oltre a un gruppo APT statale (APT32). La longevità della tecnica – presente da oltre due decenni – dimostra quanto sia difficile mitigarla senza spezzare funzionalità legittime di Windows, come i metadati Zone.Identifier apposti dai browser sui file scaricati.
Per un red team, l'abuso di ADS ed EA offre un vettore semplice per staging di payload e persistenza a basso rumore. La sintassi base per creare un ADS in un lab controllato è:
type payload.exe > legitimate.txt:hidden.exe
oppure con PowerShell (nativo, open source):
Set-Content -Path .\host.txt -Stream evil -Value (Get-Content .\payload.ps1 -Raw)
La lettura dello stream avviene con Get-Content -Path host.txt -Stream evil, mentre l'enumerazione degli stream presenti si ottiene con Get-Item host.txt -Stream *. Da riga di comando, dir /r (built-in di Windows) elenca tutti gli ADS di una directory.
Per l'esecuzione diretta di un binario nascosto in uno stream, il vecchio trucco wmic process call create non è più affidabile sulle build recenti di Windows 10/11 e wmic stesso è deprecato. Rimane utilizzabile l'esecuzione tramite forfiles, o l'invocazione di script .wsf e .js dentro uno stream via wscript.exe. Un'altra catena documentata nei dati MITRE è quella di S0361 (Expand) e S0404 (esentutl), due LOLBAS nativi di Windows: entrambi possono copiare contenuto dentro e fuori da un ADS senza chiamare API di terze parti, riducendo la superficie di detection.
Sul fronte offensivo strutturato, framework come Cobalt Strike (a pagamento) e Sliver (open source) supportano moduli per il drop di beacon in ADS. Per esercizi didattici, il progetto NtfsStreamsView di NirSoft (gratuito, closed source) è utile per verificare visivamente il risultato del proprio staging.
Una catena tipica in un engagement replica il pattern di Valak o PowerDuke: consegna iniziale di un documento .docx con macro, download di uno stager PowerShell, scrittura del payload finale come ADS di un file di log in %PROGRAMDATA%, esecuzione tramite un task pianificato che invoca l'interprete corretto puntando allo stream.
Per gli Extended Attributes, meno esplorati ma sfruttati da Regin e Zeroaccess, l'accesso richiede API Win32 di basso livello (NtSetEaFile, NtQueryEaFile) e non esiste un cmdlet nativo: strumenti come PowerSploit (open source, archiviato ma funzionante) e utility custom in C/Rust sono la strada tipica in laboratorio. Simulare la tecnica su file system ReFS o su volumi montati via SMB da share Samba consente di validare quali detection dipendono strettamente da NTFS.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo
2 minuti · 7 domande
Che professionista cyber sei?
Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.