
Scanner de vulnérabilités web et outil d'exploitation avec modes POC/EXP pour des CVE connues dans des applications web telles que Weblogic, Shiro, Struts2 et Tomcat ; prend en charge le scan par lots FOFA/Shodan.
[Cliquez ici pour la version anglaise]
Vulmap est un outil de scan et de vérification des vulnérabilités web, capable d'analyser les applications web et de les exploiter. Les applications web actuellement prises en charge incluent activemq, flink, shiro, solr, struts2, tomcat, unomi, drupal, elasticsearch, fastjson, jenkins, nexus, weblogic, jboss, spring, thinkphp.
Vulmap combine le scan de vulnérabilités et la vérification (exploitation), ce qui permet aux testeurs de prendre rapidement les mesures suivantes après avoir découvert une vulnérabilité. L'outil vise l'efficacité et la commodité.
Efficace : au fil du développement, des fonctionnalités de scan en masse, Fofa, Shodan et le multithreading avec coroutines par défaut ont été intégrés pour analyser rapidement un grand nombre d'actifs.
Pratique : une fois la vulnérabilité détectée, elle peut être exploitée ; les résultats peuvent être exportés sous plusieurs formats pour les scans de masse.
Depuis la version 0.8, Vulmap permet de scanner directement les fichiers de résultats de dismap avec l'option
-f output.txt.
Le système d'exploitation doit avoir Python 3, de préférence Python 3.8 ou une version ultérieure.
# git ou téléchargez la version release
git clone https://github.com/zhzyker/vulmap.git
# Installez les dépendances Python nécessaires
pip3 install -r requirements.txt
# Linux & MacOS & Windows
python3 vulmap.py -u http://example.com
Configuration de Fofa Api && Shodan Api && Ceye
Pour utiliser Fofa ou Shodan, vous devez modifier les informations de configuration dans vulmap.py :
# Remplacez xxxxxxxxxx par l'email Fofa
globals.set_value("fofa_email", "xxxxxxxxxx")
# Remplacez xxxxxxxxxx par la clé Fofa
globals.set_value("fofa_key", "xxxxxxxxxx")
# Remplacez xxxxxxxxxx par votre clé Shodan
globals.set_value("shodan_key", "xxxxxxxxxx")
# Remplacez xxxxxxxxxx par votre domaine
globals.set_value("ceye_domain","xxxxxxxxxx")
# Remplacez xxxxxxxxxx par votre token Ceye
globals.set_value("ceye_token", "xxxxxxxxxx")
En complément de la LICENCE originale, les clauses de non-responsabilité suivantes s'appliquent. En cas de conflit avec la licence originale, ces clauses prévalent.
Cet outil est interdit pour toute utilisation commerciale non autorisée, ainsi que pour toute utilisation commerciale non autorisée après un développement secondaire.
Cet outil est destiné exclusivement aux actions de sécurité d'entreprises légalement autorisées. Lors de son utilisation, vous devez vous assurer que cela respecte les lois et règlements locaux et que vous disposez des autorisations nécessaires.
Si vous commettez un acte illégal en utilisant cet outil, vous assumez seul les conséquences ; nous déclinons toute responsabilité légale ou conjointe.
Avant d'utiliser cet outil, veuillez lire attentivement et comprendre toutes les clauses. Les clauses de limitation, de non-responsabilité ou celles concernant vos droits importants peuvent être mises en évidence (gras, souligné). Si vous n'avez pas lu, compris et accepté toutes les clauses, veuillez ne pas utiliser cet outil. Votre utilisation ou toute autre forme d'acceptation expresse ou tacite de ce contrat sera considérée comme votre acceptation de ces clauses.
YouTube: https://www.youtube.com/watch?v=g4czwS1Snc4
Bilibili: https://www.bilibili.com/video/BV1Fy4y1v7rd
Gif:
Arguments optionnels :
-h, --help Affiche ce message d'aide et quitte
-u URL, --url URL URL cible (ex. -u "http://example.com")
-f FILE, --file FILE Sélectionne un fichier de liste de cibles, chaque URL doit être sur une ligne distincte (ex. -f "/home/user/list.txt")
--fofa keyword Utilise l'API Fofa pour un scan en masse (ex. --fofa "app=Apache-Shiro")
--shodan keyword Utilise l'API Shodan pour un scan en masse (ex. --shodan "Shiro")
-m MODE, --mode MODE Mode supporté : "poc" et "exp". Peut être omis, par défaut "poc"
-a APP [APP ...] Spécifie les applications web (ex. "weblogic"). Si non spécifié, reconnaissance automatique des empreintes
-c CMD, --cmd CMD Commande personnalisée pour l'exécution de commande à distance ; par défaut echo md5 aléatoire
-v VULN, --vuln VULN Exploite une vulnérabilité ; nécessite l'identifiant (ex. -v "CVE-2019-2729")
-t NUM, --thread NUM Nombre de threads de scan, par défaut 10
--dnslog server Serveur DNSlog (hyuga, dnslog, ceye) ; par défaut rotation automatique
--output-text file Exporte les résultats du scan dans un fichier texte (ex. "result.txt")
--output-json file Exporte les résultats du scan dans un fichier JSON (ex. "result.json")
--proxy-socks SOCKS Utilise un proxy SOCKS (ex. --proxy-socks 127.0.0.1:1080)
--proxy-http HTTP Utilise un proxy HTTP (ex. --proxy-http 127.0.0.1:8080)
--user-agent UA Permet de personnaliser le User-Agent
--fofa-size SIZE Nombre d'actifs appelés par l'API Fofa ; par défaut 100, possible (1-10000)
--delay DELAY Délai entre chaque envoi ; par défaut 0s
--timeout TIMEOUT Délai d'attente ; par défaut 5s
--list Affiche la liste des vulnérabilités prises en charge
--debug En mode exp, affiche les requêtes et réponses ; en mode poc, affiche la liste des vulnérabilités scannées
--check Détection de la cible (on/off) ; par défaut on
# Tester tous les POC de vulnérabilités ; si -a n'est pas spécifié, la reconnaissance d'empreinte est activée par défaut
python3 vulmap.py -u http://example.com
# Vérifier si le site présente une vulnérabilité Struts2
python3 vulmap.py -u http://example.com -a struts2
# Exploiter la vulnérabilité CVE-2019-2729 sur http://example.com:7001
python3 vulmap.py -u http://example.com:7001 -v CVE-2019-2729
python3 vulmap.py -u http://example.com:7001 -m exp -v CVE-2019-2729
# Scanner en masse les URL du fichier list.txt
python3 vulmap.py -f list.txt
# Exporter les résultats du scan dans result.json
python3 vulmap.py -u http://example.com:7001 --output-json result.json
# Utiliser l'API Fofa pour un scan en masse
python3 vulmap.py --fofa app=Apache-Shiro