实验是基于Linux系统,配置了bind9服务的机器
大纲
1.本地修改Host文件重定向路径到指定地址
2.对User的DNS查询进行欺骗攻击
3.在同一局域网下,对DNS服务器的DNS查询进行欺骗攻击
4.不在同一局域网下,对DNS服务器的DNS查询进行欺骗攻击
环境配置
首先三台虚拟机分别给它们分配ip,如图,User为192.168.0.100,DNS Server为192.168.0.10,Attacker为192.168.0.200,对三台机器的代称为图中所示,下同。
DNS Server的配置:
- 修改/etc/bind/named.conf.options文件,增加dump.db作为DNS缓存的文件,使用chmod提高dump.db的文件权限(777)
- 设置DNS Server的本地zone为example.com和192.168.0.x两个域
- 重启bind9服务
User的配置:
- 设置User的默认DNS服务器为192.168.0.10 Attacker的配置:
- 设置Attacker的默认DNS服务器为192.168.0.10
三台机器的外部网关设置为VMware的NAT模式的虚拟网卡默认分配的网关,我这里是192.168.139.2
DNS Server设置后的网络配置:(其它类似)
内容
修改本地host文件
这里主要就是修改User本地的Host文件,增加www.example.com一项,定向为127.0.0.1
如图,成功ping www.example.com得到自己设置的1.2.3.4的DNS解析ip地址
欺骗回复User的DNS查询
当User向DNS Server发送DNS查询的时候,Attacker监听了这个DNS查询请求,然后在DNS Server回复正确的DNS Response之前,先回复一个伪造欺骗的DNS Response给User,从而达到了DNS欺骗的效果。
实验中我们借用了Netwox/Netwag tool 105来进行DNS欺骗,具体的设置如下
得到的实验效果为
Local DNS Attack
当DNS Server对Root DNS Server询问的时候,Attacker监听了DNS Server对外发出的DNS Query,伪造了一个DNS Response给DNS Server,从而让DNS Server中有了DNS Cache,且设置的ttl很长,因此就能够达到高效的DNS Attack。
surprise! 500G网络安全学习资料,👉戳此免费获取
实验中我们借用了Netwox/Netwag tool 105来进行DNS欺骗,具体的设置如下
得到的实验结果为
DNS Server中的DNS Cache:
User中使用Dig命令得到的结果:
Remote DNS Attack
正常情况下的DNS查询是这样子的
但是我们可以将它简化成下面这样
由于不在同一局域网内,Attacker不能监听DNS Server的DNS Query包,所以采用的方法是对transaction ID进行全枚举,而且必须在真正的DNS Response到来之前枚举成功这个transaction ID,为了简化实验,我们将UDP port设置为33333,所以就不用枚举UDP port这个变量。
但是ns.dnslabattacker.net不是一个合法的域名,因此DNS Server需要对它进行验证,否则不会将它保存在DNS Cache中,所以需要在Attacker机器中配置DNS服务,将ns.dnslabattacker.net作为该DNS的本地zone就好。
查看一下实验结果:
首先是Attacker对DNS发DNS Query和DNS Respose包:
然后在DNS Server中用Wireshark查看收到的包:
查看一下DNS Server中的Cache:
在User中Dig一下aaaaa.example.edu
网络安全成长路线图
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成hei客大神,这个方向越往后,需要学习和掌握的东西就会越来越多,以下是学习网络安全需要走的方向:
# 网络安全学习方法
上面介绍了技术分类和学习路线,这里来谈一下学习方法:
## 视频学习
无论你是去B站或者是油管上面都有很多网络安全的相关视频可以学习,当然如果你还不知道选择那套学习,我这里也整理了一套和上述成长路线图挂钩的视频教程,完整版的视频已经上传至CSDN官方,朋友们如果需要可以点击这个链接免费领取。网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!