
LNHG - Fingerprinter Web di Massa
Il "LowNoiseHG (LNHG) Massive Web Fingerprinter" ("mwebfp" d'ora in poi) è stato concepito nel luglio 2013 dopo aver compreso l'utilità degli screenshot dei server web per i penetration tester, durante un incarico con grandi intervalli di indirizzi IP esterni o interni, come mezzo rapido per identificare risorse critiche, servizi facilmente sfruttabili, server dimenticati/obsoleti e conoscenza di base dell'architettura di rete del target.
Il funzionamento di base di mwebfp consiste nell'elaborazione di un input (target e porte TCP) che viene poi utilizzato per identificare le porte aperte del server web con l'aiuto di un potente scanner di porte (nmap). Tutte le porte trovate aperte vengono poi analizzate (su HTTP e HTTPS) e vengono registrate tutte le informazioni rilevanti del server web, oltre a uno screenshot della pagina web renderizzata (come se fosse vista da un browser).
# 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)
Come la maggior parte della R&S svolta in LowNoiseHG (LNHG), questo strumento è stato progettato e sviluppato solo per la sua utilità e senza fondi economici o tempo dedicato. Tutto lo sviluppo è stato fatto solo nel tempo personale, e continuerà man mano che si presenteranno funzionalità interessanti, e se il tempo sarà disponibile tenendo conto di altri progetti.
La versione attuale funziona molto bene, anche se ci sono ancora alcuni piccoli problemi (bug) da risolvere, e alcune funzionalità di base che possono essere migliorate:
Funzionalità in lavorazione:
Bug noti:
mwebfp e tutto il codice correlato sono rilasciati sotto la licenza open-source GPL v3. La licenza completa è allegata nel file LICENSE.md.
Per eseguire mwebfp "out-of-the-git", con tutte le opzioni abilitate, avrai bisogno di:
NOTA: mwebfp è stato sviluppato e testato su Kali, Ubuntu e Debian. Sono sicuro che TU possa farlo funzionare su altre piattaforme a tua scelta ;)
$ sudo apt-get install -y nmap python python-nmap python-requests git
NON usare apt-get per questo, o la versione fornita dal tuo sistema operativo. Puoi verificare se la versione che hai funziona con mwebfp eseguendo 'cutycapt --help' e controllando se hai un'opzione '--insecure' o meno, o se il copyright è '2003-2010' o '2003-2013' (controlla l'ultima riga dell'help). Devi avere '--insecure' o copyright '2003-2013' per poter usare cutycapt con mwebfp. Se hai bisogno dell'ultima versione, disinstalla la tua versione attuale e segui i passaggi successivi:
$ 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
Modifica il file ./CutyCapt.hpp e includi le seguenti due righe dopo '#include <QtWebKit>' sulla prima riga:
#include <QNetworkReply>
#include <QSslError>
e poi:
$ sudo qmake
$ sudo make
$ sudo cp CutyCapt /usr/local/bin/
Puoi testare il parametro '--insecure' o il 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
Puoi controllare l'elenco completo delle opzioni in qualsiasi momento con:
$ ./mwebfp -h