Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
BIND-9-Cache-Poisoning-PoC---CVE-2025-40778 — CVE-2025-40778 के लिए अवधारणा का प्रमाण: अनचाहे Additional Section रिकॉर्ड के माध्यम से BIND 9 DNS कैश पॉइज़निंग। | Kitploit
उपकरण/GitHubGitHub/sirbuvladste/bind-9-cache-poisoning-poc---cve-2025-40778
भेद्यता विश्लेषणशोषणनेटवर्क सुरक्षालर्निंग और शिक्षाDNS विश्लेषणलैब और अभ्यास
GitHubsirbuvladste/bind-9-cache-poisoning-poc---cve-2025-40778

BIND-9-Cache-Poisoning-PoC---CVE-2025-40778

CVE-2025-40778 के लिए अवधारणा का प्रमाण: अनचाहे Additional Section रिकॉर्ड के माध्यम से BIND 9 DNS कैश पॉइज़निंग।

रिपॉजिटरी देखें
48 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

BIND 9 कैश पॉइज़निंग PoC - CVE-2025-40778

अवधारणात्मक अवलोकन

यह भेद्यता एक हमलावर को BIND रिज़ॉल्वर के DNS कैश को दूषित करने की अनुमति देती है, जिससे वैध उपयोगकर्ता बिना उनकी जानकारी के दुर्भावनापूर्ण IP पतों पर पुनर्निर्देशित हो जाते हैं।

हमले का मूल तर्क:

हमला विश्वास का शोषण करने पर निर्भर करता है। पीड़ित रिज़ॉल्वर पर भरोसा करता है, और रिज़ॉल्वर (BIND) उन उत्तरों पर भरोसा करता है जो इसे आधिकारिक सर्वरों से प्राप्त होते हैं। दोष इसलिए मौजूद है क्योंकि BIND DNS प्रतिक्रिया के ADDITIONAL अनुभाग में प्रदान किए गए अनचाहे डेटा को संसाधित और कैश करता है, भले ही वह डेटा पूरी तरह से अलग, अनुरोधित न किए गए डोमेन का हो।

हमले के चरण:

  1. सेटअप: हमलावर एक विशिष्ट डोमेन (जैसे poc.lab) के लिए एक दुर्भावनापूर्ण आधिकारिक DNS सर्वर को नियंत्रित करता है। हमलावर लक्ष्य रिज़ॉल्वर (BIND) द्वारा इस डोमेन के लिए क्वेरी करने की प्रतीक्षा करता है।

  2. इंजेक्शन: जब रिज़ॉल्वर poc.lab के लिए हमलावर के सर्वर से क्वेरी करता है, तो हमलावर poc.lab के लिए एक वैध उत्तर के साथ प्रतिक्रिया करता है लेकिन ADDITIONAL अनुभाग में एक अलग डोमेन (हमारे उदाहरण में www.hacker.com, लेकिन कोई भी वैध डोमेन हो सकता है, जैसे facebook.com) के लिए एक अनचाहा उत्तर शामिल करता है जो एक दुर्भावनापूर्ण IP पते की ओर इशारा करता है।

  3. पॉइज़निंग: भेद्यता के कारण, रिज़ॉल्वर अनचाहे "Additional" रिकॉर्ड को स्वीकार करता है और इसे अपने कैश में संग्रहीत करता है। यह सत्यापित नहीं करता कि हमलावर के पास अनचाहे डोमेन पर कोई अधिकार नहीं है।

  4. पीड़ित की क्वेरी: जब पीड़ित बाद में रिज़ॉल्वर से अनचाहे डोमेन () के लिए क्वेरी करता है, तो रिज़ॉल्वर अपने कैश से ज़हरीले रिकॉर्ड को लौटाता है, जिससे पीड़ित हमलावर द्वारा नियंत्रित दुर्भावनापूर्ण IP पते पर पुनर्निर्देशित हो जाता है।

www.hacker.com

[!IMPORTANT]

इस PoC के लिए मुख्य बातें

अप्रत्यक्ष हमला: पीड़ित कभी सीधे हमलावर से संवाद नहीं करता।

विश्वास लंगर समझौता: पीड़ित की मशीन सही ढंग से काम कर रही है; यह बुनियादी ढाँचा (DNS) है जो झूठ बोल रहा है।

तंत्र: शोषण कभी अनुरोधित न किए गए रिकॉर्ड को इंजेक्ट करने के लिए Additional Section के प्रसंस्करण का लाभ उठाता है।

[!CAUTION]

यह PoC केवल शैक्षिक उद्देश्यों के लिए है। सिस्टम से समझौता करने के लिए इस जानकारी का अनधिकृत उपयोग अवैध और अनैतिक है। किसी भी नेटवर्क या सिस्टम पर भेद्यता का परीक्षण या शोषण करने से पहले हमेशा अनुमति प्राप्त करें।

इस प्रदर्शन के लिए बुनियादी ढाँचा सेटअप

इस प्रदर्शन में निम्नलिखित वर्चुअल मशीनों (VMs) का उपयोग किया गया है:

  • VM Ubuntu 24.0.4 - BIND 9 - 192.168.174.131
  • VM Ubuntu 24.0.4 - पीड़ित - 192.168.174.128
  • VM Kali 2024.2 - हमलावर - 192.168.174.130

BIND 9.21.12 डाउनलोड और कंपाइल करें

निम्नलिखित कमांड Debian-आधारित सिस्टम पर CVE-2025-40778 भेद्यता प्रदर्शित करने के लिए BIND 9.21.12 के सेटअप के लिए हैं।

[!NOTE] यह प्रदर्शन BIND 9.21.12 का उपयोग करता है, जो इस भेद्यता से प्रभावित संस्करणों में से एक है।

प्रभावित संस्करणों की अन्य ज्ञात श्रेणियों में शामिल हैं:

  • 9.11.0 – 9.16.50
  • 9.18.0 – 9.18.39
  • 9.20.0 – 9.20.13
  • 9.21.0 – 9.21.12

निम्नलिखित कमांड आवश्यक निर्भरताएँ स्थापित करेंगे, BIND 9.21.12 का स्रोत कोड डाउनलोड करेंगे, इसे कंपाइल करेंगे, और इसे आपके सिस्टम पर स्थापित करेंगे।

root@kitploit:~
sudo apt install -y build-essential pkg-config perl meson ninja-build libssl-dev libuv1-dev liburcu-dev libcap-dev liblmdb-dev libnghttp2-dev

cd /usr/local/src

sudo wget -O bind-9.21.12.tar.xz https://isc.mirrorservice.org/bind/9.21.12/bind-9.21.12.tar.xz

sudo tar -xf bind-9.21.12.tar.xz

cd bind-9.21.12

sudo meson setup build --prefix=/usr/local --sysconfdir=/etc --localstatedir=/var

sudo ninja -C build

sudo ninja -C build install

echo /usr/local/lib/x86_64-linux-gnu | sudo tee /etc/ld.so.conf.d/bind9-local.conf

sudo ldconfig

ldconfig -p | grep 'libdns-9.21.12' || true

/usr/local/sbin/named -v

यहाँ अंतिम कमांड का अपेक्षित आउटपुट है:

root@kitploit:~
> student@student:/usr/local/src/bind-9.21.12$ /usr/local/sbin/named -v
BIND 9.21.12 (Development Release) <id:9bafc35>

उपयोगकर्ता और समूह + कॉन्फ़िगरेशन फ़ाइलें

BIND सर्वर शुरू करने से पहले, हमें named सेवा चलाने के लिए एक समर्पित उपयोगकर्ता और समूह बनाना होगा:

root@kitploit:~
sudo groupadd --system named 2>/dev/null || true
sudo useradd --system --no-create-home --home /nonexistent --shell /usr/sbin/nologin --gid named named 2>/dev/null || true

चूँकि इस BIND स्थापना में डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइलें नहीं आती हैं, हमें आवश्यक निर्देशिकाएँ मैन्युअल रूप से बनानी होंगी:

root@kitploit:~
sudo mkdir -p /etc/bind
sudo mkdir -p /var/cache/bind
sudo mkdir -p /var/log/named
sudo mkdir -p /var/run/named
sudo chown -R named:named /var/cache/bind /var/log/named /var/run/named
sudo chmod 750 /var/cache/bind /var/log/named /var/run/named

अगला कदम नीचे दी गई सामग्री के साथ मुख्य कॉन्फ़िगरेशन फ़ाइल /etc/bind/named.conf बनाना है:

root@kitploit:~
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.logging";
include "/etc/rndc.key";

विकल्प कॉन्फ़िगरेशन के लिए, निम्नलिखित सामग्री के साथ फ़ाइल /etc/bind/named.conf.options बनाएँ:

root@kitploit:~
options {
    directory "/var/cache/bind";

    recursion yes;
    allow-recursion { 192.168.174.0/24; };
    allow-query     { 192.168.174.0/24; };

    listen-on { 192.168.174.131; 127.0.0.1; };
    listen-on-v6 { none; };

    dnssec-validation no;

    forwarders {
        1.1.1.1;
        8.8.8.8;
    };

    minimal-responses no;

    // for manual start
    pid-file "/var/run/named/named.pid";
};

डोमेन poc.lab के लिए एक फ़ॉरवर्ड ज़ोन सेट करने के लिए जो क्वेरीज़ को मानक पोर्ट 53 पर 192.168.174.130 पर हमलावर के DNS सर्वर पर फ़ॉरवर्ड करे, हमें /etc/bind/named.conf.local फ़ाइल को इस प्रकार संपादित करना होगा:

root@kitploit:~
zone "poc.lab" {
  type forward;
  forward only;
  forwarders { 192.168.174.130; };
};

लॉगिंग कॉन्फ़िगरेशन के लिए, /etc/bind/named.conf.logging फ़ाइल बनाएँ जिसमें शामिल हो:

root@kitploit:~
logging {
  channel queries_file {
    file "/var/log/named/queries.log" versions 3 size 20m;
    severity info;
    print-time yes;
    print-category yes;
  };

  channel default_stderr {
    stderr;
    severity info;
    print-time yes;
    print-category yes;
  };

  category queries { queries_file; };
  category default { default_stderr; };
};

अंत में, हमें RNDC कॉन्फ़िगर करना होगा:

root@kitploit:~
sudo /usr/local/sbin/rndc-confgen -a -c /etc/bind/rndc.key
sudo chown root:named /etc/bind/rndc.key
sudo chmod 640 /etc/bind/rndc.key

BIND सर्वर प्रारंभ करना

सबसे पहले, हमें यह सुनिश्चित करना होगा कि पोर्ट 53 किसी अन्य सेवा द्वारा उपयोग नहीं किया जा रहा है (हमारे मामले में हमें systemd-resolved को अक्षम करना पड़ा):

root@kitploit:~
sudo systemctl disable --now systemd-resolved || true
sudo ss -lunp | grep ':53' || true  # To verify that port 53 is free

अंत में, हम निम्नलिखित कमांड का उपयोग करके BIND सर्वर प्रारंभ कर सकते हैं:

root@kitploit:~
sudo /usr/local/sbin/named -g -u named -c /etc/bind/named.conf

[!TIP]

यह सत्यापित करने के लिए कि BIND सही ढंग से चल रहा है, हम निम्नलिखित कमांड का उपयोग कर सकते हैं:

root@kitploit:~
ss -lunpt | grep :53

पीड़ित को सेट करना

पीड़ित मशीन के लिए, हमें इसे अपने DNS रिज़ॉल्वर के रूप में BIND सर्वर का उपयोग करने के लिए सेट करना होगा। साथ ही, संघर्षों से बचने के लिए हमें systemd-resolved को निष्क्रिय करना होगा:

root@kitploit:~
sudo systemctl disable --now systemd-resolved

फिर हम कमांड का उपयोग करके एक स्थिर DNS सर्वर सेट कर सकते हैं:

root@kitploit:~
sudo rm -f /etc/resolv.conf
sudo nano /etc/resolv.conf
> nameserver 192.168.174.129
> options timeout:1 attempts:1
sudo chattr +i /etc/resolv.conf #block overwrites

हमलावर को सेट करना

हमलावर मशीन पर, हमें रिपॉजिटरी में प्रदान की गई स्क्रिप्ट (attacker.py) को चलाना होगा।

हमारे परिदृश्य में, हमलावर poc.lab डोमेन को नियंत्रित करता है। जब इसके या किसी उपडोमेन के लिए पूछा जाता है, तो वह अपने IP पते की ओर इशारा करते हुए एक अनचाहा उत्तर रिकॉर्ड (www.hacker.com) जोड़ता है।

CVE-2025-40778 भेद्यता का प्रदर्शन

जब पीड़ित डोमेन poc.lab के लिए क्वेरी करता है, तो BIND सर्वर अनुरोध को हमलावर के DNS सर्वर पर अग्रेषित करता है। हमलावर एक अनचाहे उत्तर रिकॉर्ड के साथ प्रतिक्रिया करता है जो BIND सर्वर के कैश को ज़हरीला कर देता है। जब पीड़ित www.hacker.com तक पहुँचेगा, तो वह वैध के बजाय हमलावर के IP पते पर पुनर्निर्देशित हो जाएगा।

यहाँ दोनों डोमेन के लिए पीड़ित द्वारा क्वेरी करने का एक प्रदर्शन है:

root@kitploit:~
student@student:~/Desktop$ dig www.poc.lab +noall +answer
www.poc.lab.            60      IN      A       192.168.174.99
student@student:~/Desktop$ dig www.hacker.com +noall +answer
www.hacker.com.         60      IN      A       192.168.174.130

जैसा कि ऊपर दिखाया गया है, www.hacker.com के लिए पीड़ित की DNS क्वेरी हमलावर का IP पता (192.168.174.130) लौटाती है।

[!NOTE]

यह वीडियो समझाई गई भेद्यता का एक प्रदर्शन है: https://drive.google.com/file/d/1PATD0tUqw8-BipfSf6TkQQfnJBvV110Z/view?usp=sharing

इस रिपॉजिटरी में फ़ाइलें

  • README.md - यह फ़ाइल, जिसमें भेद्यता को पुन: उत्पन्न करने के लिए स्पष्टीकरण और चरण शामिल हैं।
  • attacker.py - एक सरल Python स्क्रिप्ट जिसका उपयोग हमलावर द्वारा DNS क्वेरीज़ का अनचाहे उत्तर रिकॉर्ड के साथ उत्तर देने के लिए किया जाता है।
  • server.py - एक सरल Flask वेब पेज जिसका उपयोग DNS कैश पॉइज़निंग के बाद पुनर्निर्देशन प्रदर्शित करने के लिए किया जा सकता है।
टूल डाउनलोड करें