3.被动信息收集

被动信息收集

简介

  • 公开渠道可获得的信息
  • 与目标系统不产生直接交互
  • 尽量避免留下一切痕迹

信息搜集内容

  • IP地址段
  • 域名信息
  • 邮件地址
  • 文档内容数据
  • 公司地址
  • 公司组织架构
  • 联系电话/传真号码
  • 人员姓名/职务
  • 目标系统使用的技术架构
  • 公开的商业信息

信息用途

  • 用信息描述目标,构建目标系统运作过程
  • 发现
  • 社会工程学攻击
  • 物理缺口

信息收集内容

信息收集——DNS

完全限定域名——FQDN,例如baidu.com可能属于域名下的一个主机记录

一个域如baiu.com下面会有很多种类型的域名记录

  • A记录:主机记录
  • C name :别名记录
  • NS记录:每个域都有域名服务器,对这个域进行域名解析,域名服务器地址通过NS记录进行定义和注册
  • MX:邮件交换记录,
  • ptr记录:反响域名解析,IP——>域名
DNS查找:
  • 浏览器缓存,浏览器会缓存DNS记录一段时间(2-30min)
  • 系统缓存(gethostname)
  • 路由器缓存
  • 如果还是没有,那么就去检查ISP有没有吧
  • 递归搜索
  • ISP的DNS服务器会从根域名开始进行递归查询
递归查询:

主机向本地域名服务器的查询一般都是采用递归查询。

如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是返回一个失败的响应,表示无法查询到所需的IP地址。

迭代查询:

本地域名服务器向根域名服务器的查询通常是采用迭代查询。

当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给本地域名服务器下一步应当查询的域名服务器的IP地址。

假设的主机想知道另一个主机(域名为 my.xxsilence.net)的IP地址。具体步骤如下:

① 主机先向其本地域名服务器进行递归查询,如果缓存中没有,继续下一步。

② 本地域名服务器采用迭代查询,先向一个根域名服务器查询。

③ 根域名服务器告诉本地域名服务器,下一次查询的顶级域名服务器 dns.net。

④ 本地域名服务器向顶级域名服务器 dns.net。

⑤ 顶级域名服务器 dns.net,下一次应查询的权限域名服务器dns.xxsilence.net的IP地址。

⑥ 本地域名服务器向权限域名服务器dns.xxsilence.net进行查询。

⑦ 权限域名服务器dns.xxsilence.net告诉本地域名服务器,所查询的主机的IP地址。

⑧ 本地域名服务器最后把查询结果告诉主机。

nslookup

nslookup

www.sina.com

逐级进行解析,到最后获取ip地址

1

1.查询mx记录,邮件交换记录

set type=mx(可以修改类型,如a,查询a记录)
sina.com//这里不需要写www,因为www加上后就变为主机域名,不加的话是域名

2

2.查询上面显示出来的邮件服务器地址

set type=a
freemx1.sinamail.sina.com.cn
freemx2.sinamail.sina.com.cn
freemx3.sinamail.sina.com.cn

3

3.查询域名服务器名称

> set type=ns
> sina.com

4

4.查询域名服务器的IP地址

 > set type=a
 > ns1.sina.com.
 > ns4.sina.com.
 > ns3.sina.com.cn.
 > ns4.sina.com.cn.
 > ns1.sina.com.cn.

5

5.查询新浪邮件服务器的 PTR 记录
//可能会查出不同结果,域名可以解析成多个cname就和主机记录

> set type=ptr
> 202.108.3.242

6
6.设置指定域名服务器

我们使用不同DNS服务器解析出来的结果可能不同,是因为现在互联网大部分网站采用智能DNS,终端用户所处网络环境不同DNS返回的查询结果可能不同,比如在美国访问新浪,会解析一个距离更近的域名地址,优化互联网流量,访问尽量发生在本地。


 # 指定域名服务器之后,两次结果不同
 > server 8.8.8.8
 > www.sina.com 

7.指定 type 为 any,解析所有记录

> set type=any
> sina.com

7

spf 记录:反垃圾邮件记录
在接收邮件的时候进行反向域名解析,查询比对这个记录匹配则是正常邮件,来确认是否是垃圾邮件

text = "v=spf1 include:spf.sinamail.sina.com.cn -all"


8

DIG命令

查询DNS时可以使用不同DNS服务器来解析

dig @8.8.8.8 www.sina.com mx
dig www.sina.com any


//+noall是所有信息都不显示的意思,+answer是只显示answer内容

dig +noall +answer mail 163.com any | awk '{print $5}'//输出结果显示第5列(最终解析地址)

-x:反向查询
反向查询:dig +noall +answer -x 8.8.8.8

nslookup没有以下特性,可以查bind版本。linux作为DNS服务器,提供DNS服务的一般是bind软件包

例如查询sina.com只针对当前域名查,无法查询www.sina.com,news.sina.com等。

完美结果是把所有DNS注册的结果fqdn名称,所有记录都获取到。要达成这个目标,一种思路是拿下DNS服务器。而dig可以辅助我们完成这个目标,获取bind版本信息,如果版本存在漏洞可以利用。

txt:对应记录名称。chaos类级别,查询chaos类里面对应的txt记录类型
bind版本信息: dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com
DNS追踪: dig +trace example.com

之后可以通过这个版本去官网查看是否是最新版本,根据文档查看漏洞修复,寻找可以利用的漏洞。

9

如何判断根域(或者.com域)名服务器被劫持?

跟踪命令,不会直接向本地DNS服务器进行请求,直接去请求根域名服务器,进行迭代查询

  1. DNS追踪
跟踪过程:直接迭代查询,不经过本地缓存域名0服务器(从根域开始)
//如果无法跟踪,需要指定一个DNS服务器如:8.8.8.8
 root@kali:~# dig +trace 163.com @8.8.8.8

10

DNS区域传输

假如有sina.com,我们想要知道他下面的所有主机名www.sina.com\new.sina.com等等,这样暴露在互联网上攻击面就知道了,如果我们可以知道这一个域里所有的主机记录,是最关键的,也是攻击者最想实现的目标。

区域传输简介

DNS服务器信息同步的过程,比如在一台服务器上修改了数据,其他DNS服务器也会进行修改,他们之间有一种同步机制,使用的就是区域传输。

正常情况下区域传输发生在本域的域名服务器之间,如果配置错误的话,可能会造成任何人都可以进行区域传输,任何人都能拿到域下所有主机记录。

常见命令

如果他配置有问题,就会进行区域传输,把数据获取到

需要知道他的一个域名服务器,因为它的域名服务器里才有所有的记录

@后面的是域名服务器,在后面是查询的域名。axfr:区域传输,差异化的传输
dig @ns1.example.com example.com axfr

 root@kali:~# dig sina.com any

//host也可以实现区域传输,-l进行全区域传输,-T是显示时间
host -T -l sina.com  ns1.example.com

可以看到连接被拒绝

11

传输数据,区域传输使用的是TCP的53端口,而正常查询DNS服务使用的是udp的53端口

DNS字典爆破

1. 简介
2. fierce
3. dnsdict6
4. dnsenum
5. dnsmap
6. dnsrecon

一般熟练掌握一个爆破工具就好

fierce

fierce命令先执行区域传输,失败后才进行字典爆破

fierce dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt

//列出所有fierce生成的文件,我
dpkg -L fierce

我们可以猜测host.txt就是它的字典文件

12

dnsdict6

这个工具速度比较快,字典质量也较高

安装教程

Options:
 -4      显示ipv4地址
 -t NO    指定线程数默认是8.最大32
 -D      指定手机用哪个字典
 -d      display IPv6 information on NS and MX DNS domain information.
 -e      ignore no NS for domain errors
 -S      指定srv记录猜解


//-t设置并发数,-x使用扫描级别的字典,-s:小字典,-m普通字典,-l是大字典,-x使用更大字典,-u使用最大字典
dnsdict6 -d4 -t 16 -x sina.com

13

dnsnum
root@kali:~# dpkg -L dnsenum
	/usr/share/dnsenum/dns.txt
//dpkg查不到可以使用find,find比较慢,查询含有dnsenum的文件
find / -name dnsenum


root@kali:~# cp /usr/share/dnsenum/dns.txt dnsenum.txt 

//
root@kali:~# dnsenum -f dnsenum.txt -dnsserver 8.8.8.8 sina.com -o sina.xml

14

dnsmap
root@kali:~# dpkg -L dnsmap
/usr/share/dnsmap/wordlist_TLAs.txt

root@kali:~# cp /usr/share/dnsmap/wordlist_TLAs.txt dnsmap.txt
root@kali:~# dnsmap sina.com -w dnsmap.txt 

dnsrecon

root@kali:~# dpkg -L dnsrecon
/usr/share/dnsrecon/namelist.txt
root@kali:~# dnsrecon -d sina.com --lifetime 10 -t brt -D /usr/share/dnsrecon/namelist.txt
root@kali:~# dnsrecon -t std -d sina.com

DNS注册信息

注册域名的时候有时会留下注册人的一些信息,可以拿来做一些社会工程学,物理攻击等等

最好的这种信息查询途径是通过whois

不同区域有不同地区whois

参考:被动信息收集-DNS 简介

15

https://www.afrinic.net/

http://www.apnic.net/

https://www.arin.net

https://www.iana.com

kali下查询whois

root@kali:~# whois sina.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值