
CVE-2020-1350 (SIGRed)에 대한 서비스 거부(DoS) PoC
이 저장소는 2020년 7월 14일 MS와 Check Point Research가 공개한 SIGRed 취약점에 대한 DoS PoC 익스플로잇 버전입니다.
@maxpl0it도 7월 15일에 공개한 PoC를 작성했지만, 저는 익스플로잇을 그보다 조금 다르게 구성했기 때문에 블루 팀이 탐지 역량을 높이고 테스트할 또 다른 데이터를 제공할 수 있도록 이 코드를 공개할 가치가 있다고 생각했습니다.
이 저장소에는 이 익스플로잇이 네트워크에서 어떻게 보이는지 보여주는 PCAP도 포함되어 있습니다.
공개적으로 수행하는 데 필요한 도메인을 구성하려 했지만 NS 레코드가 제대로 동기화되지 않는 문제가 있어 DNS 서비스 내부에서 로컬로 구성했습니다. 제가 알기로는 이것이 익스플로잇의 효율성에는 영향을 미치지 않아야 합니다.
C:\Windows\System32\drivers\etc\hosts의 dnsexploitvm.lan)lol을 사용했습니다. 해당 TLD를 로컬에서 하이재킹해도 괜찮았기 때문입니다)hax.lol) NS를 rogue DNS 서버로 설정합니다스크립트를 실행하기 전에 스크립트 상단의 DNS_SERVER_ADDR 튜플을 실제 IP 주소로 설정하고, 의존성(dnspython)을 설치했는지 확인하세요.
그런 다음 스크립트를 실행합니다 (Python 3만 지원):
$ sudo ./cve-2020-1350-dos.py [victim DNS server] [DNS record]
저는 9.hax.lol로 테스트했으며 매우 안정적이었습니다. 더 긴 도메인 이름이나 레이블이 많은 레코드는 잘 작동하지 않습니다.
샘플 스크립트 출력:
$ 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)

알아두어야 할 몇 가지 이상한 점들: