CVE-2020-1350 (SIGRed) - Windows DNS DoS Exploit
Die Credits für den Bug gehen vollständig an Check Point Research (@_cpresearch_), die eine unglaubliche Beschreibung dieses Bugs verfasst haben (Props an @sagitz_ für den Beitrag)
Ihre Beschreibung ist hier zu finden.
Dieser Exploit wurde von @maxpl0it geschrieben
Kurze Zusammenfassung der Funktionsweise:
- Im LAN lösen Sie eine DNS-Anfrage (genauer gesagt eine Anfrage nach den SIG-Einträgen) für eine bösartige Domain aus (z. B. 9.evil_domain.com)
- Diese wird an den DNS-Server des angreifbaren Windows-Servers gesendet
- Der angreifbare Server sendet eine Anfrage an den DNS, an den er Anfragen weiterleitet (normalerweise die standardmäßigen Google-IPs)
- Der Google-DNS antwortet mit den Nameservern für die bösartige Domain
- Der angreifbare Server fungiert dann als DNS-Client und sendet eine Anfrage an den bösartigen DNS-Server
- Der bösartige Server antwortet mit einem Payload, der eine 2-Byte-Zahl überlaufen lässt, was zu einer kleineren Speicherzuweisung führt als erforderlich
- Die Signatur wird kopiert und die Dinge brechen (natürlich), wodurch der DNS-Server des angreifbaren Servers abstürzt
Allgemeine Einrichtung:
- Dieser Exploit erfordert, dass Sie eine Domain mit eigenen Nameservern einrichten, die auf Ihren Server zeigen.
- Richten Sie den Server ein und führen Sie dieses Skript aus. Es wird auf Port 53 sowohl über TCP als auch UDP lauschen.
- Wenn Sie einen Fehler erhalten, dass die Ports belegt sind, verwenden Sie netstat -pa, um herauszufinden, was auf den Domain-Ports lauscht (wahrscheinlich systemd-resolved) und deaktivieren und stoppen Sie es. Wenn auf dem Server nichts lauscht, stellen Sie sicher, dass Sie alle Instanzen dieses Skripts beendet haben, bevor Sie es erneut ausführen.
Zum Beispiel habe ich python sigred_dos.py ibrokethe.net ausgeführt, um den bösartigen DNS-Server zu starten
Testeinrichtung:
Wenn Sie Zugriff auf den Windows-Server haben, können Sie einen bedingten Weiterleitungsdienst konfigurieren, der ibrokethe.net auf die IP-Adresse des Hosts verweist, der das Skript ausführt. Dies überspringt effektiv die Schritte 3 und 4 in der Zusammenfassung.
Ausführung:
Um die Schwachstelle auf dem Windows-DNS-Server auszulösen, führen Sie nslookup -type=sig 9.your_domain_name_here dns_server_to_target aus
Die Subdomain '9' ist hier tatsächlich erforderlich. Sie müssen dafür keine Domain-Einträge ändern, da das Skript sich darum kümmert.
Als Beispiel: Ich habe nslookup -type=sig 9.ibrokethe.net 127.0.0.1 ausgeführt, während ich dies auf dem Server ausgeführt habe.