
Prova de Conceito (PoC) de Negação de Serviço para CVE-2020-1350 (SIGRed)
Este repositório contém minha versão de um exploit PoC de DoS para a vulnerabilidade SIGRed divulgada pela MS e Check Point Research em 14 de julho de 2020.
@maxpl0it também escreveu um PoC que ele publicou em 15 de julho, mas eu estruturei meu exploit de forma um pouco diferente, então achei que ainda apresentava valor liberá-lo para as equipes de defesa aumentarem suas capacidades de detecção e fornecerem mais um dado para testar.
Este repositório também contém um PCAP do que esse exploit parece na rede.
Tentei montar os domínios necessários para fazer isso publicamente, mas tive alguns problemas para sincronizar os registros NS corretamente, então configurei isso internamente no Serviço DNS. Até onde sei, isso não deve afetar a eficácia do exploit.
dnsexploitvm.lan em C:\Windows\System32\drivers\etc\hosts)lol porque não me importei em sequestrar aquele TLD localmente)hax.lol) e defina o NS como seu servidor DNS malicioso)Antes de executar o script, certifique-se de definir a tupla DNS_SERVER_ADDR no topo do script com seu endereço IP correto e instalar as dependências (dnspython)
Então, execute o script (apenas Python 3):
$ sudo ./cve-2020-1350-dos.py [servidor DNS vítima] [registro DNS]
Eu fiz meus testes com 9.hax.lol, e tem sido bastante confiável. Nomes de domínio mais longos e registros com muitos labels não funcionam tão bem.
Exemplo de saída do script:
$ sudo ./exploit.py 192.168.117.36 9.hax.lol
UDP server waiting for connection
TCP server waiting for connection
making DNS SIG request to 192.168.117.36: 9.hax.lol
got UDP connection from 192.168.117.36:54721
sending UDP response (len=27)
got TCP connection from 192.168.117.36:49804
sending TCP response (len=65523)

Algumas coisas estranhas para estar ciente: