
LNHG - Fingerprinter Web de Masse
L'« Empreinteur Web Massif LowNoiseHG (LNHG) » (« mwebfp » désormais) a été conçu en juillet 2013 après avoir réalisé l'utilité des captures d'écran de serveurs web pour les pentesteurs, lors d'une mission avec de grandes plages d'adresses IP externes ou internes, comme moyen rapide d'identifier des actifs critiques, des services facilement exploitables, des serveurs oubliés/obsolètes et une connaissance de base de l'architecture réseau de la cible.
Le fonctionnement de base de mwebfp consiste à traiter une entrée (cibles et ports TCP) qui est ensuite utilisée pour identifier les ports de serveurs web ouverts à l'aide d'un puissant scanner de ports (nmap). Tous les ports ouverts trouvés sont ensuite analysés (en HTTP et HTTPS) et toutes les informations pertinentes sur le serveur web sont enregistrées, ainsi qu'une capture d'écran de la page web rendue (telle qu'elle apparaît dans un navigateur).
# 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)
Comme la plupart des R&D effectuées chez LowNoiseHG (LNHG), cet outil a été conçu et développé uniquement pour son utilité, sans aucun financement ni temps alloué. Tout le développement a été fait uniquement sur du temps personnel, et il continuera au fur et à mesure que des fonctionnalités intéressantes apparaîtront, et si le temps le permet compte tenu d'autres projets.
La version actuelle fonctionne très bien, même s'il reste quelques petits défauts (bugs) à corriger et certaines fonctionnalités de base qui peuvent être améliorées :
Fonctionnalités en cours :
Bugs connus :
mwebfp et tout son code associé sont publiés sous la licence open-source GPL v3. La licence complète est jointe dans le fichier LICENSE.md.
Pour exécuter mwebfp « prêt à l'emploi », avec toutes les options activées, vous aurez besoin de :
REMARQUE : mwebfp a été développé et testé sur Kali, Ubuntu et Debian. Je suis sûr que VOUS pouvez le faire fonctionner sur d'autres plateformes de votre choix ;)
$ sudo apt-get install -y nmap python python-nmap python-requests git
N'utilisez PAS apt-get pour cela, ni la version fournie par votre système d'exploitation. Vous pouvez vérifier si la version que vous possédez fonctionne avec mwebfp en exécutant 'cutycapt --help' et en vérifiant si vous avez une option '--insecure' ou non, ou si le copyright est '2003-2010' ou '2003-2013' (vérifiez la dernière ligne de l'aide). Vous devez avoir '--insecure' ou le copyright '2003-2013' pour pouvoir utiliser cutycapt avec mwebfp. Si vous avez besoin de la dernière version, désinstallez votre version actuelle et suivez les étapes suivantes :
$ 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
Modifiez le fichier ./CutyCapt.hpp et ajoutez les deux lignes suivantes après '#include <QtWebKit>' sur la première ligne :
#include <QNetworkReply>
#include <QSslError>
puis :
$ sudo qmake
$ sudo make
$ sudo cp CutyCapt /usr/local/bin/
Vous pouvez tester la présence du paramètre '--insecure' ou du copyright '2003-2013' avec :
$ 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
Vous pouvez consulter la liste complète des options à tout moment avec :
$ ./mwebfp -h