
LNHG - Identificador masivo de huellas web
El "LowNoiseHG (LNHG) Massive Web Fingerprinter" (en adelante "mwebfp") fue concebido en julio de 2013 tras reconocer la utilidad de las capturas de pantalla de servidores web para los pentesters, durante un compromiso con grandes rangos de direcciones IP externas o internas, como un medio rápido de identificación de activos críticos, servicios fácilmente explotables, servidores olvidados/desactualizados y conocimiento básico de la arquitectura de red del objetivo.
La operación básica de mwebfp consiste en el procesamiento de una entrada (objetivos y puertos TCP) que luego se usa para identificar puertos de servidores web abiertos con la ayuda de un potente escáner de puertos (nmap). Todos los puertos encontrados abiertos se analizan (en HTTP y HTTPS) y se registra toda la información relevante del servidor web, así como una captura de pantalla de la página web renderizada (como si se viera desde un navegador).
# 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)
Como la mayor parte de la I+D realizada en LowNoiseHG (LNHG), esta herramienta fue diseñada y desarrollada solo por su utilidad y sin fondos económicos ni tiempo asignado. Todo el desarrollo se ha realizado únicamente en tiempo personal, y continuará a medida que surjan características interesantes, y si hay tiempo disponible teniendo en cuenta otros proyectos.
La versión actual funciona muy bien, aunque todavía hay algunos pequeños problemas (bugs) por pulir, y algunas características básicas que pueden mejorarse:
Características en proceso:
Errores conocidos:
mwebfp y todo su código relacionado se publican bajo la licencia de código abierto GPL v3. La licencia completa se adjunta en el archivo LICENSE.md.
Para ejecutar mwebfp "recién clonado", con todas las opciones habilitadas, necesitará:
NOTA: mwebfp ha sido desarrollado y probado en Kali, Ubuntu y Debian. Estoy seguro de que TÚ puedes hacerlo funcionar en otras plataformas de tu elección ;)
$ sudo apt-get install -y nmap python python-nmap python-requests git
NO use apt-get para esto, ni la versión proporcionada por su sistema operativo. Puede verificar si la versión que tiene funciona con mwebfp ejecutando 'cutycapt --help' y verificando si tiene una opción '--insecure' o no, o si el copyright es '2003-2010' o '2003-2013' (revise la última línea de la ayuda). Necesita tener '--insecure' o copyright '2003-2013' para poder usar cutycapt con mwebfp. Si necesita la última versión, desinstale su versión actual y siga los siguientes pasos:
$ 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
Modifique el archivo ./CutyCapt.hpp e incluya las siguientes dos líneas después de '#include <QtWebKit>' en la primera línea:
#include <QNetworkReply>
#include <QSslError>
y luego:
$ sudo qmake
$ sudo make
$ sudo cp CutyCapt /usr/local/bin/
Puede probar el parámetro '--insecure' o el copyright '2003-2013' con:
$ 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
Puede consultar la lista completa de opciones en cualquier momento con:
$ ./mwebfp -h