Tutorials

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

#exploitation#post-exploitation#windows

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

bash
notepad test.txt:secret.txt

Questo comando crea uno stream alternativo chiamato secret.txt associato a test.txt, modificabile con notepad.

2. Nascondere un payload binario

bash
type payload.exe > windowslog.txt:winpeas.exe

Con 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)

bash
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:

bash
update

Questo eseguirà lo stream winpeas.exe nascosto all'interno del file windowslog.txt.

Tecniche e strumenti correlati

  • Gli ADS non sono visibili nei normali comandi dir o ls. Per identificarli, si può usare:
- dir /R (su Windows) per elencare gli stream alternativi. - Streams.exe di Sysinternals per elencare e rimuovere ADS.
bash
dir /R
streams.exe -s C:\Users\user\Documents
  • ADS può essere usato anche per:
- Persistenza (nascondere script batch o PowerShell). - Evasione EDR con esecuzione da stream alternativi.

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.