概述:

什么是DNS欺骗攻击?

DNS(DomainNameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用记住IP地址。而DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页,从而达到“冒名顶替”的效果。DNS协议运行在UDP协议之上,使用端口号53,DNS并不包含任何认证机制,因此第三方可以对DNS数据包进行伪造。

实验环境:

  • 攻击机:kali 2021(192.168.40.130)
  • 靶机:seed ubuntu 12.04(192.168.40.132)

实验过程:

部署web主页

本实验需要利用apache在kali端设置导向页面

在终端输入开启apache服务:/etc/init.d/apache2 start

可看到系统启动apache服务的提示,在浏览器输入kali端ip,出现如下页面,则证明服务已开启。

接下来简单编写一个引向网站index.html,并且将其放在kali的/var/www/html目录下

1
2
3
4
5
6
7
<html>
<body>
<center>
<h1>Oops!<br>Hacked by ZEPHeyrr!</h1>
</center>
</body>
</html>

设置域名解析

在kali端编辑ettercap的配置文件(路径:/etc/ettercap/etter.dns),将所有.com的域名都解析至kali的IP:

开始攻击

首先检查靶机可以正常访问腾讯网

ettercap -G 在kali端启动ettercap工具图形界面 ,利用arp中间人攻击实现dns欺骗。target 1 设置攻击目标,target 2 设置网关

选择arp中间人攻击

启动dns_spoof插件

实验结果

返回ubuntu,再次访问腾讯网,会发现我们的访问被导向了之前设置的网页。

而在Ubuntu端使用nslookup命令,可以看到腾讯网的域名被解析到了kali的ip

攻击避免

在seed中绑定IP/DNS映射即可避免攻击:

  1. /etc/init.d/networking restart 重启网络服务

  2. 编辑hosts文件(etc/hosts)

    将腾讯网域名与其真实IP绑定即可