Windows: Alternative Datenströme (ADS)

Mit Hilfe von sogenannten alternativen Datenströme (ADS), können im Dateisystem NTFS, zusätzliche Informationen / Daten zu den Hauptdaten gespeichert werden. Da Windows die alternativen Datenströme nicht standardmässig anzeigt, werden diese auch verwendet um Malware oder Daten zu verstecken.

Erstellen eines ADS

Ein ADS wird mit einem Doppelpunkt an eine Datei angehängt: “Dateiname:AD-Streamname”

Anhängen eines Textes:


echo "Ich bin nicht sofort Sichtbar" > normaler.txt:unsichtbar.txt

Schauen wir mit dem Windows-Explorer das Verzeichnis an, in dem die Datei liegt, können wir nur die Datei “normaler.txt” sehen. Diese Datei scheint jedoch keine Daten zu enthalten, da sie 0 KB gross ist.

normaler.txt
normaler.txt

Anhängen einer Datei:

Es können beliebige Binär- Asciidateien gespeichert werden. In diesem Beispiel wird die “netcat.exe” angehängt.


type nc.exe > normaler.txt:security.exe

Ausführen einer Datei im ADS

In den meisten Beispielen, im Internet, wird die angehängte Exe-Datei direkt mit dem Befehl start ausgeführt:


start c:\tmp\ads\normaler.txt:security.exe

Leider funktioniert dies bei mir unter Windows 7 nicht. Wird aber ein Systemlink auf diesen ADS gemacht, kann Netcat ausgeführt werden. Daher erstelle ich zuerst ein Systemlink auf diesen ADS:


mklink happy.exe c:\tmp\ads\normaler.txt:security.exe

Jetzt kann mit dem Befehl start Netcat ausgeführt werden:


start c:\tmp\ads\happy.exe

Anzeigen von AD-Streams

Windows 7 / Windows Vista:

Ab Windows Vista wurde der Befehl dir mit dem Parameter “/R” erweitert. Dieser listet alle dazugehörigen AD-Streams einer Datei auf.

dir /R
AD-Stream
Auflisten von AD-Streams

Windows XP / Windows 2000:

Bei den früheren Windows Versionen musste ein zusätzliches Tool verwendet werden um die AD-Streams anzuzeigen. Dabei kann das Command-Line Tool Streams 1.56 verwendet werden.

Auflisten von AD-Streams mit dem Command-Line Tool Streams
Auflisten von AD-Streams mit dem Command-Line Tool Streams

Als alternative kann auch die GUI-Basierte Anwendung AlternateStreamView v1.35 verwendet werden.

AlternateStreamView v1.35
AlternateStreamView v1.35

Nützliche Links

ADS Wikipedia
Dissecting NTFS Hidden Streams
Alternate Data Streams als Versteck für Schädlinge

Command-Line
mklink Dokumentation
type Dokumentation
start Dokumentation
echo Dokumentation
dir Dokumentation

Tools
AlternateStreamView v1.35
Streams 1.56

Disk Image mit dd unter Windows erstellen

Der ursprüngliche Unix-Befehl dd dient zum Kopieren von Datenströmen auf niedrigster Stufe. Mit der Hilfe von dd können Datenträger Images von CDs, Harddisks, USB-Sticks usw. erstellt werden. In den meisten Linux-Distributionen ist dd bereits vorhanden. Für Windows (32bit) gibt es auch ein Binary, das unter chrysocome.net heruntergeladen werden kann. Anders als die Unix-Version, bei der auch Datenströme konvertiert werden können, unterstützt die Windows-Version nur das Kopieren von Datenströmen.

Um eine Auflistung der vorhandenen Datenträger zu erhalten, wird folgender Befehl verwendet:


dd --list

Als Output erhalten wir eine Auflistung der vorhanden Datenträger:
dd --list

Um nun ein Image des Laufwerks f:\ zu erstellen:


dd if=\\.\Volume{bae40a24-91cd-11e0-804b-080027ffca15} of=c:\tmp\forensic.img --progress

Mit diesem Befehl wird nun dd das gesamte Laufwerk f:\ als Imagedatei im Verzeichnis c:\tmp speichern.

  • if= definiert das Inputfile / den Datenträger der kopiert werden soll
  • of= definiert das Outputtfile / den Datenträger der beschrieben werden soll
  • bs= definiert die Blockgrösse, welche standardmässig auf 512 gesetzt ist
  • – -progress zeigt die Anzahl der bereits kopierten Blocks an (nur unter Windows vorhanden)

Um unter Windows auf die erstellte Imagedatei zuzugreifen, braucht es ein Tool das dieses Image wieder als Laufwerk einbinden kann.

Dazu eignen sich die Tools:
FileDisk
p2-explorer