Der Schnellere ist der Geschwindere Marc Ruef | 24.01.2006 Sicherheitsüberprüfungen sind mein täglich Brot. So verwundert es nicht minder, dass ich mit einer enormen Strukturiertheit an derlei Audits herangehe, solide Vorabklärungen tätige, einem grob definierten Vorgehen folge (z.B. mit der Hilfe von Checklisten) und mich an den gängigen Standards orientiere (z.B. BSI, ISO und OSSTMM). Die letzten Tage war ich mit einem Web Application Penetration Test beschäftigt, bei dem es darum ging, die neue Web-Plattform einer Investmentfirma auf ihre Sicherheit hin zu untersuchen. Durch die Einrichtung eines Test-Kontos konnte ich mich in der Umgebung bewegen, wie die zukünftigen Kunden auch. Eine der grundlegenden Informationen eines solchen Testings ist die eingesetzte Software. Durch das Wissen des installierten Betriebssystems, der eingerichteten Patches und der genutzten Anwendungen lassen sich zielgerichtete Angriffe in höchster Effizienz umsetzen. So verhindert man es, dass man auf einem Solaris-System versehentlich auf den Pfad C:\WINDOWS zugreifen möchte oder dass man auf einem Windows nach einer Datei namens /etc/passwd Ausschau hält. Das erste OS- und Application-Fingerprinting hat ergeben, dass es sich hierbei um ein Unix-System handelt, das mit einer klassischen Apache-Installation daherkommt. Als eingesetztes CMS konnte ich das quelloffene TYPO3 des Dänen Kasper Skårhøj identifizieren, das vor allem auch im professionellen Umfeld auf dem Vormarsch ist. Andere Komponenten wie Firewall- oder Intrusion Detection-Elemente waren für mich von minderem Interesse, da ich mich im System soweit als legitimer Nutzer bewegte. Obschon ich mit den Grundlagen von TYPO3 vertraut bin, habe ich mir die Quellen der aktuellen Version besorgt, um direkt am Programmcode grundsätzliche Mängel (z.B. fehlende Eingabeüberprüfungen) ausmachen zu können. Durch direkte Zugriffe auf potentiell installierte Module konnte ich auf dem Zielsystem die standardmässig eingerichteten Komponenten ausmachen (z.B. t3lib/stddb/tables.php). Per Zufall bin ich bei diesen Direktaufrufen über eine kleine Sicherheitsschwachstelle gestolpert. Und zwar war es möglich, durch die Eingabe von http://zielhost/typo3/t3lib/thumbs.php eine Fehlermeldung zu provozieren. Diese fiel zu meinem Erstaunen sehr umfangreich aus, gab sie mir nämlich den absoluten Pfad auf dem Zielsystem bekannt. Diese Information kann für einen Angreifer in vielerlei Hinsicht nützlich sein. So lässt sich Beispielsweise anhand der Verzeichnisstruktur erkennen, auf welchem Betriebssystem das ganze aufsetzt. In meinem Beispiel war gar im absoluten Pfad die Versionsnummer von TYPO3 genannt. Zudem kann das Wissen um den Aufbau der Verzeichnisstruktur bei direkten Dateizugriffen enorm hilfreich sein. Überprüfungen in den gängigen Datenbanken (http://www.securityfocus.com/vulnerabilities) haben ergeben, dass dieser Fehler bis dato noch nicht bekannt war. Weitere Tests haben ergeben, dass ebenfalls andere Templates und Default-Dokumente betroffen waren. Während ich das Reporting für den Kunden aufsetzte vermerkte ich mir, dass ich diesbezüglich das Entwickler-Team informieren und daraufhin ein Advisory publizieren werde. Schon fast ein bisschen ungläubig sass ich vor meinem Rechner, als ich Tags darauf über ein neues Advisory zu TYPO3 stolperte. Da war mir doch tatsächlich jemand zuvor gekommen. Rodrigo Marcos veröffentlichte unter dem Titel File system path disclosure on TYPO3 Web Content Manager (http://www.irmplc.com/advisory015.htm) (auf Deutsch (http://www.computec.ch/vuldb.php?1996)) exakt jenen Fehler, den ich Tage zuvor selber gefunden hatte. Tja, da war halt jemand schneller. Wenigstens hat es der Kunde Schwarz auf Weiss, dass es sich hierbei während des Penetration Tests um einen Zero-day gehandelt hat.