Identifikation von Webapplikationen

Identifikation von Webapplikationen

Marc Ruef
von Marc Ruef
Lesezeit: 8 Minuten

Mittels Fingerprinting wird sich bei einer Sicherheitsüberprüfung darum bemüht, das eingesetzte Produkt zu erkennen. Klassischerweise wird zum Beispiel mit dem OS-Fingerprinting das genutzte Betriebssystem identifiziert. Im Rahmen von Application Fingerprinting geht es darum zu erkennen, welche Netzwerkanwendungen eingesetzt werden. Unsere Entwicklung namens httprecon hilft beispielsweise dabei, den dargebotenen Webserver zu ermitteln.

Einen Schritt weiter geht webapprecon. Die auf dem Core von httprecon basierende Lösung ist darum bemüht, die auf einem Webserver eingesetzte webapplikation zu erkennen. Hierbei kommen unterschiedliche Mechanismen zum Einsatz. Hauptsächlich wird mittels Pattern Matching die Datenstruktur der HTML-Ausgaben untersucht, um typische Elemente zu finden:

Eigenschaft Quelle Beispiel
Statische Strings HTML, CSS, Javascript Copyright-Hinweise, Link-Namen, …
Tags/Attribute HTML a, img, src, title, name, …
Klassennamen HTML, CSS class, name, id
Funktionsnamen Javascript ejs_preload();
Verschachtelung von Tags HTML, CSS /descendant-or-self::Foo/child::*
Referenzierte Dateien HTML, CSS, Javascript link rel="stylesheet" href="wordpress.css"
Pfad-/Dateinamen HTML, CSS, Javascript ./wp-admin/images/menu.png

Obschon es schon längere Zeit eine funktionierende Implementierung von webapprecon gibt (seit Anfang 2008), wurde bisher auf eine Veröffentlichung verzichtet. Die Schwierigkeit des Projekts besteht darin, umfangreiche Fingerprints der jeweiligen Webapplikationen anzustellen. Bisher konnte noch kein Algorithmus entwickelt werden, der in semi-automatisierter Weise die charakteristischen Eigenschaften erkennt und abspeichern kann. Das Zusammentragen der Fingerabdrücke findet bisher weitestgehend in manueller Weise statt und ist deshalb mit überdurchschnittlich hohem Aufwand verbunden.

webapprecon erkennt Webapplikation

Shreeraj Shah verwies Mitte des letzten Jahres auf ein ähnliches Produkt dem Namen AppPrint. Die Funktionsweise dessen ist jedoch bisher aufgrund einer ausbleibenden Veröffentlichung des Produkts oder Details zur Implementierung nicht bekannt. Es wird nur kurz darauf hingewiesen, dass Libraries und Standardkomponenten identifiziert werden sollen:

AppPrint scans IP range, IP or host for Web and Application servers. (…) It also fingerprints Web 2.0 libraries and components.

AppPrint von Shreeraj Shah

Am letztjährigen Chaos Communication Congress in Berlin (26C3: Here Be Dragons) wurde wafp von Richard Sammet vorgestellt. Hierbei handelt es sich um ein ähnliches Utility, das in Ruby geschrieben wurde und die MD5-Checksummen bekannter Dateien anhand einer SQLite3 Datenbank überprüft:

WAFP fetches the files given by the Finger Prints from a webserver and checks if the checksums of those files are matching to the given checksums from the Finger Prints. This way it is able to detect the detailed version and even the build number of a Web Application.

 wafp.rb http://blog.scip.ch/ 
 Collecting and fetching the files we need to identify the product …
 ……………………………………………………………………….
 Identified Product: serendipity (80.00 %)
 Collecting the files we need to fetch …
 Fetching needed files (#1506), calculating checksums and storing the results to the database:
 ……………………………………………………………………….
 Checking gathered/stored checksums (#1506) against the selected product (serendipity) versions  (#33) checksums:
 ……………………………

found the following matches (limited to 10): ——————————————————————————————- serendipity-1.3 430 / 571 (75.31%) serendipity-1.3.1 430 / 571 (75.31%) serendipity-1.2 407 / 554 (73.47%) serendipity-1.2.1 408 / 556 (73.38%) serendipity-1.0.2 326 / 448 (72.77%) serendipity-1.0 326 / 448 (72.77%) serendipity-1.0.4a 326 / 448 (72.77%) serendipity-1.0.1 326 / 448 (72.77%) serendipity-1.0.3a 326 / 449 (72.61%) serendipity-1.1.3 349 / 482 (72.41%) ——————————————————————————————- WAFP 0.01-26c3 – - – - – - – - – http://mytty.org/wafp/

Es gibt grundsätzlich drei Gründe, die gegen eine solche Straightforward-Implementierung sprechen:

Wir hoffen, die Einschränkung von webapprecon eliminieren zu können, um ein effizientes Tool zur Erkennung von Webanwendungen bereitstellen zu können. Weitere Details oder gar eine erste öffentliche Version der Software sollten im Laufe der kommenden Monate herausgegeben werden.

Über den Autor

Marc Ruef

Marc Ruef ist seit Ende der 1990er Jahre im Cybersecurity-Bereich aktiv. Er hat vor allem im deutschsprachigen Raum aufgrund der Vielzahl durch ihn veröffentlichten Fachpublikationen und Bücher – dazu gehört besonders Die Kunst des Penetration Testing – Bekanntheit erlangt. Er ist Dozent an verschiedenen Hochschulen, darunter ETH, HWZ, HSLU und IKF. (ORCID 0000-0002-1328-6357)

Links

Sie wollen mehr als einen simplen Security Test mit Nessus und Nmap?

Unsere Spezialisten kontaktieren Sie gern!

×
Cyber Threat Intelligence

Cyber Threat Intelligence

Marc Ruef

3D Printing

3D Printing

Marc Ruef

Contact Tracing App DP3T

Contact Tracing App DP3T

Marc Ruef

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv