
在学习DNS劫持之前,先有必要了解一下DNS是个什么东西。
由于路由器是不认识域名的,它们只知道IP。但是我们访问网站的时候使用IP访问很麻烦且不好记,所以就产生了DNS这种服务。DNS为域名系统,有一个域名和IP地址映射关系的数据库。我们只要知道它是负责将域名解析成IP的即可。我们平时访问网站的流程一般是这样的:
1、发出请求给网关
2、网关通过域名去DNS服务器中查询域名对应的IP
3、得到IP后再根据IP去访问主机
流程图:

而DNS劫持的原理为:攻击者冒充网关,把受害机的流量欺骗过来,然后充当DNS服务器,由攻击者自己解析域名。这样子就可以随意的解析域名。到达劫持的目的。


视频传送门:

实验开始,首先我们先写好我们的恶意网站。当DNS劫持成功时将所有域名都解析成我们恶意网站的IP。先开启kali的apache服务(start为开启,restart为重启)
service apache2 start

随意在我们的html页面上写几个东西

页面乱码,需要设置为UTF-8即可。




接下来需要开启流量转发,如果不开就是断网攻击了。
echo 1 > /proc/sys/net/ipv4/ip_forward

开启ettercap。使用-G参数表示使用图形化界面
ettercap -G

配置一下ettercap的dns文件。位置为
/etc/ettercap/etter.dns
我们只需要新增一个A记录,即主机记录。想深入了解这些记录类型的同学可以百度一下。 写这个配置文件很简单,第一列写匹配的域名,这里我们使用通配符*号,第二列写记录类型,因为我们是对应到指定主机的,所以是A记录,第三列写我们想要域名解析成的ip。也就是我们恶意网站的ip。写完这个后。我们的伪造dns服务器就会把所有域名都指向10.11.124.63这个ip。

接下来使用ettercap。先选择网卡。在 Sniff -> Unified sniffing中,也可以使用快捷键 Ctrl+U

选择自己的网卡。

查看当前存活状态的主机列表。在Hosts -> Hosts list中,快捷键为 Ctrl+U

一般刚进去的信息都不完整。所以我们需要在扫描一次网络。在 Hosts -> Scan for hosts中,快捷键为 Ctrl+S。

接着我们将受害者的机器加入到target 1中,将网关加入到target 2中。用于对这两个目标进行arp欺骗。

我们如果想复查一下设置的target。可以在Targets -> Current targets中查看所有的target。快捷键 Ctrl+T

列表下面的按钮就可以进行修改,如删除target或者新增target

开启arp欺骗,在Mitm -> poisoning中,弹出框选择 Sniff remote connections。即嗅探远程的连接。也就是将目标主机的流量都欺骗过来。


现在我们已经冒充好网关了,冒充网关的方式就是arp欺骗。接下来我们要冒充dns服务器。在 Plugins -> Manage the plugins中列出所有插件。快捷键 Ctrl + P

双击选择dns_spoof模块。选中后左边会有一个星号。

在受害机上访问网站,成功欺骗。


作者:Xiaopan233
审阅:Hui3

