被动
信息收集
DNS
信息收集
DNS是最主要的服务信息暴漏来源
利用DNS信息泄漏可以获取到的信息
发现开放端口
发现子域及开放端口
DNS域名注册信息
DNS服务器区域传输
DNS域名系统
分布式树形数据库结构,逐级向下委派
ROOT根域 .
顶级域: com,org,gov,mail,cn
二级域:sina.com,baidu.com,163.com
NS、SOA、MX、A、CNAME、AAAA、PTR
CNAME 别名记录,一般一个CName记录解析结果是一个A记录
PTR 反向域名记录 IP --> 域名
SOA 起始授权记录
MX 邮件交换
NS 记录域名服务器的IP地址
CLASS:IN、CH(Chaosnet)、HS(Hesiod)
以上那么些记录都属于IN类(internet)
一般大一些的公司都会有自己的DNS服务器,比如新浪,很多老师在讲课的时候都喜欢用新浪作为例子
在Kali之中,包含了大量的DNS信息收集工具,比如Dig、host、dnsenum、dnsmap、dnsrecon、fierce等,在我看来其实这些工具的功能太过集中,并没有必要全都掌握,只掌握Dig命令就好了(虽然我把它们都学过一遍)
Passive Information
Gathering
下面我主要讲解Dig这个命令或者说工具的用法,其实之前在公众号中已经以视频的形式讲解过了
####
Dig
####
Domain Information Groper
这个工具在几乎任何Linux发行版本中都存在,不过安装的时候不能直接安装,因为它是dnsutils工具包中的一个小工具。(dnsutils中携带的域名信息查询诊断工具)
下面在模拟环境中都使用新浪为例,在下节课的实战用就是用神舟的官网了
最基本的用法
dig sina.com
指定我们查询使用的域名服务器
dig sina.com @8.8.8.8
使用@后面加域名服务器的方式进行指定
指定要查询的内容
dig sina.com A @8.8.8.8
查询A记录的内容,如果是IPv4和IPv6的混合,那么就使用 AAAA
其他的也就是相同的格式了 ,MX、NS、TXT等,如果想要全部查询,就用ANY
dig sina.com any @8.8.8.8
使用谷歌DNS服务器对域名进行各种类型的查询
202.106.0.20 这个是北京联通的DNS
不同地域查询的DNS是不同的。这个是由于智能DNS造成的
域名反查
dig -x 132.23.23.43
查询DNS服务器的Bind版本
dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com
查询bind版本信息可以查询dns服务器的漏洞,如果有漏洞就可以获取DNS服务器的记录,之后获得这个网站的全部DNS
域名解析追踪
区域传输
dig @ns1.example.com example.com axfr
@指定DNS服务器,之后再进行指定该DNS服务器下的域名,最后的axfr就是向目标DNS服务器发起区域传输
如果有很多网站要收集,还可以使用 -f 参数进行批量查询
还有一些参数类似+nocmd 、+answer、+question、+nssearch
这些都是跟现实筛选有一定关系的参数,大家了解就好
其实还有一个命令在Linux中也是几乎都存在,那就是host命令
host 命令
host -T -l sina.com ns3.sina.com
-T 使用TCP连接方式
-l 区域传输
当然还有其他参数,这个大家去自行学习一下就好,着重掌握一下dig命令比较好
上面着重介绍了Dig这个工具,下面我们就对于DNS信息收集其他进行一下分部分讲解
DNS字典爆破
dnsenum -f /usr/share/dnsenum/dns.txt -dnsserver 8.8.8.8 sina.com -o sina.xml
dnsmap sina.com -w dns.txt
dnsrecon -d sina.com --lifetime 10 -t brt -D dnsbig.txt
dnsrecon -t std -d sina.com
以上的几种都是用来爆破DNS的,法师之前写过的一款工具我在之前的课程中也进行介绍过,通过一个足够强大的字典的爆破后,目标的基本的网站分布信息就可以得到了。
下面既然拿到域名和ip信息,那我们就可以进行进一步对于注册人的信息进行一下收集了,此时就是我们经常用的whois查询
DNS注册信息
WHOIS
国内也有很多网站提供这种服务,比如站长之家,爱站网等
https://www.aizhan.com
Hi
Hi
Kali中DNS信息收集工具的详细用法大家按需求进行学习吧:
1.dnsenum
dns 是最主要的服务暴露信息来源
收集DNS域名信息
发现开放端口
发现子域及开放端口
DNS域名注册信息
DNS服务器区域传输
字典爆破
搜索引擎
whois查询
区域传输
dnsenum domain.com
综合性的域名信息查询工具
A 、 NS、MX记录、bind版本及区域传输
字典爆破
-f /usr/share/dnsenum/dns.txt
反向域名解析
对发现地址所在的C段进行反向查询
禁用 --noreverse
Google搜索
-s 子域数量
--dnsserver 指定我们使用的DNSserver
--noserverse 不进行反向查询
-w whois查询
--------------------------------------
2.dnsmap
只是一个字典破解dns子域名或主机记录
单线程
默认使用内建字典
dnsmap-bulk.sh domains.txt // 可以查询一系列的域名
-d 两次查询时间间隔(毫秒)
------------------------------------------
3.dnsrecon
-d 指定域名
dnsrecon -r 1.1.1.0/24 #反向
dnsrecon -D dict.txt sina.com # 字典爆破主机和子域名
dnsrecon -z -d weberdns.de
当域启动了DNSSEC,对于缺乏防护的DNS服务器,可以利用NSEC记录(配置的错误)获取区域内全部记录,无需爆破(类似区域传输)
也可以使用 -t 参数进行单项查询
-t brt #使用内建字典
-t std #默认的标准查询,先会进行区域传输测试
-t srv #只查srv记录(AD、voip电话),SRV 服务器资源记录
-t axfr #标准加axfr (-a)
-t tld #删除并尝试所有顶级域名(IANA),使用这个参数会尝试IANA定义的所有的顶级域名(.net,.gov.....)
-t goo # google查询(-g)
-t zonewalk # dnssec zone walk(-z)
--threads #线程数
--------------------------------------------
4.dnswalk
这个工具是一个DNS配置检查工具,更多的是一个面向管理者的工具
主要的用途就是发现配置问题
使用时需要开启区域传输
dnswalk -radmilF
-r 对指定域的子域进行递归查询
-a 发现重复A记录发出警告
-d 将调试状态信息输出到stderr
-m 仅检查上次运行后发生变化的记录
-F 检查PTR记录IP是否与对应A记录相符
-i 不检查域名中的无效字符
-l 检查区域文件中NS记录主机是否能返回正确的权威应答
--------------------------------------------
5.dnstracer
一个DNS追踪工具
正常域名解析过程
递归查询(客户端到DNS服务器)
迭代查询(服务器之间)
域名解析追踪
从客户端发起迭代查询,也就是说中间不在经过DNS服务器,这样在DNS服务器出现故障的时候我们也可以通过不同的DNS服务器解析结果对比进行判断,如果所有的结果不一致,那就说明不一致的那一台被劫持了
-s . 指定从根域开始查寻,如果不指定默认就从本地电脑配置的DNS服务器地址开始查询,那就没有效果了
-q 指定查询类型(默认查询A记录)
dnstracer 1.8.1版本存在缓冲区溢出漏洞,会导致拒绝服务
--------------------------------------------
6.fierce
区域传输、暴力破解 这个工具只包含这两个方面
-dns 指定域名
-wordlist dicts.txt 指定字典(默认/usr/share/fierce/hosts.txt)
-dnsserver
指定目标域的权威服务器
本地网卡配置DNS服务器其实查询SOA记录
与 -range 参数配合使用,反向查询指定IP地址段
-threads 线程数(默认1)
这个工具的工作流程是先从本地配置的DNS进行查询SOA记录,之后直接向目标的主DNS服务器进行各种查询
fierce -dns abc.com
fierce -range 199.181.132.1-254 --dnsserver sens02.dig.com (这里的DNS服务器必须是刚刚查询出来的目标的DNS)
对于DNS信息收集的方法和工具命令已经讲解完了,下一篇文章就要进行一下实战了,大家敬请期待
-END-
意大利的猫
有态度
不苟同
喜欢记得转发哦!
领取专属 10元无门槛券
私享最新 技术干货