DNS域傳送漏洞


DNS域傳送漏洞:域傳送是指后備服務器從主服務器拷貝數據,並用得到的數據更新自身數據庫。若DNS服務器配置不當,可能導致匿名用戶獲取某個域的所有記錄

 

什么是DNS?

DNS (Domain Name System 的縮寫)的作用非常簡單,就是根據域名查出IP地址。你可以把它想象成一本巨大的電話本。

舉例來說,如果你要訪問域名math.stackexchange.com,首先要通過DNS查出它的IP地址是151.101.129.69

 

DNS服務器使用的TCP/UDP端口號是53。

最常用的DNS記錄有以下幾類:

DNS 類型
A IP地址記錄,記錄一個域名對應的IP地址
AAAA IPv6 地址記錄,記錄一個域名對應的IPv6地址
CNAME 別名記錄,記錄一個主機的別名
MX 電子郵件交換記錄,記錄一個郵件域名對應的IP地址,如root@xxxx.com
NS 域名服務器記錄 ,記錄該域名由哪台域名服務器解析
PTR 反向記錄,也即從IP地址到域名的一條記錄
TXT 記錄域名的相關文本信息

nslookup命令 

Windows下的nslookup命令:

λ nslookup.exe ?
用法:

1 λ nslookup.exe ?
2 用法:
3    nslookup [-opt ...]             # 使用默認服務器的交互模式
4    nslookup [-opt ...] - server    # 使用 "server" 的交互模式
5    nslookup [-opt ...] host        # 僅查找使用默認服務器的 "host"
6    nslookup [-opt ...] host server # 僅查找使用 "server""host"

交互式nslookup命令:

 1 λ nslookup.exe
 2 默認服務器:  UnKnown
 3 Address:  8.8.8.8
 4 
 5 > help
 6 命令:   (標識符以大寫表示,[] 表示可選)
 7 NAME            - 打印有關使用默認服務器的主機/域 NAME 的信息
 8 NAME1 NAME2     - 同上,但將 NAME2 用作服務器
 9 help or ?       - 打印有關常用命令的信息
10 set OPTION      - 設置選項
11     all                 - 打印選項、當前服務器和主機
12     [no]debug           - 打印調試信息
13     [no]d2              - 打印詳細的調試信息
14     [no]defname         - 將域名附加到每個查詢
15     [no]recurse         - 詢問查詢的遞歸應答
16     [no]search          - 使用域搜索列表
17     [no]vc              - 始終使用虛擬電路
18     domain=NAME         - 將默認域名設置為 NAME
19     srchlist=N1[/N2/.../N6] - 將域設置為 N1,並將搜索列表設置為 N1、N2 等
20     root=NAME           - 將根服務器設置為 NAME
21     retry=X             - 將重試次數設置為 X
22     timeout=X           - 將初始超時間隔設置為 X 秒
23     type=X              - 設置查詢類型(如 A、AAAA、A+AAAA、ANY、CNAME、MX、
24                           NS、PTR、SOA 和 SRV)
25     querytype=X         - 與類型相同
26     class=X             - 設置查詢類(如 IN (Internet)和 ANY)
27     [no]msxfr           - 使用 MS 快速區域傳送
28     ixfrver=X           - 用於 IXFR 傳送請求的當前版本
29 server NAME     - 將默認服務器設置為 NAME,使用當前默認服務器
30 lserver NAME    - 將默認服務器設置為 NAME,使用初始服務器
31 root            - 將當前默認服務器設置為根服務器
32 ls [opt] DOMAIN [> FILE] - 列出 DOMAIN 中的地址(可選: 輸出到文件 FILE)
33     -a          -  列出規范名稱和別名
34     -d          -  列出所有記錄
35     -t TYPE     -  列出給定 RFC 記錄類型(例如 A、CNAME、MX、NS 和 PTR 等)
36                    的記錄
37 view FILE           - 對 'ls' 輸出文件排序,並使用 pg 查看
38 exit            - 退出程序

1) 使用type參數可以設置記錄類型。

 2) 使用ls命令,可以列出一個域下面所有的域名。

 

查詢DNS: nslookup -type=ns XX.com

查詢郵件服務器: nslookup -type=mx XX.com

 

在交互式shell中發現一個DNS服務器的域傳送漏洞的過程:

操作基本的步驟是:

1) 輸入nslookup命令進入交互式shell

2) Server 命令參數設定查詢將要使用的DNS服務器

3) Ls命令列出某個域中的所有域名

4) Exit命令退出程序

 

 

以上示例了存在漏洞的DNS服務器,若是不存在漏洞的主機,則可能提示錯誤Query Refused:

 

使用nmap掃描DNS域傳送泄露漏洞

使用nmap掃描器附帶的腳本,可以掃描DNS服務器是否存在域傳送漏洞。語法為:

上述命令命令說明如下:

  1. nmap –script dns-zone-transfer表示加載nmap文件夾下的腳本文件dns-zone-transfer.nse,擴展名.nse可省略
  2. –script-args dns-zone-transfer.domain=zonetransfer.me向腳本傳遞參數,設置列出記錄的域是nwpu.edu.cn
  3. -p 53設置掃描53端口
  4. -Pn設置通過Ping發現主機是否存活

 

Dig命令

dig來測試DNS服務器是否存在域傳送泄露。Dig是一個非常強大的DNS查詢工具,輸入“dig -h”查看它的使用說明

 

若將查詢類型設定為axfr,就能得到域傳送數據。這也是我們要用來測試DNS域傳送泄露的命令:

請注意,參數axfr后跟需要列出的域的名稱。上面的例子是nwpu.edu.cn。只要命令輸出中存在“XFR size”即代表該服務器存在漏洞。

 

 

 

 

 

 

 

 

 

 

參考資料:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM