Vorstellung des spread project Marc Ruef | 25.03.2009 In gut gesicherten Umgebungen gibt es eine Vielzahl an Mechanismen, die verhindern sollen, dass etwelcher Programmcode eingebracht und ausgeführt werden kann. Dennoch ist es gerade im Rahmen von internen Sicherheitsüberprüfungen im Allgemeinen und bei Citrix Penetration Tests im Speziellen besonders wichtig, dass man eigene Programme ausführen kann (z.B. Portscanner oder lokale Exploits). Das spread project (http://www.computec.ch/projekte/spread/) gewährleistet auf der Basis des Client/Server-Prinzips eine einfache Möglichkeit, wie eigener Programmcode in ein sicheres Netz eingeschleust und ausgeführt werden kann. Der spread server (http://www.computec.ch/projekte/spread/?s=server) stellt verschiedene Dateien zum Download bereit. Diese können einerseits über den Webserver (http://www.computec.ch/projekte/spread/?s=server) oder mittels FTP (ftp://www.computec.ch/pub/spreadserver/) erreicht werden. Hierbei stellt der spread server speziell codierte Varianten der eigentlichen Dateien zur Verfügung. Diese Dateien tragen die Endung spr und stellen unscheinbar erscheinende Textdateien dar. Diese können aufgrund ihrer Dateierweiterung und des nicht-binären Inhalts ohne Probleme heruntergeladen werden. Filter auf Proxies, erweiterte Firewall-Mechanismen und Antiviren-Lösungen werden sich nicht in der Lage sehen, die echte Funktionsweise der Dateien zu erkennen und den Download frühzeitig zu verhindern. Sind die spread files ersteinmal vom Server heruntergeladen worden, müssen sie vor der Ausführung umgewandelt werden. Dies geschieht mit dem spread client (http://www.computec.ch/projekte/spread/?s=client), der in verschiedenen Versionen erhältlich ist. In klassischer Weise wird eine binäre Win32 Applikation (EXE) zur Verfügung gestellt. Diese wird voraussichtlich aufgrund ihres Dateityps geblockt werden. Aus diesem Grund werden alternative Clients dargeboten. Die erste unscheinbare Version ist ein VBS-Skript (Visual Basic Script). Dieses kann in der Regel aufgrund seiner ASCII-Struktur ohne Probleme heruntergeladen werden. Die Umwandlung des heruntergeladenen spread file erfolgt durch die Eingabe von "spreadclient.vbs spreadsourcefile outputfile". Zum Beispiel wird durch den Aufruf von "spreadclient.vbs D:\tmp\input.spr C:\cmd.exe" das spread file D:\tmp\input.spr in die echte Form C:\cmd.exe konvertiert. Die geschmuggelte cmd.exe kann damit ausgeführt werden. Eine alternative zum VBS-Skript ist ein Word-Dokument mit einem eingebetteten VBA-Makro (Visual Basic for Applications). In diesem unscheinbaren Word-Dokument ist ein Makro enthalten, das die gleiche Funktionalität wie die Win32-Fassung aufweist. Nach dem Öffnen des Dokuments, dem Zulassen von VBA-Makros des spread project und dem Klicken des Spread-Buttons, wird die mitgeführte Anwendung ausgeführt und die Umwandlung über das simple GUI ermöglicht. Als letzte Variante des spread client wird ein ActiveX-Element (http://www.computec.ch/projekte/spread/?s=onlineclient) bereitgestellt, das die Online-Umwandlung von spread files mit dem Microsoft Internet Explorer erlaubt. In den neueren Versionen (seit 6) ist hierzu in der Regel ein Herabsetzen der Sicherheitseinstellungen für ActiveX-Code erforderlich. Das dedizierte Hinzufügen des spread server zu den vertrauenswürdigen Seiten und das spezifische Konfigurieren dieser für erweiterte Rechte ist aus Sicherheitsgründen anzuraten. Weitere Informationen zum spread project findet sich auf der Projekt-Webseite. Dort ist ebenfalls eine Dokumentation (http://www.computec.ch/projekte/spread/?s=documentation) enthalten, die die Funktionsweise des Prinzips nocheinmal im Detail illustriert.