DNS域傳送漏洞
- 2021 年 7 月 17 日
- 筆記
DNS域傳送漏洞
0X01原理
DNS作為重要的互聯網基礎設施,難免成為黑客的重點攻擊目標,服務的穩定性尤為重要。
DNS伺服器分為:主伺服器、備份伺服器和快取伺服器。在主備伺服器之間同步資料庫,需要使用「DNS域傳送」。域傳送是指後備伺服器從主伺服器拷貝數據,並用得到的數據更新自身資料庫。
若DNS伺服器配置不當,可能導致匿名用戶獲取某個域的所有記錄。造成整個網路的拓撲結構泄露給潛在的攻擊者,包括一些安全性較低的內部主機,如測試伺服器。憑藉這份網路藍圖,攻擊者可以節省很少的掃描時間。
大的互聯網廠商通常將內部網路與外部互聯網隔離開,一個重要的手段是使用Private DNS。如果內部DNS泄露,將造成極大的安全風險。風險控制不當甚至造成整個內部網路淪陷。
常見DNS記錄:
主機記錄(A記錄):A記錄是用於名稱解析的重要記錄,它將特定的主機名映射到對應主機的IP地址上。
IPv6主機記錄(AAAA記錄):與A記錄對應,用於將特定的主機名映射到一個主機的IPv6地址。
別名(CNAME記錄):CNAME記錄用於將某個別名指向到某個A記錄上,這樣就不需要再為某個新名字另外創建一條新的A記錄。
電子郵件交換記錄(MX記錄):記錄一個郵件域名對應的IP地址。
域名伺服器記錄 (NS記錄):記錄該域名由哪台域名伺服器解析。
反向記錄(PTR記錄):也即從IP地址到域名的一條記錄TXT記錄:記錄域名的相關文本資訊。
0X02漏洞復現
在vulhub的dns域傳送目錄下啟動
docker-compose up -d
查看伺服器ip 192.168.20.243
攻擊機 輸入dig測試命令。
@192.168.0.161 表示指定域名解析伺服器,即DNS伺服器
-t axfr 表示發送指定類型
axfr代表域傳輸請求
vulhub.org 表示待解析的域名
發送域傳輸請求後,得到了關於vulhub.org域名相關的所有域名資訊,證明域傳輸漏洞是存在。
使用nmap工具對DNS伺服器進行掃描測試。
命令nmap –script dns-zone-transfer.nse –script-args “dns-zone-transfer.domain=vulhub.org” -Pn -p 53 192.168.0.161
{{uploading-image-198817.png(uploading…)}}
windows下nslookup命令以兩種方式運行:非互動式和互動式。
1、非互動式模式下,查看對應主機域的域名伺服器
~# nslookup -type=ns xxx.com
2、進入交互模式,指定域名伺服器,列出域名資訊
~# nslookup
> server dns.xxx.com
> ls xxx.com
ls: connect: No such file or directory
*** 無法列出域 xxx.com: Unspecified error
DNS 伺服器拒絕將區域 xxx.com 傳送到你的電腦。
如果這不正確,請檢查 IP 地址 xxxxx 的 DNS 伺服器上 xxx.com 的區域傳送安全設置。
如果提示無法列出域,那就說明此域名不存在域傳送漏洞。
0x03漏洞修復
區域傳送是 DNS 常用的功能,為保證使用安全,應嚴格限制允許區域傳送的主機,例如一個主 DNS 伺服器應該只允許它的備用 DNS 伺服器執行區域傳送功能。
在相應的 zone、options 中添加 allow-transfer,對執行此操作的伺服器進行限制。如:
- 嚴格限制允許進行區域傳送的客戶端的 IP
allow-transfer {1.1.1.1; 2.2.2.2;}
- 設置 TSIG key
allow-transfer {key "dns1-slave1"; key "dns1-slave2";}
``