
Escáner de vulnerabilidades web y herramienta de explotación con modos POC/EXP para CVEs conocidos en aplicaciones web como Weblogic, Shiro, Struts2 y Tomcat; admite escaneo por lotes mediante FOFA/Shodan.
[Haga clic aquí para la versión en inglés]
Vulmap es una herramienta de escaneo y verificación de vulnerabilidades web que puede escanear aplicaciones web y cuenta con funcionalidad de explotación. Actualmente, las aplicaciones web compatibles incluyen activemq, flink, shiro, solr, struts2, tomcat, unomi, drupal, elasticsearch, fastjson, jenkins, nexus, weblogic, jboss, spring, thinkphp.
Vulmap combina el escaneo de vulnerabilidades con la verificación (explotación), lo que facilita enormemente que los probadores realicen el siguiente paso inmediatamente después de descubrir una vulnerabilidad. La herramienta busca eficiencia y conveniencia.
Eficiencia: se está desarrollando gradualmente con la incorporación de escaneo por lotes, Fofa, Shodan para escaneo masivo, y admite múltiples hilos con corrutinas activadas por defecto para escanear grandes cantidades de activos a la máxima velocidad.
Conveniencia: una vez descubierta una vulnerabilidad, se puede explotar; el escaneo de grandes cantidades de activos puede generar resultados en múltiples formatos.
A partir de la versión 0.8, Vulmap admite el escaneo directo de vulnerabilidades sobre los archivos de resultados de identificación de dismap con la opción
-f output.txt.
El sistema operativo debe tener Python 3, se recomienda Python 3.8 o superior.
# git o descargar el código fuente desde release
git clone https://github.com/zhzyker/vulmap.git
# Instalar las dependencias de Python necesarias
pip3 install -r requirements.txt
# Linux & MacOS & Windows
python3 vulmap.py -u http://example.com
Configuración de Fofa Api && Shodan Api && Ceye
Para usar Fofa o Shodan, debe modificar la información de configuración en vulmap.py:
# Reemplazar xxxxxxxxxx con el correo electrónico de fofa
globals.set_value("fofa_email", "xxxxxxxxxx")
# Reemplazar xxxxxxxxxx con la clave de fofa
globals.set_value("fofa_key", "xxxxxxxxxx")
# Reemplazar xxxxxxxxxx con la clave de shodan
globals.set_value("shodan_key", "xxxxxxxxxx")
# Reemplazar xxxxxxxxxx con su propio dominio
globals.set_value("ceye_domain","xxxxxxxxxx")
# Reemplazar xxxxxxxxxx con su token de ceye
globals.set_value("ceye_token", "xxxxxxxxxx")
Se añade la siguiente renuncia de responsabilidad al acuerdo original LICENSE. En caso de conflicto con el acuerdo original, prevalecerá esta renuncia.
Esta herramienta está prohibida para uso comercial no autorizado, y también está prohibido su uso comercial no autorizado después de un desarrollo secundario.
Esta herramienta está destinada únicamente a actividades de construcción de seguridad empresarial con autorización legal. Al usar esta herramienta para pruebas, debe asegurarse de que dicha acción cumple con las leyes y regulaciones locales y de que ha obtenido la autorización adecuada.
Si realiza cualquier acto ilegal durante el uso de esta herramienta, asumirá las consecuencias correspondientes; no asumiremos ninguna responsabilidad legal ni solidaria.
Antes de usar esta herramienta, asegúrese de leer y comprender completamente todos los términos. Las cláusulas de limitación, exención de responsabilidad u otras que afecten sus derechos importantes pueden destacarse en negrita, subrayado u otras formas para llamar su atención. A menos que haya leído, comprendido completamente y aceptado todos los términos de este acuerdo, no utilice esta herramienta. Su uso o cualquier otra forma de aceptación expresa o implícita de este acuerdo se considerará como que ha leído y acepta las restricciones de este acuerdo.
YouTube: https://www.youtube.com/watch?v=g4czwS1Snc4
Bilibili: https://www.bilibili.com/video/BV1Fy4y1v7rd
Gif:
Argumentos opcionales:
-h, --help Muestra este mensaje de ayuda y sale
-u URL, --url URL URL objetivo (ej. -u "http://example.com")
-f FILE, --file FILE Selecciona un archivo de lista de objetivos; cada URL debe estar en una línea separada (ej. -f "/home/user/list.txt")
--fofa keyword Usa la API de fofa para escaneo masivo (ej. --fofa "app=Apache-Shiro")
--shodan keyword Usa la API de shodan para escaneo masivo (ej. --shodan "Shiro")
-m MODE, --mode MODE Modo compatible: "poc" y "exp". Se puede omitir; por defecto entra en modo "poc"
-a APP [APP ...] Especifica aplicaciones web (ej. "weblogic"). Si no se especifica, se realiza identificación automática de huellas digitales.
-c CMD, --cmd CMD Comando personalizado para ejecución remota de comandos; por defecto es echo md5 aleatorio
-v VULN, --vuln VULN Explota una vulnerabilidad; requiere especificar el número de CVE (ej. -v "CVE-2019-2729")
-t NUM, --thread NUM Número de hilos de escaneo; por defecto 10
--dnslog server Servidor DNSLog (hyuga, dnslog, ceye); por defecto sondea automáticamente
--output-text file Guarda los resultados del escaneo en un archivo txt (ej. "result.txt")
--output-json file Guarda los resultados del escaneo en un archivo json (ej. "result.json")
--proxy-socks SOCKS Usa proxy SOCKS (ej. --proxy-socks 127.0.0.1:1080)
--proxy-http HTTP Usa proxy HTTP (ej. --proxy-http 127.0.0.1:8080)
--user-agent UA Permite personalizar el User-Agent
--fofa-size SIZE Número de activos a recuperar desde la API de fofa; por defecto 100, (1-10000)
--delay DELAY Tiempo de retardo entre envíos; por defecto 0s
--timeout TIMEOUT Tiempo de espera; por defecto 5s
--list Muestra la lista de vulnerabilidades compatibles
--debug En modo exp muestra request y responses; en modo poc muestra la lista de vulnerabilidades escaneadas
--check Detección de objetivo activo (on y off); por defecto on
# Probar todos los POC de vulnerabilidades; si no se especifica -a all, se activa la identificación de huellas digitales por defecto
python3 vulmap.py -u http://example.com
# Verificar si el sitio tiene vulnerabilidades de struts2
python3 vulmap.py -u http://example.com -a struts2
# Explotar la vulnerabilidad CVE-2019-2729 de WebLogic en 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
# Escaneo masivo de las URLs en list.txt
python3 vulmap.py -f list.txt