第一章--kali渗透-3.信息收集工具之DNS信息收集---DIG

DIG有很多方面和NSLUUKUP很相似 但是它的功能远远强度NSLOOKUP 它的查询方式是递归查询

基本使用方式:


dig baidu.com any @8.8.8.8 

他这个和nslookup唯一不同的是指定解析类型不需要输入type或者q参数 指定DNS服务只需要在前面加上**@即可 但是他的功能比nslookup**要强大的多 下面是例子

nslookup解析


root@kali:~# nslookup
> baidu.com q=any 8.8.8.8
Server:		192.168.58.2
Address:	192.168.58.2#53

Non-authoritative answer:
Name:	baidu.com
Address: 220.181.38.148
Name:	baidu.com
Address: 39.156.69.79
> 

DIG解析


root@kali:~# dig baidu.com any @8.8.8.8
; <<>> DiG 9.11.5-P4-3-Debian <<>> baidu.com any @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15097
;; flags: qr rd ra; QUERY: 1, ANSWER: 15, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;baidu.com.			IN	ANY

;; ANSWER SECTION:
baidu.com.		7074 IN	SOA	dns.baidu.com. sa.baidu.com. 2012141737 300 300 2592000 7200
baidu.com.		21474	IN	NS	ns3.baidu.com.
baidu.com.		21474	IN	NS	dns.baidu.com.
baidu.com.		21474	IN	NS	ns7.baidu.com.
baidu.com.		21474	IN	NS	ns4.baidu.com.
baidu.com.		21474	IN	NS	ns2.baidu.com.
baidu.com.		474	IN	A	220.181.38.148
baidu.com.		474	IN	A	39.156.69.79
baidu.com.		7074 IN	MX	20 mx50.baidu.com.
baidu.com.		7074 IN	MX	10 mx.maillb.baidu.com.
baidu.com.		7074 IN	MX	15 mx.n.shifen.com.
baidu.com.		7074 IN	MX	20 mx1.baidu.com.
baidu.com.		7074 IN	MX	20 jpmx.baidu.com.
baidu.com.		7074 IN	TXT	"v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr -all"
baidu.com.		7074 IN	TXT	"google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM"

;; Query time: 42 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 一 11月 04 03:17:00 EST 2019
;; MSG SIZErcvd: 498

上面例子中可以看出DIG解析要比nslooku更强大 需要注意的是nslookup可以进入命令操作符 但是dig不可以进入 当然如果不指定DNS服务的话他会和nslookup一样 使用本地DNS服务进行解析查询

注意:在真实渗透测试环境中 建议使用不同的DNS服务依次进行查询 因为这样往往会有不同的结果****在DIG中也有很多参数 例如下方


dig +noall baidu.com any 

这条命令中出现了一个**+noall**参数 这个参数的作用的让查询的所有结果都不输出 但是这个并不是我们通常的目的 我们通常会在加一条参数 +answer 这个参数的作用是将目标解析结果输出出来 并不输出多余内容 例子如下

命令:


dig +noall +answer baidu.com any 

环境操作


root@kali:~# dig +noall +answer baidu.com any
baidu.com.		0	IN	TXT	"google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM"
baidu.com.		0	IN	TXT	"v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr -all"
baidu.com.		0	IN	MX	10 mx.maillb.baidu.com.
baidu.com.		0	IN	MX	20 jpmx.baidu.com.
baidu.com.		0	IN	MX	20 mx1.baidu.com.
baidu.com.		0	IN	MX	15 mx.n.shifen.com.
baidu.com.		0	IN	MX	20 mx50.baidu.com.
baidu.com.		0	IN	SOA	dns.baidu.com. sa.baidu.com. 2012141737 300 300 2592000 7200
baidu.com.		0	IN	A	220.181.38.148
baidu.com.		0	IN	A	39.156.69.79
baidu.com.		0	IN	NS	ns2.baidu.com.
baidu.com.		0	IN	NS	dns.baidu.com.
baidu.com.		0	IN	NS	ns7.baidu.com.
baidu.com.		0	IN	NS	ns3.baidu.com.
baidu.com.		0	IN	NS	ns4.baidu.com.

在上方我们可以看得出 加了answer以后它只输出解析内容 并不会输出执行过程 因为渗透测试人员往往只关心结果

如果我们想要在上方查询中提取结果的话可以通过awk进行筛选 这里在说一下awk命令 awk是输出重定向 它可以重定向到文件等等 后期真实环境可以编写shell脚本自动化处理 想要知道更多参数请百度 下方是命令例子:


dig +noall +answer baidu.com any | awk'{print $5}'

root@kali:~# dig +noall +answer baidu.com any | awk '{print $5}'
"v=spf1
"google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM"
20
20
15
10
20
dns.baidu.com.
220.181.38.148
39.156.69.79
ns4.baidu.com.
ns7.baidu.com.
ns3.baidu.com.
ns2.baidu.com.
dns.baidu.com.

在上方可以对比一下结果 它输出的是第五列的结果 当然 还有一些例如20 15 10等等 不知道是什么结果 可以在命令awk上面在多加两条内容 例子如下


dig +noall +answer baidu.com any | awk ‘{print $4 $5 $6}’ 

这样分别就把第四 五 六列都列出来了 当然这样直接列出来不利于阅读 可以在上方在加上两个参数**"\t"** 例子如下:


dig +noall +answer baidu.com any | awk '{print $4 "\t" $5 "\t" $6}' 

这样会比较利于阅读 输出结果如下:


root@kali:~# dig +noall +answer baidu.com any | awk '{print $4"\t"$5"\t" $6}'
MX	20	mx1.baidu.com.
MX	15	mx.n.shifen.com.
MX	20	jpmx.baidu.com.
MX	10	mx.maillb.baidu.com.
MX	20	mx50.baidu.com.
TXT	"google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM"	
TXT	"v=spf1	include:spf1.baidu.com
SOA	dns.baidu.com.	sa.baidu.com.
A	220.181.38.148	
A	39.156.69.79	
NS	ns3.baidu.com.	
NS	ns7.baidu.com.	
NS	dns.baidu.com.	
NS	ns4.baidu.com.	
NS	ns2.baidu.com. 

当然DIG的功能不止于此 它还可以反向查询 什么是反向查询 意思就是我们拥有一个IP地址 可以将这个IP地址解析的域名反向查询出来

反向域名查询:

命令:


dig -x61.135.165.120 

dig在进行反查的时候需要加-x参数 在你动手时解析一个域名 查到他的IP地址在进行范查询 在nslookup的时候就已经介绍了 反查的时候查的是PTR记录(反垃圾邮件) 查询结果如下:


root@kali:~# dig -x 61.135.165.120

; <<>> DiG 9.11.5-P4-3-Debian <<>> -x 61.135.165.120
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63484
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 4096
;; QUESTION SECTION:
;120.165.135.61.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
120.165.135.61.in-addr.arpa. 5	IN	PTR	mx23.baidu.com.

;; Query time: 39 msec
;; SERVER: 192.168.58.2#53(192.168.58.2)
;; WHEN: 一 11月 04 04:04:00 EST 2019
;; MSG SIZErcvd: 84

上面可以看得到 查询到的是mx23.baidu.com的域名地址 如果你看上方的查询结果比较差乱 你只想看结果的时候 需要加上方提到的参数 +noall +answer即可下面介绍的是DIG的强大之处它和nslookup的区别

DNS bind版本信息查询

dig可以查询dns bind版本信息 然而nslookup不可以查询 如果在linux平台下或者Windows平台下做DNS服务器(一般是linux平台下)一般使用的都是bind软件包 哪怕是其他的软件包 也是基于bind软件包进行二次开发的 大部分都是用的bind 包括我们互联网大部分平台下用的都是bind

我们可以通过bind来查询一个域名服务器DNS使用的bind版本。(下方字体较多已加标点符号)

我们为什么要查询bind,因为当我们知道一个域名以后,只能在有限的情况下查询DNS服务器地址, 但是一个域名下,有很多很多地址,很多很多记录,例如我们查询baidu.com的时候,查询到的只是baidu.com域名下的A记录NX记录Cname记录等,只是针对这个域名的记录查询的,然而这个域名下有www.baidu.com,有news.baidu.com,有 mali.baidu.com等FQDN名称,我们查询时并不会直接查询他这个域名下所有的DNS服务,哪怕我们加了any,查询的也只是baidu.com这个域名下的记录, 他并不会查询www.baidu.com的记录,所以我们需要注意的是,any参数查询的也只是当前这一个域名下的所有记录,而不是百度所有的记录都查询到,这个是不可以的,一个完美的结果就是进行查询时,将所有的DNS注册解析记录都给查询到,例如mali.xxx.comwww.xxx.comnwes.xxx.com等,都给查询出来DNS记录,然后再把这些FQDN(全限定域名,同时带有主机名和域名的名称,例如:主机名是server,域名是sql.com,那么FQDN就是server.sql.com。)对应的IP地址都给解析出来,这样的话就是一个最完美的结果,然而直接用dig或者nslookup查询,你并不知道他的域名前方是否有www或者其他的字母,并不知道他的主机一共注册了多少个域名,所以在最早的时候,一些安全研究人员就提议,如果把它的域名服务器或者DNS服务器攻破了,拿到他的DNS记录数据库,就知道他所有的数据了,这是一个变相的思路,也就是这个思路DIG可以辅助我们实现这个目标,通过DIG虽然不能查询到它所有的主机名,但是通过DIG可以查到DNS服务器使用的版本信息,如果发现bind是使用的老版本而且是存在漏洞的版本,那么就可以利用老版本的bind漏洞来下载所有的DNS记录数据库的数据,全都破解出来,所有通过DIG来查bind版本信息,目的就是为了查询DNS服务器的版本信息,查看是否有漏洞可以利用

命令:


dig +noall +answertxt chaos VERSION.BIND 153.dnsv4.com 

这条命令的VERSION是版本bind是指定查询版本信息 chaos类级别class类 bind对应的class类就是chaos类 txt是chaos中的信息类型 具体查询的就是bind的version

注意:执行上方命令如果出现 connection timed out; no servers could be reached 错误信息 将DNS配置文件添加一条或者两条新的DNS 例如谷歌的8.8.8.8或者IBM的9.9.9.9即可解决 如果在系统内添加后还是不行 在虚拟机网络设置里面设置DNS

下面是运行结果:


root@kali:~# dig +noall +answer txt chaos VERSION.BIND 153.dnsv4.com
VERSION.BIND.		5	CH	TXT"dnsmasq-2.71"

能看的出来 目标服务器使用的bind版本是dnsmasq-2.71,然后可以查询是否是最新的版本,如果不是最新的版本可以去官方查询他的最新版本,里面有一些描述文件,这些文件描述的是修复了哪些版本的一些漏洞情况,然后根据这个版本情况可以判断这个版本还存在哪些漏洞情况对他进行一些研究,当发现有漏洞时可以在进行研究漏洞的危害大小

但是需要注意的是,网络上有很多大型厂商会启动保护DNS,不允许查询bind版本信息,然而bind信息对黑客是很感兴趣的,对待普通用户没有用,不过根据安全实践可以得出结论,如果自己搭建一个DNS服务器或者运维一个服务器,不要将自己的DNS服务器版本泄露出来,因为很容易被黑客入侵造成损失高级DIG命令---DNS追踪

dig还可以对DNS进行追踪原理是逐个访问域名服务器,可以验证是否是目标的域名服务器

命令:


dig +trace www.sina.com 

执行结果如下


root@kali:~# dig +trace www.sina.com

; <<>> DiG 9.11.5-P4-3-Debian <<>> +trace www.sina.com
;; global options: +cmd
.			5	IN	NS	f.root-servers.net.
.			5	IN	NS	k.root-servers.net.
.			5	IN	NS	g.root-servers.net.
.			5	IN	NS	b.root-servers.net.
.			5	IN	NS	c.root-servers.net.
.			5	IN	NS	e.root-servers.net.
.			5	IN	NS	j.root-servers.net.
.			5	IN	NS	a.root-servers.net.
.			5	IN	NS	m.root-servers.net.
.			5	IN	NS	d.root-servers.net.
.			5	IN	NS	h.root-servers.net.
.			5	IN	NS	l.root-servers.net.
.			5	IN	NS	i.root-servers.net.
;; Received 228 bytes from 192.168.189.2#53(192.168.189.2) in 13 ms

com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			86400	IN	DS	30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.			86400	IN	RRSIG	DS 8 1 86400 20191117050000 20191104040000 22545 . paOPeSOExQhCrltWV5BdzYJZ3IYgPvRLQD5zsqsQei/+5myXrBnI8KJi j/INmlyIcw1RI1jWyTpBAigMZaV7f+/CP4HnJE/7AB18m9dlScuIBjvL 6+SIu6ZNFsfsJ8i+mbxHmTb10IHOe13nOIcrlDzCiDDO+hHWka9/0vQH kCZRcAOCTsEm2ctkj9ps9Auupvyqk9HblzdbEXxh8yRXh9LCURQs+Kqd tOF137Y5oe3JVBhaWV5FjPQsRd7QuIiwbUdH3KPrj3Soi1L73yiJQgrD 4hFfVhpAQt2wM8kwoFKbpbPyls9p22i1QWuJJmWfqwv8k2WK+XNl4bnL InBiIA==
;; Received 1200 bytes from 192.203.230.10#53(e.root-servers.net) in 266 ms

sina.com.		172800	IN	NS	ns1.sina.com.cn.
sina.com.		172800	IN	NS	ns2.sina.com.cn.
sina.com.		172800	IN	NS	ns3.sina.com.cn.
sina.com.		172800	IN	NS	ns1.sina.com.
sina.com.		172800	IN	NS	ns2.sina.com.
sina.com.		172800	IN	NS	ns4.sina.com.
sina.com.		172800	IN	NS	ns3.sina.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20191111054902 20191104043902 12163 com. IPljNLvJUQK32CDrTmP6SphTpn9Lry8DIh1AhVAH9OP1Vzzb4cNAt+lp 4VM/ryvT9uav9AQDi6h7csbN6duoBp4ErG2PmvN48C4SAyD8EvYyVJUy PAUmMrxdr6w/y7dctSvuQfbCy/ufFfzmufs9sTBvJr76AAcBgRlgFQXi korMyiVWJK5lRYT/2Cb6i3SJCJk5fMy3PDdEwYFrbeyEsA==
TGAG8VMC6NS5VVK68CIGRJ6Q414N2KB2.com. 86400 IN NSEC3 1 1 0 - TGAIACKVOLH827E60D3R92KMGUFO3MJF NS DS RRSIG
TGAG8VMC6NS5VVK68CIGRJ6Q414N2KB2.com. 86400 IN RRSIG NSEC3 8 2 86400 20191110062730 20191103041730 12163 com. j5FAgqhJoxceXjnry4mZ3LhXpecImuk9cnYE5Fh4SPkRXgdaEXLezwbi VKKtr57msheZy1kfu7R1rF7dXR2SVBPgI5tDt9Rf8k0jLRRgY86fVjC2 8879s6g0nH9qaEk1s6BBw7zIBdTllg+Nn/tKv+RbdxSrXVPVMDAJOIo5 1tfwrQpUmY7NCSd9+r4kiZ3RzX4I6eoRgBG4GJF5/lWcOQ==
;; Received 791 bytes from 192.52.178.30#53(k.gtld-servers.net) in 184 ms

www.sina.com.		60	IN	CNAME	us.sina.com.cn.
us.sina.com.cn.		60	IN	CNAME	spool.grid.sinaedge.com.
;; Received 103 bytes from 180.149.138.199#53(ns3.sina.com) in 15 ms

可以看得出来,他解析的流程是现充点(.)根域服务器进行解析,然后随机挑选了一个IP地址(192.168.189.2)进行再次解析到点com(.com)域名服务器,然后在从com.域名服务器在进行随机挑选一个IP地址(192.203.230.10)解析到sina.com服务器,也是随机挑选一个IP地址(192.52.178.30)解析查询哪个DNS解析的是www.sina.com域名 最后解析www.sina.com这个域名后是一个Cname记录 然后他在逐个的解析Cname,最后解析为一个A记录的IP地址,通过上方例子中可以看出他的查询方式是一种迭代查询方式,它的架构是分布式层级化的方式,不是同时访问所有DNS,还有本地DNS地址不可以解析域名服务器,如果解析域名服务器那么本地电脑访问互联网,只能访问解析的域名服务器,不能访问其他域名服务器地址域名DNS追踪可以防止DNS域名服务器被劫持,当域名服务器被劫持时可以进行这样的一个反追踪进行对比就可以看出,是哪一台服务器被劫持了,然后做出相应的处理防止自己访问互联网时数据被窃取自己可以抓包对比一下递归查询和迭代查询的过程,抓包工具使用第三章的信息收集工具,这里就不给出例子了,自己实践吧声明一下,笔记中的任何内容都要自己亲手操作,我列出的东西只是例子,只有自己实践动脑袋了才是真的掌握了转载请出名出处!!!

### 回答1: linux-headers-5.10.0-kali7-amd64_5.10.28-1kali1_amd64.deb 是一个 Linux 内核的头文件包。在 Linux 系统中,内核是操作系统的核心部分,负责管理硬件、进程和文件系统等核心功能。而内核的头文件则包含了一些用于开发和编译内核模块的必要文件。 这个特定的包是针对 Kali Linux 7 版本的,适用于 AMD64 架构的计算机。版本号为 5.10.28-1kali1,表示这个包是在内核版本 5.10.28-1kali1 上构建的。 安装了这个头文件包后,开发者就可以编写和编译适用于 Linux 内核 5.10.28-1kali1 版本的内核模块,以扩展或修改现有的内核功能。此外,这个包也为其他软件或工具提供了必要的头文件,以在编译期间与该特定内核版本进行交互。 如果您是 Linux 开发者或需要对内核进行定制编译的用户,安装这个包可以提供便利。 ### 回答2: linux-headers-5.10.0-kali7-amd64_5.10.28-1kali1_amd64.deb 是一个Linux内核头文件的软件包。在Linux中,内核是操作系统的核心部分,它负责管理计算机的硬件和软件资源。内核头文件是开发或编译内核模块时所需的文件。 这个特定的软件包的版本是5.10.0-kali7-amd64_5.10.28-1kali1_amd64.deb。其中,5.10.0-kali7-amd64代表内核的版本号,5.10.28-1kali1代表软件包的版本号,amd64代表软件包适用的处理器架构。 这个软件包中包含了一些C语言头文件,用于与Linux内核进行交互和开发。这些头文件为开发者提供了函数和结构的定义,使他们能够编写代码来扩展和修改内核的功能。 以.deb结尾的文件是Debian操作系统中使用的软件包格式。Debian是一个流行的Linux发行版,kali则是基于Debian的一个专注于渗透测试和网络安全的发行版。这个软件包是为kali Linux系统设计的,适用于64位的amd64处理器架构。 如果你在kali Linux系统上进行开发或编译内核模块,你可能需要安装这个软件包。你可以使用适当的包管理器,如apt-get或dpkg,来安装这个软件包并获取所需的头文件。安装后,你就可以在编写代码时包含这些头文件,并使用它们提供的函数和结构来与内核进行交互。 ### 回答3: linux-headers-5.10.0-kali7-amd64_5.10.28-1kali1_amd64.deb是针对Kali Linux操作系统的头文件。在Linux中,头文件包含了一些预定义的函数和数据结构,这些函数和数据结构可以用于开发应用程序或编译驱动程序。 这个文件名中的"linux-headers-5.10.0-kali7-amd64"表示这是适用于Kali Linux 5.10.0版本的头文件。"5.10.28-1kali1"代表了具体的版本号。而"amd64"表示该文件适用于64位的处理器架构。 安装这个.deb文件可以帮助用户在Kali Linux系统上进行编译、安装或加载驱动程序。有时候,特定的软件或驱动程序需要这些头文件来编译和与操作系统进行交互。因此,通过安装这个.deb文件,用户可以获得所需的头文件,以在Kali Linux系统上进行开发或定制。 要安装这个.deb文件,可以使用dpkg命令,如下所示: ``` sudo dpkg -i linux-headers-5.10.0-kali7-amd64_5.10.28-1kali1_amd64.deb ``` 这将安装头文件到系统中的正确位置,以供开发和编译使用。 总而言之,linux-headers-5.10.0-kali7-amd64_5.10.28-1kali1_amd64.deb是一个重要的软件包,针对Kali Linux操作系统,包含了必要的头文件,以支持开发和编译驱动程序。通过安装该软件包,用户可以确保在Kali Linux系统上进行开发时拥有所需的工具和资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的Kiko君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值