Genau hinschauen lohnt sich Marc Ruef | 17.12.2007 Im Zuge der Abschrift meines Buchs Die Kunst des Penetration Testing (http://www.amazon.de/dp/3936546495/) habe ich mich mitunter sehr intensiv mit der Technik des Application Fingerprinting (Kapitel 7, Seiten 396-439) beschäftigt. Beim aktiven Application Fingerprinting geht es darum durch spezifische Anfragen ein Verhalten einer Netzwerkanwendung zu provozieren, anhand deren Charakteristika sich das eingesetzte Produkt ableiten lässt. Dies ist gut und gerne die Grundlage für applikationsspezifische Attacken (schliesslich kann ein Apache 2.0.46 nicht mit den gleichen Exploits angegangen werden wie ein Microsoft IIS 6.0). Bei meinen intensiven Recherchen sind mir verschiedene Arbeiten, sowohl Abschriften als auch automatisierte Implementierungen, in die Finger geraten. Ich habe schnell bemerkt, dass hier einige gute Ansätze vorhanden sind. Doch das Thema wurde in den letzten Jahren nicht weiter verfolgt. So gibt es zwar eine Hand voll Lösungen für das automatische Application Fingerprinting von Webserver-Implementierungen (HTTP-Fingerprinting). Wirklich überzeugen können diese Produkte aber nicht, denn sie kränkeln alle an mindestens einer der folgenden Defizite: 1) Primitive Test-Zugriffe und Fingerprint-Analysen: Einzelne Implementierungen lassen sich oft nur ungenau ausmachen. 2) Kleine Fingerprint-Datenbank, die sich nur schwer selber erweitern lässt: Kein Abspeichern oder Einschicken neuer Fingerprints möglich. 3) Keine oder nur eine sehr einfache Reporting-Funktionalität vorhanden: Resultate, gerade bei grossen Tests, lassen sich nur schwer dokumentieren. Schon lange habe ich deshalb mit dem Gedanken gespielt, mir eine eigene Suite mit den verschiedensten Fingerprinting-Werkzeugen zusammenzubasteln. Mein erster umfassender Gehversuch sollte sodann httpmap (http://www.computec.ch/projekte/httprecon/) sein, mit dem sich die jeweiligen Webserver-Implementierungen ausmachen können sollten. Dabei habe ich versucht eine Vielzahl an Fingerprints zu erstellen, die bei weitem über das hinausgehen, was bisher eingesetzt wurde (hauptsächlich die Auswertung von Statuscodes und die Nennung von Header-Zeilen). Komplexe Prüfungen wie die Struktur des ETags oder die Schreibweise spezifischer Header-Zeilen sollten in die Analyse miteinfliessen. Nach wenigen Tagen hatte ich eine lauffähige Version erstellt. Fortwährend ihre Funktionsweise und Richtigkeit prüfend habe ich verschiedene Fingerprints der unterschiedlichsten Webseiten untersucht. Bei den sporadischen Tests, wo ich lediglich einen neuen Codeblock auf seine Funktionalität hin geprüft habe, habe ich vorzugsweise mir bekannte Ressourcen aufgerufen. Halt populäre Webseiten wie www.google.com, www.computec.ch, www.sony.com, www.microsoft.com, www.scip.ch, ... Dabei habe ich die unterschiedlichsten Rückgaben der jeweiligen Webserver gesehen. Einige von denen brachten mich wahrlich zum Lachen, andere hingegen zum Nachdenken. Einer der Lustigsten fand ich bei einem bekannten Reisebüro. Die Webserver-Implementierung in der Server-Zeile wurde mit GameCube ausgewiesen: commandHTTP/1.1 200 OK Date: Sat, 24 Nov 2007 13:42:17 GMT Server: Game Cube Last-Modified: Fri, 23 Nov 2007 08:52:17 GMT ETag: "7c8124-80a6-474694c1" Accept-Ranges: bytes Content-Length: 32934 Connection: close Content-Type: text/html/command Ich zweifle stark daran, dass hier wirklich die schon etwas ältere Spielkonsole aus dem Hause Nintendo zum Einsatz kommt. Falls doch, dann umso lustiger! Dennoch liess sich durch mein Tool als effektiv genutzte Implementierung ein Microsoft IIS 6.0 mit aktuellsten Patches ausmachen. Doppelte Freude also, denn die Software scheint gute Dienste zu leisten. Auf anderen Seiten wurden entweder ebenfalls als Server-Ausgabe oder als eigene X-Zeile sonderbare Laute wie "barf barf" (Hundegebell) oder "Mary has a lamb" (Kinderlied) ausgewiesen. Die jeweiligen Entwickler oder Administratoren geizen also nicht mit der Zurschaustellung ihres selbstironischen und manchmal ein bisschen verrückt erscheinenden Umgangs mit ihrer Umwelt. Schade nur, dass die wenigsten Besucher der Webseiten die wahrlich subtil eingeflochtenen Scherze also solche überhaupt wahrnehmen können. Die Hacker und Cracker freut es dafür umso mehr.