Alternate Data Streams (ADS) - Tecniche di Evasione su Windows
Alternate Data Streams ADS sono una funzionalità del file system NTFS, originariamente progettata per garantire compatibilità con il file system HFS Hierarchical File System di macOS. Ogni file su una
Alternate Data Streams (ADS) - Tecniche di Evasione su Windows
Cos'è un Alternate Data Stream?
Alternate Data Streams (ADS) sono una funzionalità del file system NTFS, originariamente progettata per garantire compatibilità con il file system HFS (Hierarchical File System) di macOS. Ogni file su una partizione NTFS può contenere più "stream" di dati:
- Data Stream primario: contiene i dati visibili del file (es. contenuto di un file .txt).
- Resource Stream (ADS): stream alternativi associati al file che possono contenere altri dati non visibili direttamente.
Utilizzo malevolo di ADS
Gli attaccanti possono sfruttare ADS per:
- Nascondere eseguibili o script in file legittimi.
- Eseguire codice senza lasciare evidenze visibili al file system.
- Evadere antivirus e strumenti di rilevamento basati su firma.
Comandi di base per sfruttare ADS
1. Scrivere un payload in un ADS
notepad test.txt:secret.txtQuesto comando crea uno stream alternativo chiamato secret.txt associato a test.txt, modificabile con notepad.
2. Nascondere un payload binario
type payload.exe > windowslog.txt:winpeas.exeCon questo comando, payload.exe viene nascosto all'interno dello stream alternativo winpeas.exe del file windowslog.txt. Quest'ultimo rimane un file normale e modificabile.
Eseguire un payload nascosto in ADS
Per eseguire un binario nascosto in uno stream, dobbiamo:
1. Creare un collegamento simbolico nella directory di sistema (es. C:\Windows\System32)
mklink update.exe C:\Temp\windowslog.txt:winpeas.exe⚠️ Questo comando richiede privilegi di amministratore e un prompt CMD avviato come Admin.
2. Eseguire il collegamento:
updateQuesto eseguirà lo stream winpeas.exe nascosto all'interno del file windowslog.txt.
Tecniche e strumenti correlati
- Gli ADS non sono visibili nei normali comandi
dirols. Per identificarli, si può usare:
dir /R (su Windows) per elencare gli stream alternativi.
- Streams.exe di Sysinternals per elencare e rimuovere ADS.
dir /R
streams.exe -s C:\Users\user\Documents- ADS può essere usato anche per:
Difese e mitigazioni
- Monitorare la creazione di link simbolici e l'uso anomalo di
mklink.
- Utilizzare antivirus avanzati con scanning di ADS.
- Policy aziendali che vietano l'uso di ADS (via GPO).
- Strumenti EDR moderni che effettuano scansioni nei resource stream.
Conclusione
L'abuso di Alternate Data Streams rappresenta una tecnica avanzata ma ancora efficace per l'evasione e la persistenza su sistemi Windows. Comprendere il loro funzionamento e l'impatto operativo è essenziale per ogni analista di sicurezza e penetration tester.