Attributi NTFS: Hide NTFS File Attributes (T1564.004)
Gli attributi del file system NTFS rappresentano una delle tecniche più sofisticate per nascondere dati malevoli all'interno di sistemi Windows. Ogni partizione formattata NTFS mantiene una Master File Table (MFT) che registra metadati per ogni file, inclusi gli Extended Attributes (EA) e i Data attributes - meglio conosciuti come Alternate Data Streams (ADS) quando ne esiste più di uno.
Questa capacità di storage nascosto si colloca nella tattica TA0005 (Defense Evasion), permettendo agli avversari di evadere scansioni statiche e antivirus tradizionali. La tecnica viene sfruttata da 1 gruppo APT documentato e 15 famiglie di malware, dimostrando la sua efficacia operativa nel mondo reale.
L'abuso degli attributi NTFS consente di memorizzare file binari completi, configurazioni o payload in spazi "invisibili" del file system. Un file apparentemente innocuo può contenere gigabyte di dati nascosti senza modificare la sua dimensione visibile nell'interfaccia standard di Windows.
La creazione di Alternate Data Streams richiede solo accesso in scrittura al file system NTFS. Il comando base per nascondere dati è sorprendentemente semplice:
echo "payload nascosto" > file.txt:stream_nascosto
Per nascondere un eseguibile completo all'interno di un file legittimo, utilizziamo:
type malware.exe > documento.docx:hidden.exe
L'esecuzione diretta del contenuto nascosto avviene tramite WMIC o PowerShell. Con WMIC possiamo lanciare l'eseguibile nascosto:
wmic process call create "C:\percorso\documento.docx:hidden.exe"
PowerShell offre maggiore flessibilità per interagire con gli ADS. Per leggere il contenuto:
Get-Content -Path "file.txt:stream_nascosto" -Stream stream_nascosto
La tecnica diventa ancora più potente quando combinata con file di sistema esistenti. PowerDuke (S0139) nasconde i suoi payload di backdoor negli ADS, mentre POWERSOURCE (S0145) scrive il payload decodificato in un ADS chiamato kernel32.dll salvato in %PROGRAMDATA%\Windows.
Per replicare il comportamento di Gazer (S0168), che memorizza configurazioni negli ADS quando il Registry non è accessibile:
$config = @{Server="C2.domain.com"; Port=443} | ConvertTo-Json Set-Content -Path "svchost.exe:config" -Value $config
Gli Extended Attributes richiedono API native. Regin (S0019) utilizza EA per memorizzare eseguibili cifrati - una tecnica replicabile tramite:
fsutil file setea file.txt ea_name 0x[hex_data]
L'utility esentutl (S0404), normalmente usata per database Exchange, può leggere e scrivere ADS:
esentutl /y payload.exe /d "C:\Windows\System32\notepad.exe:payload.exe" /o
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo