Die meisten habe schon mal davon gehört, oder wissen das es da irgend etwas gibt. Was aber dieser Alternative Daten Strom(ADS) wirklich macht, und wie man das im Punkte Sicherheit bewerten kann lest ihr in diesem Text. Klar ist auf jeden Fall das sich der ADS als Datenversteck eignet, nicht zuletzt weil sich beim Hinzufügen einer Datei die angezeigte Dateigröße sowie Prüfsummer nicht verändert!
Es ist nicht unwahrscheinlich das in so einem guten Datenversteck auch mal Bytes liegen die nicht gerade freundlich gestimmt sind. Beispielsweise gibt es den W32.Dummaru@M. Dieser besagte Wurm hat unter anderem einen IRC-Bot gedroppt und sich im Anschluß über die im ADS versteckte SMTP Engine an das ganze Outlook Adressbuch weiter geschickt. Echt eine fiese Sache.
Wofür ist ADS eigentlich gedacht?
“Microsoft Windows 2000 und Windows XP verwenden ADS-Unterdatenströme zur Speicherung von Vorschaubildern, zur Speicherung der in der Eigenschaftseite jeder Datei verfügbaren Metadaten und je nach Anwendung noch deutlich mehr. Unter Windows XP (ab Service Pack 2) wird außerdem ein sogenannter Zone Identifier gespeichert, der es ermöglicht, auch im Nachhinein Dateien zu erkennen, die aus dem Internet heruntergeladen wurden.”[1]Bösartige Verwendung
Vorab muss man sagen, das selbst heute noch nicht jeder Virenscanner in die ADSs schaut. Davon abgesehen kann man Schadcode so verschlüsseln das der AV nichts rafft. Die letzte Verteidigungslinie, der Virenscanner, könnte also hier versagen obwohl es im Normalfall durch Heuristik und Signatur die Schadsoftware erkannt hätte.
Der Kollege von SemperVideo hat mal rund 15 Online Scanner auf ADS getestet, und wenn ich mich recht erinnere, haben über 90 % versagt. Dieses Ergebnis kann aber eigentlich nicht bewerten da es den alternate data stream nur auf NTFS Platten gibt. Sobald eine Datei mit ADS auf ein anderes Dateisystem verschoben, wird ist der Stream und somit auch die Schadcode weg.
Praktisch funktioniert das übrigens ganz einfach. Die Daten kann man z.B mit type in den ADS umleiten. type ist quasi ein “raw-echo“. Auf dem Screenshot sieht man wie einfach es ist den Trojaner.exe in den ADS zu schreiben. Seit Windows Vista/7 kann man sich mit dem Parameter /r nach dem dir auch die Streams anzeigen lassen. Sichtbar ist der ADStream also weder im Dateiexplorer, noch irgendwo anders.
Wenn eine ausführbare Datei(*.exe, com, vbs, bat….) wie in dem Fall hier, in den Stream geschrieben wurde, kann man diese mit einem einfachen Start-Befehl ausführen! Vorausgesetzt man hat nicht Vista, 7 oder höher. Ab Vista hat Microsoft das dann endlich mit einer neuen NTFS Version unterbinden können. Ergebnis bei mir: Access is denied.
Damit hat Microsoft quasi ein Window zugemacht, aber die (Back)door ist immer noch auf. Mir fallen da gleich mehrere Möglichkeiten ein wie man den Code trotzdem auszuführen könnte. Eine der Möglichkeiten kann ich hier sharen, da sie, im Gegensatz zu den Anderen, aus meinem Kopf entsprungen ist.
Windows 7 ADS Hack
Es ist total banal. Um die Sperre zu umgehen, kann der gewiefter Administrator einfach einen Symlink der in den Stream zeigt anlegen . Führt man den Symlink aus wird die Anwendung, Trojaner.exe, aus dem ADS gestartet. Was man damit angefangen kann, lass ich an der Stelle außen vor.
Geht da sonst noch was?
Naja, es muss ja nicht gleich ein Wurm/Virus/etc. sein. Wenn ich ein Cracker wäre, und einen Windows Server kompromittiert hätte, wäre so ein ADS doch das perfekte Versteck für meine Scantools. Sowas würd da erst mal niemand auffallen.
Ich sehe in dem ADS auf jeden Fall noch etwas Potenzial für die Badboys. Mir sind derzeit mehrere Vulnerabilites bekannt. Das geht über eine Sandbox Escalation Vulnerability bis hin zu mehreren Denial of Service Attacken.
Gibt es Countermeasures?
Leider sind die alternate data streams ein Feature von NTFS das man nicht deaktivieren kann. Die beste Abwehr ist und bleibt nun mal ein gesunder Menschenverstand, gepaart mit Misstrauen fremder Dateien gegenüber. Ich verweise aber trotzdem gerne nochmal auf einen anderen Blog.