前言

最近在看Youtube,看到NetworkChuck使用了DNS欺骗,将他妻子访问的所有网页都通过通过DNS欺骗,改到了他自己的主页上,刚好鄙人在2020年CS Security的课《Introduction to ICT Security》中学习过DNS spoofing,正好来实操一下。
具体NetworkChuck的YouTube视频链接:Hacking (redacted) PUBLIC WiFi with a Raspberry Pi and Kali Linux,说实话他这个在Pi上装一个Linux,看的我也好想弄一个。 ‎ヽ(✿゚▽゚)ノ 但也许只能实名羡慕了,并没有那么多钱。

正文

1 ARP中间人欺骗

关于中间人欺骗其实我们之前已经抓过包分析过一点点了,这里再复现一遍。之前的文章《[网安]记录一次Wireshark抓HTTP包》

1.1 配置etter.dns

首先检测ettercap是否安装,输入命令ettercap -v。可以看见我们的ettercap版本为0.8.3.1。
16484219851.png
在开启图形化界面之前,我们需要对DNS spoofing进行一个提前的配置,通过命令vim /etc/ettercap/etter.dns打开ettercap的dns配置(如下)。加入如下两条命令:

* A 192.168.1.100
* PTR 192.168.1.100

16484171341.png
其意思为将所有的A query和PTR query的请求,都变为转发到192.168.1.100,而这个地址为我们Kali linxu主机的地址。

1.2 开启apache服务器(选)

既然我们上述已经将地址转发为我们自己的地址了,那么这个时候我们可以开启一个apache服务器,编写一个建议的网页进行测试。
通过命令打开apache服务器的root目录下的index.html,vim /var/www/html/index.html
这里我们直接找了一个建议的模板直接套用,来自W3School的简易HTML模板,我们这里如果要网页显示中文的话,需要加一条<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,否则会出现中文无法解析的乱码。
完整的html代码:

<html>

<head>
<title>Testing Html</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
<p>Haha, you are DNS spoofed!</p>
</body>

</html>

在我们创建完HTML代码之后,就通过命令systemctl start apache2开启apache服务了~。
16484217361.png

1.3 开启ettercap

如果需要设置自己的网页则按照1.2操作来进行,否则直接在etter.dns里面选择一个想要spoof的IP地址即可,比如说要去星の所向
只要把配置改为如下即可

* A 47.241.94.225
* PTR 47.241.94.225

在网页和服务器准备完成后首先通过命令ettercap -G,开启ettercap的图形化界面
16484219311.png

1.4 对目标Client进行ARP欺骗

点击开始Unified sniffing
16484220641.png
点击Host,开始扫描局域网内Host
16484220981.png
16484221371.png
扫描成功后,点击Host list打开所有被扫描出来的Host
16484221731.png
将网关192.168.1.1设为Target1,将目标靶机192.168.1.97设为Target2。
16484222601.png
我们可以通过Target -> Current Targets查看目前的Target配置
16484223441.png
16484223551.png
16484223851.png
开启ARP poisoning
16484224461.png
16484224781.png
可以看到terminal里面显示出来了具体的IPV4地址和 Mac地址
16484225261.png

1.5 对目标Client进行DNS欺骗

在进行了ARP欺骗之后,DNS欺骗其实就很简单了,我们将自己伪造成一台DNS服务器,然后在目标Client发送请求的时候,我们将他所有的请求转向我们提前设定好的地址就可以了,这里提前设定好的地址为192.168.1.100,也就是说,无论目标Client访问什么网页,最终都会被返回192.168.1.100这个地址。
具体操作:
打开Plugins -> Manage Plugins
16484226671.png
16484226891.png
双击/右键->Activate dns_spoof这个插件
16484227131.png
可以看到dns_spoof插件已经被激活了
16484227391.png

1.6 测试

打开目标Client机,目标机是一个Ubuntu20的虚拟机,尝试用其访问地址http://www.baidu.com/注意这里必须得要是HTTP地址。我们发现我们访问百度的首页,已经成功转发到了我们设定好的html template上面了。成功★,°:.☆( ̄▽ ̄)/$:.°★ 。撒花。
16484228381.png
返回到Kali Linux会发现这里dns_spoof执行了一系列的dns_spoof操作
16484229531.png
但是如果访问HTTPS的站点,会无法连接
16484229971.png

总结

怎么说呢,还是HTTPS安全啊。Σ(っ °Д °;)っ

参考

[1] Kali 2.0 下Ettercap 使用教程+DNS欺骗攻击
[2] 最详细使用ettercap实现DNS劫持和arp欺骗教程
[3] 使用Ettercap实现DNS欺骗的简单测试

Q.E.D.


立志做一个有趣的碳水化合物