
Vulmap é uma ferramenta de verificação e validação de vulnerabilidades web, capaz de escanear vulnerabilidades em webapps e validá-las.
[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
# Chama a api do fofa para varredura em lote
python3 vulmap.py --fofa app=Apache-Shiro
+-------------------+------------------+-----+-----+-------------------------------------------------------------+
| Tipo de alvo | Nome da Vuln | Poc | Exp | Versão de impacto e descrição da vulnerabilidade |
+-------------------+------------------+-----+-----+-------------------------------------------------------------+
| Apache ActiveMQ | CVE-2015-5254 | Y | N | < 5.13.0, execução remota de código por desserialização |
| Apache ActiveMQ | CVE-2016-3088 | Y | Y | < 5.14.0, upload de webshell via http put&move |
| Apache Druid | CVE-2021-25646 | Y | Y | < 0.20.1, execução remota de código no console apache druid |
| Apache Flink | CVE-2020-17518 | Y | N | < 1.11.3 ou < 1.12.0, path traversal de upload |
| Apache Flink | CVE-2020-17519 | Y | Y | 1.5.1 - 1.11.2, path traversal 'jobmanager/logs' |
| Apache OFBiz | CVE-2021-26295 | Y | N | < 17.12.06, execução arbitrária de código via desserialização rmi |
| Apache OFBiz | CVE-2021-29200 | Y | N | < 17.12.07, execução arbitrária de código via desserialização rmi |
| Apache OFBiz | CVE-2021-30128 | Y | Y | < 17.12.07, execução remota de comandos via desserialização |
| Apache Shiro | CVE-2016-4437 | Y | Y | <= 1.2.4, shiro-550, rce por desserialização rememberme |
| Apache Solr | CVE-2017-12629 | Y | Y | < 7.1.0, rce via runexecutablelistener e xxe, apenas rce aqui|
| Apache Solr | CVE-2019-0193 | Y | N | < 8.2.0, execução remota de código no módulo dataimporthandler |
| Apache Solr | CVE-2019-17558 | Y | Y | 5.0.0 - 8.3.1, rce via velocity response writer |
| Apache Solr | time-2021-0318 | Y | Y | todos, leitura arbitrária de arquivos apache solr |
| Apache Solr | CVE-2021-27905 | Y | N | 7.0.0-7.7.3, 8.0.0-8.8.1, ssrf no replication handler |
| Apache Struts2 | S2-005 | Y | Y | 2.0.0 - 2.1.8.1, cve-2010-1870 rce via parameters interceptor|
| Apache Struts2 | S2-008 | Y | Y | 2.0.0 - 2.3.17, rce via debugging interceptor |
| Apache Struts2 | S2-009 | Y | Y | 2.1.0 - 2.3.1.1, cve-2011-3923 rce via ognl interpreter |
| Apache Struts2 | S2-013 | Y | Y | 2.0.0 - 2.3.14.1, cve-2013-1966 rce via ognl interpreter |
| Apache Struts2 | S2-015 | Y | Y | 2.0.0 - 2.3.14.2, cve-2013-2134 rce via ognl interpreter |
| Apache Struts2 | S2-016 | Y | Y | 2.0.0 - 2.3.15, cve-2013-2251 rce via ognl interpreter |
| Apache Struts2 | S2-029 | Y | Y | 2.0.0 - 2.3.24.1, rce via ognl interpreter |
| Apache Struts2 | S2-032 | Y | Y | 2.3.20-28, cve-2016-3081 rce via method |
| Apache Struts2 | S2-045 | Y | Y | 2.3.5-31, 2.5.0-10, cve-2017-5638 rce via jakarta multipart |
| Apache Struts2 | S2-046 | Y | Y | 2.3.5-31, 2.5.0-10, cve-2017-5638 rce via jakarta multipart |
| Apache Struts2 | S2-048 | Y | Y | 2.3.x, cve-2017-9791 rce via struts2-struts1-plugin |
| Apache Struts2 | S2-052 | Y | Y | 2.1.2 - 2.3.33, 2.5 - 2.5.12 cve-2017-9805 rce via rest plugin|
| Apache Struts2 | S2-057 | Y | Y | 2.0.4 - 2.3.34, 2.5.0-2.5.16, cve-2018-11776 rce via namespace|
| Apache Struts2 | S2-059 | Y | Y | 2.0.0 - 2.5.20, cve-2019-0230 rce via ognl interpreter |
| Apache Struts2 | S2-061 | Y | Y | 2.0.0-2.5.25, cve-2020-17530 rce via ognl interpreter |
| Apache Struts2 | S2-devMode | Y | Y | 2.1.0 - 2.5.1, rce via devmode |
| Apache Tomcat | Examples File | Y | N | todas as versões, /examples/servlets/servlet |
| Apache Tomcat | CVE-2017-12615 | Y | Y | 7.0.0 - 7.0.81, upload de arquivos via put method |
| Apache Tomcat | CVE-2020-1938 | Y | Y | 6, 7 < 7.0.100, 8 < 8.5.51, 9 < 9.0.31 leitura arbitrária de arquivo|
| Apache Unomi | CVE-2020-13942 | Y | Y | < 1.5.2, execução remota de código apache unomi |
| CoreMail | time-2021-0414 | Y | N | Vulnerabilidade de divulgação de informações de configuração do Coremail|
| Drupal | CVE-2018-7600 | Y | Y | 6.x, 7.x, 8.x, drupalgeddon2 execução remota de código |
| Drupal | CVE-2018-7602 | Y | Y | < 7.59, < 8.5.3 (exceto 8.4.8) drupalgeddon2 rce |
| Drupal | CVE-2019-6340 | Y | Y | < 8.6.10, drupal core restful execução remota de código |
| Ecology | time-2021-0515 | Y | Y | <= 9.0, e-cology oa workflowservicexml rce |
| Elasticsearch | CVE-2014-3120 | Y | Y | < 1.2, elasticsearch execução remota de código |
| Elasticsearch | CVE-2015-1427 | Y | Y | < 1.3.7, < 1.4.3, elasticsearch execução remota de código |
| Exchange | CVE-2021-26855 | Y | N | 2010 2013 2016 2019, microsoft exchange server ssrf |
| Exchange | CVE-2021-27065 | Y | Y | 2010 2013 2016 2019, exchange escrita arbitrária de arquivo |
| Eyou Email | CNVD-2021-26422 | Y | Y | sistema de email eyou possui execução remota de comandos |
| F5 BIG-IP | CVE-2020-5902 | Y | Y | < 11.6.x, f5 big-ip execução remota de código |
| F5 BIG-IP | CVE-2021-22986 | Y | Y | < 16.0.1, f5 big-ip execução remota de código |
| Fastjson | VER-1224-1 | Y | Y | <= 1.2.24 fastjson parse object execução remota de código |
| Fastjson | VER-1224-2 | Y | Y | <= 1.2.24 fastjson parse object execução remota de código |
| Fastjson | VER-1224-3 | Y | Y | <= 1.2.24 fastjson parse object execução remota de código |
| Fastjson | VER-1247 | Y | Y | <= 1.2.47 fastjson autotype execução remota de código |
| Fsatjson | VER-1262 | Y | Y | <= 1.2.62 fastjson autotype execução remota de código |
| Jenkins | CVE-2017-1000353 | Y | N | <= 2.56, LTS <= 2.46.1, jenkins-ci execução remota de código|
| Jenkins | CVE-2018-1000861 | Y | Y | <= 2.153, LTS <= 2.138.3, execução remota de código |
| Laravel | CVE-2018-15133 | N | Y | 5.5.x <= 5.5.40, 5.6.x <= 5.6.29, laravel get app_key rce |
| Laravel | CVE-2021-3129 | Y | N | ignition <= 2.5.1, laravel debug mode execução remota de código|
| Nexus OSS/Pro | CVE-2019-7238 | Y | Y | 3.6.2 - 3.14.0, vulnerabilidade de execução remota de código|
| Nexus OSS/Pro | CVE-2020-10199 | Y | Y | 3.x <= 3.21.1, vulnerabilidade de execução remota de código |
| Node.JS | CVE-2021-21315 | Y | N | systeminformation < 5.3.1, node.js command injection |
| Oracle Weblogic | CVE-2014-4210 | Y | N | 10.0.2 - 10.3.6, weblogic ssrf vulnerability |
| Oracle Weblogic | CVE-2016-0638 | Y | N | 10.3.6.0, 12.2.1-3, t3 desserialização rce |
| Oracle Weblogic | CVE-2017-3506 | Y | Y | 10.3.6.0, 12.1.3.0, 12.2.1.0-2, weblogic wls-wsat rce |
| Oracle Weblogic | CVE-2017-10271 | Y | Y | 10.3.6.0, 12.1.3.0, 12.2.1.1-2, weblogic wls-wsat rce |
| Oracle Weblogic | CVE-2018-2894 | Y | Y | 12.1.3.0, 12.2.1.2-3, desserialização upload de qualquer arquivo|
| Oracle Weblogic | CVE-2018-3191 | Y | N | 10.3.6.0, 12.1.3.0, 12.2.1.3, t3 desserialização rce |
| Oracle Weblogic | CVE-2019-2725 | Y | Y | 10.3.6.0, 12.1.3.0, weblogic wls9-async desserialização rce|
| Oracle Weblogic | CVE-2019-2890 | Y | N | 10.3.6.0, 12.1.3.0, 12.2.1.3, t3 desserialização rce |
| Oracle Weblogic | CVE-2019-2729 | Y | Y | 10.3.6.0, 12.1.3.0, 12.2.1.3 wls9-async desserialização rce|
| Oracle Weblogic | CVE-2020-2551 | Y | N | 10.3.6.0, 12.1.3.0, 12.2.1.3-4, wlscore desserialização rce|
| Oracle Weblogic | CVE-2020-2555 | Y | Y | 3.7.1.17, 12.1.3.0.0, 12.2.1.3-4.0, t3 desserialização rce |
| Oracle Weblogic | CVE-2020-2883 | Y | Y | 10.3.6.0, 12.1.3.0, 12.2.1.3-4, iiop t3 desserialização rce|
| Oracle Weblogic | CVE-2020-14882 | Y | Y | 10.3.6.0, 12.1.3.0, 12.2.1.3-4, 14.1.1.0, console rce |
| Oracle Weblogic | CVE-2020-2109 | Y | Y | 10.3.6.0, 12.1.3.0, 12.2.1.3-4, 14.1.1.0, jndi não autorizado|
| QiAnXin | time-2021-0410 | Y | Y | qianxin ns-ngfw netkang next generation firewall front rce |
| RedHat JBoss | CVE-2010-0738 | Y | Y | 4.2.0 - 4.3.0, jmx-console desserialização upload de qualquer arquivo|
| RedHat JBoss | CVE-2010-1428 | Y | Y | 4.2.0 - 4.3.0, web-console desserialização upload de qualquer arquivo|
| RedHat JBoss | CVE-2015-7501 | Y | Y | 5.x, 6.x, jmxinvokerservlet desserialização upload de qualquer arquivo|
| RuiJie | time_2021_0424 | Y | N | obter senha de conta, rce em segundo plano |
| Saltstack | CVE-2021-25282 | Y | Y | < 3002.5, vulnerabilidade de escrita arbitrária de arquivos no SaltStack|
| Spring Data | CVE-2018-1273 | Y | Y | 1.13 - 1.13.10, 2.0 - 2.0.5, spring data commons rce |
| Spring Cloud | CVE-2019-3799 | Y | Y | 2.1.0-2.1.1, 2.0.0-2.0.3, 1.4.0-1.4.5, path traversal |
| Spring Cloud | CVE-2020-5410 | Y | Y | < 2.2.3, < 2.1.9, vulnerabilidade de path traversal |
| ThinkPHP | CVE-2019-9082 | Y | Y | < 3.2.4, thinkphp rememberme desserialização rce |
| ThinkPHP | CVE-2018-20062 | Y | Y | <= 5.0.23, 5.1.31, thinkphp rememberme desserialização rce |
| Vmware vCenter | time-2020-1013 | Y | N | <= 6.5u1, vmware vcenter leitura arbitrária de arquivo (não cve)|
| Vmware vCenter | CVE-2021-21972 | Y | Y | 7.0 < 7.0U1c, 6.7 < 6.7U3l, 6.5 < 6.5U3n, upload de qualquer arquivo|
| VMware vRealize | CVE-2021-21975 | Y | N | <= 8.3.0, vmware vrealize operations manager api ssrf |
+-------------------+------------------+-----+-----+-------------------------------------------------------------+
docker build -t vulmap/vulmap .
docker run --rm -ti vulmap/vulmap python vulmap.py -u https://www.example.com