1 DNS介绍
DNS(域名系统)可以在侦查过程中提供有价值的数据,DNS的基本功能是将域名转换为IP地址。(如果对DNS了解不是很深的话,就需要下一番功夫了!)现在已经有许多出色的工具可以助我们从域名服务器提取我们需要的数据,可以收集到的信息包括:
记录 | 描述 |
---|---|
CNAME | 别名,用于将多个域名绑定到同一个IP地址上 |
A | 将域名或者子域名转换为一个32位的IP地址,也可以存储其他有价值的信息 |
MX | 将域名绑定到邮件服务器上 |
DNS侦探被认为是主动的踩点侦查,原因是你必须与客户设备进行交互来获取信息。
2. nslookup工具
nslookup是一个DNS查询工具,他可以将域名解析成IP地址,反之亦然。它能够查询给定的域名服务器并给出具体记录。nslookup是款跨平台软件,已经预装在Kali linux中。
2.1 默认输出
以www.baidu.com域名为例,实施一次快速的IP地址查询。在Kali Linux终端输入以下命令:
# nslookup www.baidu.com
输出的信息如下:
服务器202.205.16.4是本网络的NDS服务器,UDP 53端口是DNS请求时使用的端口。根据输出显示的结果表明,百度的一个别名是www.a.shifen.com,查询到了两个IP地址说明百度使用了不止一台服务器来均衡负载。
2.2 更换域名服务器
使用不同的验证DNS查询的结果,如服务器8.8.8.8是Google公司提供的公共DNS服务器,用来为公共用户提供安全的浏览。在渗透测试时,使用不同的公共DNS服务器是有意义的,可以检测到你当前的DNS服务器是否被入侵篡改。
# nslookup
\> server
\>server 8.8.8.8
\>set type=ns
\>www.baidu.com
初始化nslookup,然后再控制台输入server,可以看到当前本机使用的域名服务器和端口。换一台域名服务器,输入命令server 8.8.8.8
,用指定的域名服务器来查看域名。set type=ns
将类型定义为NS(域名服务器)。
以上命令可以简化为一行命令:
# nslookup -type=ns baidu.com 8.8.8.8
nslookup 反向解析示例:
2.3 创建自动化脚本
nslookup可以通过一个单独的命令执行,因此可以创建一个脚本,来自动执行域名或主机的信息提取工作,然后将输出导入到文本文件中。
- 创建待查询域名的文本文件
# vim DomainNames.txt
填入
baidu.com
blog.csdn.net
:wq保存退出。
- 创建脚本
# vim autoDNS.sh
将以下脚本写入autoDNS.sh文件中:
#!/bin/sh
for HOSTNAME in `cat DomainNames.txt`
do
echo "Name servers of [$HOSTNAME]"
nslookup $HOSTNAME
done
为autoDNS.sh添加可执行权限。
# chmod +x autoDNS.sh
执行脚本
# ./autoDNS.sh
得到的结果如下:
- 将结果导出到指定文件
# ./autoDNS.sh > NameServerLists.txt # cat NameSercerLists.txt
cat查看结果的正确性。