
LNHG - Massen-Web-Fingerprinter
Der „LowNoiseHG (LNHG) Massive Web Fingerprinter“ (im Folgenden „mwebfp“) wurde im Juli 2013 konzipiert, nachdem der Nutzen von Webserver-Screenshots für Pentester bei einem Einsatz mit großen externen oder internen IP-Adressbereichen erkannt wurde – als schnelles Mittel zur Identifikation kritischer Assets, leicht ausnutzbarer Dienste, vergessener/veralteter Server und grundlegender Kenntnisse über die Netzwerkarchitektur des Ziels.
Der grundlegende Betrieb von mwebfp besteht in der Verarbeitung einer Eingabe (Ziele und TCP-Ports), die dann verwendet wird, um mit Hilfe eines leistungsstarken Portscanners (nmap) offene Webserver-Ports zu identifizieren. Alle gefundenen offenen Ports werden (auf HTTP und HTTPS) analysiert, und alle relevanten Webserver-Informationen werden aufgezeichnet, sowie ein Screenshot der gerenderten Webseite (so wie sie in einem Browser erscheint).
# LowNoiseHG Massive Web Fingerprinter
# by F4Lc0N - LNHG - USA/Colombia
#
# Thanks to ET, c4an, Th3R3g3nt, ch0ks and ElJeffe311
# for inspiration, ideas and debugging/beta-testing help.
usage: mwebfp.py [-h]
[-i INPUT_RANGE | -n SERVER_NAME | -f INPUT_FILE | -r]
[-p HTTP_PORTS] [-s HTTPS_PORTS] [-o OUTPUT_DIR]
[-t {HTML,XLS,CSV,XML}] [-v {yes,no}] [-w {yes,no}]
optional arguments:
-h, --help show this help message and exit
-i INPUT_RANGE, --input-range INPUT_RANGE
input IP CIDR range
-n SERVER_NAME, --server-name SERVER_NAME
name of server (DNS name)
-f INPUT_FILE, --input-file INPUT_FILE
input file containing IP addresses and/or IP ranges
-r, --recover recover/continue previous process
-p HTTP_PORTS, --http-ports HTTP_PORTS
TCP HTTP ports (Default: 80/tcp)
-s HTTPS_PORTS, --https-ports HTTPS_PORTS
TCP HTTPS ports (Default: 443/tcp)
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
working directory
-t {HTML,XLS,CSV,XML}, --output-format {HTML,XLS,CSV,XML}
output report format (Default: HTML)
-v {yes,no}, --vhosts {yes,no}
choice of processing vhosts for each IP address
(Default: no)
-w {yes,no}, --web-screenshots {yes,no}
choice of taking web schreenshots (Default: no)
Wie die meiste F&E in LowNoiseHG (LNHG) wurde auch dieses Tool nur wegen seines Nutzens entwickelt und ohne wirtschaftliche Mittel oder Zeitaufwand. Die gesamte Entwicklung erfolgte ausschließlich in persönlicher Zeit, und sie wird fortgesetzt, wenn interessante Funktionen auftauchen und Zeit verfügbar ist, unter Berücksichtigung anderer Projekte.
Die aktuelle Version funktioniert sehr gut, auch wenn es noch einige kleinere Falten (Bugs) zu bügeln gibt und einige grundlegende Funktionen verbessert werden können:
Funktionen in Arbeit:
Bekannte Fehler:
mwebfp und der gesamte zugehörige Code wird unter der GPL v3 Open-Source-Lizenz veröffentlicht. Die vollständige Lizenz ist in der Datei LICENSE.md enthalten.
Um mwebfp „out-of-the-git“ mit allen aktivierten Optionen auszuführen, benötigen Sie:
HINWEIS: mwebfp wurde auf Kali, Ubuntu und Debian entwickelt und getestet. Ich bin sicher, dass SIE es auch auf anderen Plattformen Ihrer Wahl zum Laufen bringen ;)
$ sudo apt-get install -y nmap python python-nmap python-requests git
Verwenden Sie hierfür nicht apt-get oder die von Ihrem Betriebssystem bereitgestellte Version. Sie können überprüfen, ob die von Ihnen installierte Version für mwebfp funktioniert, indem Sie 'cutycapt --help' ausführen und prüfen, ob Sie eine Option '--insecure' haben oder ob das Copyright '2003-2010' oder '2003-2013' ist (überprüfen Sie die letzte Zeile der Hilfe). Sie benötigen '--insecure' oder Copyright '2003-2013', um cutycapt mit mwebfp verwenden zu können. Falls Sie die neueste Version benötigen, deinstallieren Sie Ihre aktuelle Version und führen Sie die nächsten Schritte aus:
$ cd /opt
$ sudo apt-get install -y subversion g++ libqt4-webkit libqt4-dev
$ sudo svn checkout svn://svn.code.sf.net/p/cutycapt/code/ cutycapt
$ cd cutycapt/CutyCapt
Ändern Sie die Datei ./CutyCapt.hpp und fügen Sie die folgenden zwei Zeilen nach '#include <QtWebKit>' in der ersten Zeile ein:
#include <QNetworkReply>
#include <QSslError>
und dann:
$ sudo qmake
$ sudo make
$ sudo cp CutyCapt /usr/local/bin/
Sie können auf den Parameter '--insecure' oder das Copyright '2003-2013' testen mit:
$ cutycapt --help
$ cd /opt
$ sudo git clone https://github.com/falcon-lnhg/mwebfp.git
$ cd mwebfp
$ ./mwebfp -i 10.0.0.0/8 -o OutputDir -w yes -v no
Die vollständige Liste der Optionen können Sie jederzeit einsehen mit:
$ ./mwebfp -h