
Scanner de vulnerabilidades web e ferramenta de exploração com modos POC/EXP para CVEs conhecidas em aplicações web como Weblogic, Shiro, Struts2 e Tomcat; suporta varredura em lote via FOFA/Shodan.
[Clique aqui para a versão em inglês]
Vulmap é uma ferramenta de varredura e verificação de vulnerabilidades web, capaz de realizar varreduras em webapps e com funcionalidades de exploração de vulnerabilidades. Atualmente, os webapps suportados incluem activemq, flink, shiro, solr, struts2, tomcat, unomi, drupal, elasticsearch, fastjson, jenkins, nexus, weblogic, jboss, spring, thinkphp
O Vulmap combina varredura e verificação de vulnerabilidades (exploração de vulnerabilidades), facilitando muito para os testadores realizarem o próximo passo após a descoberta de uma vulnerabilidade. A ferramenta busca eficiência e conveniência.
Eficiência: gradualmente, no desenvolvimento, foram introduzidas varreduras em lote, Fofa, Shodan, e suporta multithreading com corrotinas ativadas por padrão, para escanear grandes quantidades de ativos o mais rápido possível.
Conveniência: uma vez descoberta a vulnerabilidade, ela pode ser explorada; a varredura de grandes volumes de ativos pode gerar resultados em vários formatos.
A partir da versão 0.8, o Vulmap suporta a varredura direta de vulnerabilidades a partir do arquivo de resultados de identificação do dismap usando
-f output.txt
O sistema operacional deve ter python3, recomenda-se python3.8 ou superior.
# git ou baixe o código fonte no release
git clone https://github.com/zhzyker/vulmap.git
# Instale as dependências python necessárias
pip3 install -r requirements.txt
# Linux & MacOS & Windows
python3 vulmap.py -u http://example.com
Configuração do Fofa Api && Shodan Api && Ceye
Para usar Fofa ou Shodan, é necessário modificar as configurações no arquivo vulmap.py:
# Substitua xxxxxxxxxx pelo e-mail do fofa
globals.set_value("fofa_email", "xxxxxxxxxx")
# Substitua xxxxxxxxxx pela chave do fofa
globals.set_value("fofa_key", "xxxxxxxxxx")
# Substitua xxxxxxxxxx pela sua chave shodan
globals.set_value("shodan_key", "xxxxxxxxxx")
# Substitua xxxxxxxxxx pelo seu domínio
globals.set_value("ceye_domain","xxxxxxxxxx")
# Substitua xxxxxxxxxx pelo seu token do ceye
globals.set_value("ceye_token", "xxxxxxxxxx")
Adiciona-se a seguinte isenção de responsabilidade ao acordo original LICENSE. Em caso de conflito com o acordo original, a isenção de responsabilidade prevalece.
Esta ferramenta é proibida para uso comercial não autorizado, e também é proibida para uso comercial não autorizado após desenvolvimento secundário.
Esta ferramenta destina-se apenas a atividades de construção de segurança empresarial legalmente autorizadas. Ao usar esta ferramenta para testes, você deve garantir que a ação esteja em conformidade com as leis e regulamentos locais e que você tenha obtido autorização suficiente.
Se você realizar qualquer ação ilegal durante o uso desta ferramenta, você será responsável pelas consequências correspondentes. Não assumiremos qualquer responsabilidade legal ou solidária.
Antes de usar esta ferramenta, leia atentamente e compreenda completamente os termos. Cláusulas de limitação, isenção de responsabilidade ou outras cláusulas que envolvam seus direitos importantes podem ser destacadas em negrito ou sublinhado para chamar sua atenção. A menos que você tenha lido, compreendido totalmente e aceitado todos os termos deste acordo, não use esta ferramenta. Seu uso ou qualquer outra forma explícita ou implícita de aceitação deste acordo será considerado como você tendo lido e concordado com os termos deste acordo.
YouTube: https://www.youtube.com/watch?v=g4czwS1Snc4
Bilibili: https://www.bilibili.com/video/BV1Fy4y1v7rd
Gif:
Argumentos opcionais:
-h, --help Mostra esta mensagem de ajuda e sai
-u URL, --url URL URL alvo (ex.: -u "http://example.com")
-f FILE, --file FILE Seleciona um arquivo de lista de alvos, cada URL deve ser separada por linha (ex.: -f "/home/user/list.txt")
--fofa keyword Usa a api do fofa para varredura em lote (ex.: --fofa "app=Apache-Shiro")
--shodan keyword Usa a api do shodan para varredura em lote (ex.: --shodan "Shiro")
-m MODE, --mode MODE Modo suporta "poc" e "exp", pode ser omitido, por padrão entra no modo "poc"
-a APP [APP ...] Especifica webapps (ex.: "weblogic"), se não especificado, faz identificação automática por impressão digital
-c CMD, --cmd CMD Comando personalizado para execução remota de comandos, padrão é echo md5 aleatório
-v VULN, --vuln VULN Explorar vulnerabilidade, é necessário especificar o número da vulnerabilidade (ex.: -v "CVE-2019-2729")
-t NUM, --thread NUM Número de threads de varredura, padrão 10 threads
--dnslog server Servidor dnslog (hyuga, dnslog, ceye), padrão é rodízio automático
--output-text file Saída dos resultados da varredura para arquivo txt (ex.: "result.txt")
--output-json file Saída dos resultados da varredura para arquivo json (ex.: "result.json")
--proxy-socks SOCKS Usa proxy socks (ex.: --proxy-socks 127.0.0.1:1080)
--proxy-http HTTP Usa proxy http (ex.: --proxy-http 127.0.0.1:8080)
--user-agent UA Permite personalizar o User-Agent
--fofa-size SIZE Quantidade de ativos chamados pela api do fofa, padrão 100, disponível (1-10000)
--delay DELAY Tempo de atraso, intervalo entre envios, padrão 0s
--timeout TIMEOUT Tempo limite, padrão 5s
--list Mostra a lista de vulnerabilidades suportadas
--debug No modo exp, mostra request e responses; no modo poc, mostra a lista de vulnerabilidades escaneadas
--check Detecção de alvo ativo (on e off), padrão é on
# Testa todos os poc de vulnerabilidade, se não especificar -a all, ativará a identificação de impressão digital por padrão
python3 vulmap.py -u http://example.com
# Verifica se o site possui vulnerabilidade struts2
python3 vulmap.py -u http://example.com -a struts2
# Explora a vulnerabilidade CVE-2019-2729 do WebLogic em 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
# Varredura em lote das urls no arquivo list.txt
python3 vulmap.py -f list.txt
# Exporta os resultados da varredura para result.json
python3 vulmap.py -u http://example.com:7001 --output-json result.json