
Scanner di vulnerabilità web e strumento di exploitation con modalità POC/EXP per CVE note su applicazioni web come Weblogic, Shiro, Struts2 e Tomcat; supporta scansioni batch FOFA/Shodan.
[Clicca qui per la versione inglese]
Vulmap è uno strumento di scansione e verifica delle vulnerabilità web. Consente di scansionare le vulnerabilità delle webapp e di sfruttarle. Le webapp attualmente supportate includono: activemq, flink, shiro, solr, struts2, tomcat, unomi, drupal, elasticsearch, fastjson, jenkins, nexus, weblogic, jboss, spring, thinkphp
Vulmap combina la scansione delle vulnerabilità con la verifica (exploitation), facilitando notevolmente per i tester la possibilità di eseguire il passo successivo dopo aver trovato una vulnerabilità. Lo strumento è progettato per essere efficiente e pratico.
Efficiente: gradualmente sono state introdotte la scansione batch, la scansione batch tramite Fofa e Shodan, con supporto multithreading e coroutine attivate per impostazione predefinita, per scansionare grandi quantità di asset alla massima velocità.
Pratico: una volta trovata una vulnerabilità, è possibile sfruttarla; la scansione di grandi asset può produrre output in più formati.
A partire dalla versione 0.8, Vulmap supporta la scansione diretta delle vulnerabilità sui file di riconoscimento di dismap con
-f output.txt
Il sistema operativo deve avere python3, consigliato python3.8 o superiore
# git o scarica la release per il codice sorgente
git clone https://github.com/zhzyker/vulmap.git
# Installa le dipendenze Python necessarie
pip3 install -r requirements.txt
# Linux & MacOS & Windows
python3 vulmap.py -u http://example.com
Configurazione di Fofa Api, Shodan Api e Ceye
Per utilizzare Fofa o Shodan è necessario modificare le informazioni di configurazione in vulmap.py:
# Sostituisci xxxxxxxxxx con l'email di Fofa
globals.set_value("fofa_email", "xxxxxxxxxx")
# Sostituisci xxxxxxxxxx con la key di Fofa
globals.set_value("fofa_key", "xxxxxxxxxx")
# Sostituisci xxxxxxxxxx con la propria key di Shodan
globals.set_value("shodan_key", "xxxxxxxxxx")
# Sostituisci xxxxxxxxxx con il proprio dominio
globals.set_value("ceye_domain","xxxxxxxxxx")
# Sostituisci xxxxxxxxxx con il proprio token di Ceye
globals.set_value("ceye_token", "xxxxxxxxxx")
Al LICENSE originale viene aggiunta la seguente dichiarazione di esclusione di responsabilità. In caso di conflitto con la licenza originale, prevale la dichiarazione di esclusione.
Questo strumento non può essere utilizzato per scopi commerciali non autorizzati. È vietato svilupparlo ulteriormente e utilizzarlo per scopi commerciali non autorizzati.
Questo strumento è destinato esclusivamente ad attività di sicurezza aziendale legalmente autorizzate. Quando si utilizza questo strumento per eseguire test, è necessario assicurarsi che tale attività sia conforme alle leggi e ai regolamenti locali e che siano state ottenute le autorizzazioni necessarie.
Se durante l'utilizzo di questo strumento si verificano comportamenti illegali, l'utente si assume le conseguenze corrispondenti. Non ci assumiamo alcuna responsabilità legale o congiunta.
Prima di utilizzare questo strumento, leggere attentamente e comprendere appieno tutti i termini. I termini di limitazione, esclusione di responsabilità o altri termini che riguardano i tuoi diritti importanti potrebbero essere evidenziati in grassetto o sottolineati per richiamare la tua attenzione.
Se non hai letto, compreso e accettato tutti i termini di questo accordo, non utilizzare lo strumento. L'utilizzo o qualsiasi altra dichiarazione esplicita o implicita di accettazione di questo accordo costituirà l'accettazione dei termini.
YouTube: https://www.youtube.com/watch?v=g4czwS1Snc4
Bilibili: https://www.bilibili.com/video/BV1Fy4y1v7rd
Gif:
Parametri opzionali:
-h, --help Mostra questo messaggio di aiuto ed esce
-u URL, --url URL URL di destinazione (es. -u "http://example.com")
-f FILE, --file FILE Seleziona un file di elenco di destinazioni. Ogni URL deve essere su una riga separata (es. -f "/home/user/list.txt")
--fofa keyword Usa l'API di Fofa per scansione batch (es. --fofa "app=Apache-Shiro")
--shodan keyword Usa l'API di Shodan per scansione batch (es. --shodan "Shiro")
-m MODE, --mode MODE Modalità supportate: "poc" ed "exp". Può essere omesso; per impostazione predefinita entra in modalità "poc"
-a APP [APP ...] Specifica le webapp (es. "weblogic"). Se non specificato, riconoscimento automatico delle impronte digitali
-c CMD, --cmd CMD Comando personalizzato per esecuzione remota di comandi. Predefinito: echo md5 casuale
-v VULN, --vuln VULN Sfrutta la vulnerabilità, specificare il numero di vulnerabilità (es. -v "CVE-2019-2729")
-t NUM, --thread NUM Numero di thread di scansione. Predefinito: 10
--dnslog server Server DNSlog (hyuga, dnslog, ceye). Predefinito: polling automatico
--output-text file Output dei risultati della scansione in file txt (es. "result.txt")
--output-json file Output dei risultati della scansione in file json (es. "result.json")
--proxy-socks SOCKS Usa proxy SOCKS (es. --proxy-socks 127.0.0.1:1080)
--proxy-http HTTP Usa proxy HTTP (es. --proxy-http 127.0.0.1:8080)
--user-agent UA Permette di personalizzare lo User-Agent
--fofa-size SIZE Numero di asset da richiamare con l'API Fofa. Predefinito: 100, disponibile (1-10000)
--delay DELAY Tempo di ritardo tra ogni invio. Predefinito: 0s
--timeout TIMEOUT Timeout di attesa. Predefinito: 5s
--list Mostra l'elenco delle vulnerabilità supportate
--debug In modalità exp mostra request e responses; in modalità poc mostra l'elenco delle vulnerabilità scansionate
--check Rilevamento di sopravvivenza del target (on e off). Predefinito: on
# Testa tutte le vulnerabilità in modalità poc. Se non si specifica -a all, verrà abilitato il riconoscimento automatico delle impronte digitali
python3 vulmap.py -u http://example.com
# Verifica se il sito presenta la vulnerabilità struts2
python3 vulmap.py -u http://example.com -a struts2
# Sfrutta la vulnerabilità CVE-2019-2729 su http://example.com:7001 per WebLogic
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
# Scansione batch degli URL nel file list.txt
python3 vulmap.py -f list.txt