欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

DNS欺骗的原理 DNS防御实战演练

程序员文章站 2022-04-27 10:44:38
DNS即Domain Name System的缩写,域名系统以分布式数据库的形式将域名和IP地址相互映射。DNS协议即域名解析协议,简单的说:DNS是用来解析域名的。... 15-09-25...

1.1 域名系统(domain name system)

dns即domain name system 的缩写,域名系统以分布式数据库的形式将域名和ip地址相互映射。dns协议即域名解析协议,简单的说:dns是用来解析域名的。有了dns我们就不用再记住烦人的ip地址,用相对好记的域名就可以对服务器进行访问,即使服务器更换了ip地址,我们依旧可以通过域名访问该服务器,这样能够使我们更方便的访问互联网。

为了方便理解dns的工作原理,我简单做了一幅图:

DNS欺骗的原理 DNS防御实战演练

假如我们要访问 www.baidu.com ,首先要向本地dns服务器发出dns请求,查询 www.baidu.com 的ip地址,如果本地dns服务器没有在自己的dns缓存表中发现该网址的记录,就会向根服务器发起查询,根服务器收到请求后,将com域服务器的地址返回给本地dns服务器,本地dns服务器则继续向com域发出查询请求,域服务器将 baidu.com 授权域名服务器的地址返回给本地dns服务器,本地dns服务器继续向 baidu.com 发起查询,得到 www.baidu.com 的ip地址。

本地dns服务器得到 www.baidu.com 对应的ip地址后以dns应答包的方式传递给用户,并且在本地建立dns缓存表。

windows下查看和刷清空dns缓存表的命令: ipconfig /displaydns    ipconfig /flushdns

1.2 dns欺骗原理

尽管dns在互联网中扮演着如此重要的角色,但是在设计dns协议时,设计者没有考虑到一些安全问题,导致了dns的安全隐患与缺陷。

dns欺骗就是利用了dns协议设计时的一个非常严重的安全缺陷。

首先欺骗者向目标机器发送构造好的arp应答数据包,arp欺骗成功后,嗅探到对方发出的dns请求数据包,分析数据包取得id和端口号后,向目标发送自己构造好的一个dns返回包,对方收到dns应答包后,发现id和端口号全部正确,即把返回数据包中的域名和对应的ip地址保存进dns缓存表中,而后来的当真实的dns应答包返回时则被丢弃。

假设嗅探到目标靶机发出的dns请求包有以下内容:

source address : 192.168.1.57
destination address : ns.baidu.com
source port : 1234
destination port : 53 (dns port)
data :
www.baidu.com

我们伪造的dns应答包如下:


source address : ns.baidu.com
destination address : 192.168.1.57
source port : 53 (dns port)
destination port : 1234
data :
www.baidu.com 192.168.1.59

目标靶机收到应答包后把域名以及对应ip保存在了dns缓存表中,这样www.baidu.com的地址就被指向到了192.168.1.59上。

2.1 实战dns欺骗

同arp欺骗一样,dns欺骗也可以被称为dns毒化,属于中间人攻击,我还是用虚拟机来模拟dns欺骗攻击

用到的工具是ettercap

首先来看目标靶机,

DNS欺骗的原理 DNS防御实战演练

很明显现在www.baidu.com指向到的ip地址是正确的,

接着我们用ettercap来进行dns欺骗,首先找到etter.dns这个配置文件并且编辑

DNS欺骗的原理 DNS防御实战演练

添加一条a记录,将 www.baidu.com 指向到本机ip

DNS欺骗的原理 DNS防御实战演练

保存并且退出,使用ettercap开始欺骗:

DNS欺骗的原理 DNS防御实战演练

接着我们在到受到攻击的主机上看一下:

DNS欺骗的原理 DNS防御实战演练

可以看到,目标主机对域名www.baidu.com的访问已经被指向到192.168.1.59

在浏览器中访问该域名便访问到事先搭建好的一台web服务器

DNS欺骗的原理 DNS防御实战演练

以上就是一次成功的dns欺骗

dns欺骗的危害是巨大的,我不说大家也都懂得,常见被利用来钓鱼、挂马之类的

2.2 dns欺骗的防范

dns欺骗是很难进行有效防御的,因为大多情况下都是被攻击之后才会发现,对于避免dns欺骗所造成危害,本菜鸟提出以下建议

1.因为dns欺骗前提也需要arp欺骗成功。所以首先做好对arp欺骗攻击的防范。

2.不要依赖于dns,尽管这样会很不方便,可以使用hosts文件来实现相同的功能,hosts文件位置:

windows xp/2003/vista/2008/7 系统的hosts文件位置 c:\windows\system32\drivers\etc 用记事本打开即可进行修改。

3.使用安全检测软件定期检查系统是否遭受攻击

4.使用dnssec。

最近小编整理了许多关于dns欺骗的文章,希望大家多多阅读,多多学习。