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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
NSEC3-Encloser-Attack — यह प्रोजेक्ट CVE-2023-50868 में हमलों को पुन: उत्पन्न और मूल्यांकन करने के लिए कस्टम NSEC3 पैरामीटर के साथ DNS zonefiles उत्पन्न करता है। | Kitploit
उपकरण/GitHubGitHub/goethe-universitat-cybersecurity/nsec3-encloser-attack
भेद्यता विश्लेषणशोषणपेपर और शोधलर्निंग और शिक्षाDNS फज़िंगDNS विश्लेषण
GitHubgoethe-universitat-cybersecurity/nsec3-encloser-attack

NSEC3-Encloser-Attack

यह प्रोजेक्ट CVE-2023-50868 में हमलों को पुन: उत्पन्न और मूल्यांकन करने के लिए कस्टम NSEC3 पैरामीटर के साथ DNS zonefiles उत्पन्न करता है।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
62 साल पहलेअभी तक समीक्षित नहीं

NSEC3-एनक्लोज़र-हमला ज़ोनफ़ाइल निर्माण

यह प्रोजेक्ट DNS ज़ोनफ़ाइल्स को कस्टम NSEC3 पैरामीटर्स के साथ उत्पन्न करता है ताकि CVE-2023-50868 में दिए गए हमलों को पुनरुत्पादित और मूल्यांकन किया जा सके।

आवश्यकताएँ

Python3 (Python3.10 पर परीक्षण किया गया)

स्थापित Python निर्भरताएँ:

  • cryptography 42.0.5
  • dnspython 2.6.1

घटक

  • lib: Python उपयोगिताएँ, जिनमें शामिल हैं:
    • keys.py: फ़ाइलों में कुंजियाँ लोड/स्टोर करने के लिए रैपर फ़ंक्शन
    • nsec.py: DNSSEC NSEC हैश का कार्यान्वयन
    • dnssec.py: NSEC3 समर्थन के साथ संशोधित/पैच की गई dnspython फ़ंक्शंस
    • config.py: कॉन्फ़िग लोड करने की उपयोगिताएँ
  • keys: प्री-जनरेटेड कुंजियों वाली PEM फ़ाइलें (gen_keys.py से उत्पन्न)
  • zones: ज़ोनफ़ाइल्स (gen_zones.py से उत्पन्न)
  • config.json: उदाहरण कॉन्फ़िगरेशन

सेटअप

  • config.json को संशोधित करके यह कॉन्फ़िगर करें कि कौन से NSEC3 ज़ोन बनाने हैं (देखें कॉन्फ़िग)

  • कुंजियाँ उत्पन्न करें: $ ./gen_keys.py

    प्रत्येक ज़ोन के लिए, एक KSK और ZSK उत्पन्न होते हैं। जब तक कॉन्फ़िगरेशन में ज़ोन के नाम अपरिवर्तित रहते हैं, कुंजियाँ पुनः उपयोग की जाती हैं।

  • ज़ोनफ़ाइल्स उत्पन्न करें: $ ./gen_zones.py -c

    विकल्प -c कॉन्फ़िगरेशन फ़ाइलों के निर्यात को सक्षम करता है (वर्तमान में केवल BIND9 के लिए)

अधिक विकल्पों के लिए --help का उपयोग करें।

कॉन्फ़िग

कॉन्फ़िग संरचना में दो तत्व होते हैं:

  • default: ज़ोन के लिए डिफ़ॉल्ट पैरामीटर (अब तक सभी समर्थित नहीं हैं)
  • zones: निर्यात किए जाने वाले सभी ज़ोन की सूची

ज़ोन

एक ज़ोन में होते हैं:

  • name (आवश्यक): ज़ोन को संदर्भित करते समय और निर्यात के दौरान फ़ाइल नाम के रूप में उपयोग किया जाने वाला नाम
  • origin (आवश्यक): विहित ज़ोन मूल डोमेन नाम
  • parent: मूल ज़ोन का नाम (origin नहीं), जिसमें इस ज़ोन के NS, A, DS, और NSEC3PARAM रिकॉर्ड जोड़े जाते हैं
  • keysize (आवश्यक): RSA कुंजी आकार (अब तक केवल RSA)
  • nsec3: NSEC3 पैरामीटर:
    • iterations: डिफ़ॉल्ट 0
    • salt: डिफ़ॉल्ट ''
    • algorithm: पूर्णांक मान, अभी केवल SHA-1 (1) समर्थित है
    • tight: एक विशेष बूलियन जो नियंत्रित करता है कि क्या origin के तुरंत बाद और *.origin से पहले और बाद में NSEC3 रिकॉर्ड जोड़े जाने चाहिए। उदाहरण के लिए, यदि *.origin में NSEC3 रिकॉर्ड 1d..ua.origin. है, तो 1d..u0.origin. और 1d..ub.origin. के रिकॉर्ड भी ज़ोनफ़ाइल में जोड़े जाते हैं। यह सुनिश्चित करता है कि origin के किसी भी उपडोमेन (जैसे, ) पर प्रत्येक NXDOMAIN प्रमाण के लिए तीन NSEC3 रिकॉर्ड की आवश्यकता हो, क्योंकि origin और वाइल्डकार्ड को कवर करने वाले NSEC3 रिकॉर्ड की next_hash तक बहुत छोटी सीमा होती है

हमले का पुनरुत्पादन

NSEC3 हमले को पुनरुत्पादित करने के लिए, यह खंड एक DNS नामसर्वर और पीड़ित रिज़ॉल्वर से युक्त एक संभावित कस्टम सेटअप का वर्णन करता है। जारी रखने से पहले, सुनिश्चित करें कि सिस्टम वातावरण में पर्याप्त रूप से कॉन्फ़िगर किया गया फ़ायरवॉल है ताकि सार्वजनिक सर्वर हमले की ज़ोनफ़ाइल्स के संपर्क में न आएं।

  1. NSD नामसर्वर स्थापित करें (वर्तमान संस्करण)

    स्थापना निर्देशों के लिए NLNetlabs वेबसाइट (https://nsd.docs.nlnetlabs.nl/en/latest/installation.html) पर जाएं।

    नामसर्वर को VM या कंटेनर में तैनात करने की अनुशंसा की जाती है। शुरुआती बिंदु के रूप में, docker/nsd में एक छोटा Dockerfile है।

    कंटेनर को बनाने के लिए docker build -t <tag> <path_to_dockerfile> का उपयोग करें, उदाहरण के लिए: cd docker/nsd && docker build -t nsd .

    कंटेनर में कंसोल खोलने के लिए docker run -it --name <name> nsd bash चलाएं।

    इसके बाद, नामसर्वर को हमलावर ज़ोनफ़ाइल्स होस्ट करने के लिए कॉन्फ़िगर करने की आवश्यकता है। इसके लिए उत्पन्न करने के लिए ज़ोनफ़ाइल्स का सही कॉन्फ़िगरेशन आवश्यक है (सबसे महत्वपूर्ण बात, NS रिकॉर्ड में दिया गया IP पता कंटेनर के IP पते से मेल खाना चाहिए)। यदि कोई नेटवर्क कॉन्फ़िगर नहीं किया गया है, तो कंटेनर का IP पता इसके साथ देखा जा सकता है: docker container inspect <name> | grep IPAddress

    कॉन्फ़िगरेशन आउटपुट (./gen_zones.py -c, ऊपर देखें) के साथ ज़ोन उत्पन्न करें और रिपॉजिटरी निर्देशिका से ज़ोन आउटपुट फ़ोल्डर को डॉकर कंटेनर में कॉपी करें: docker cp ./zones <name>:/etc/nsd

    कंटेनर कंसोल में, कंटेनर में NSD कॉन्फ़िग /etc/nsd/nsd.conf को निम्नलिखित पंक्तियों के साथ संशोधित करने की आवश्यकता है:

यदि आपको इस गाइड में कोई समस्या होती है, तो आगे मार्गदर्शन के लिए बेझिझक हमसे संपर्क करें।

टूल डाउनलोड करें
a.origin.
  • ns: इस ज़ोन का नामसर्वर। एकल मान या सूची:
    • ns: नामसर्वर का डोमेन नाम, डिफ़ॉल्ट ns1.origin
    • ip: IPv4 पता (IPv6 वर्तमान में समर्थित नहीं), डिफ़ॉल्ट 172.0.0.1
  • soa: SOA RDATA
  • rrsets: अतिरिक्त RRsets की सूची, 5-टुपल सूची [डोमेन नाम, ttl, class, type, rdata] के रूप में दी गई है जहाँ सभी मान (वैकल्पिक रूप से ttl को छोड़कर) स्ट्रिंग के रूप में दिए गए हैं
  • root@kitploit:~
    verify:
        enable: no
    remote-control:
        control-enable: no
    
    include: "/etc/nsd/zones/nsd.conf"
    

    अंत में, कंटेनर शेल से NSD को इस कमांड से चलाएं /usr/sbin/nsd -d -c /etc/nsd/nsd.conf

    विकल्प -V 4 के साथ लॉगिंग आउटपुट सक्षम करें।

    अब, यदि कोई समस्या नहीं हुई, तो आधिकारिक नामसर्वर चल रहा होना चाहिए। आप होस्ट सिस्टम से dig का उपयोग करके किसी एक ज़ोन के डोमेन की क्वेरी चलाकर इसकी पुष्टि कर सकते हैं: dig @<ip-addr-of-nsd-container> <domain>

  • एक रिज़ॉल्वर स्थापित करें। इस प्रदर्शन में, हम Unbound 1.17.1 के लिए एक संभावित दृष्टिकोण दिखाते हैं।

    एक आधिकारिक dockerfile यहाँ पाया जा सकता है: https://github.com/NLnetLabs/pythonunbound

    हमने इस Dockerfile का एक संशोधित संस्करण docker/unbound में शामिल किया है जिसमें अद्यतन Ubuntu संस्करण और Unbound 1.17.1 के लिए पूर्व-कॉन्फ़िगर किया गया है।

    रिपॉजिटरी को क्लोन करें, उसकी निर्देशिका में जाएँ और Unbound कंटेनर बनाएँ: docker build -t <tag> .

    कंटेनर को इसके साथ चलाएं: docker run --name <name> -it <tag> bash

    इसके बाद, Unbound को इस प्रकार कॉन्फ़िगर करने की आवश्यकता है कि वह NSD आधिकारिक नामसर्वर का पता लगा सके। यह कंटेनर वर्किंग डायरेक्टरी में unbound.conf फ़ाइल को संशोधित करके किया जाता है। इसके लिए, सुनिश्चित करें कि server.module-config प्रविष्टि को कॉन्फ़िग से हटा दिया गया है।

    DNSSEC सत्यापन सक्षम करने के लिए, हमलावर मूल ज़ोन के DNSKEY रिकॉर्ड को मैन्युअल रूप से कॉन्फ़िगर करने की आवश्यकता है। यह वही कुंजी होनी चाहिए जो हस्ताक्षर उत्पन्न करने के लिए उपयोग की गई थी, उदाहरण के लिए:

    root@kitploit:~
    server:
        chroot: ""
        do-ip6: no
        trust-anchor: "attack.er. DNSKEY 257 3 7 AwEAAdqDN3rJYlmGP3jJs5lCZq5NYrCn pCVlV0ko17JnbfYfLCroEF4reO/Xy0MK C9AVvSRTk83MHDuzMYXogm7m/gcn3Mh0 MwB2InP8jkPw5not+TMH/Wrbs31xkT2n RIBJJ+1lPF+e2AvwWvgREcEVTRbdhIqQ iM1StWXoTVudry4V"
    

    इसके अलावा, Unbound रिज़ॉल्वर को NSD आधिकारिक नामसर्वर खोजने में सक्षम करने के लिए एक stub-zone कॉन्फ़िगर करना होगा। यह unbound.conf फ़ाइल में निम्नलिखित जोड़कर प्राप्त किया जाता है:

    root@kitploit:~
    stub-zone:
        name: "attack.er."
        stub-prime: yes
        stub-addr: <ip-addr-of-nsd-container>
    

    कंटेनर में unbound को इसके साथ प्रारंभ करें: unbound -vvv (-dd का उपयोग करें ताकि डेमॉनाइज़ेशन को रोका जा सके)

    अब आप dig के साथ unbound से क्वेरी कर सकते हैं और प्रतिक्रिया समय देख सकते हैं: dig @127.0.0.1 attack.er