阅读本文大概需要 2 分钟
首先在这里祝各位 2022 新年快乐!
元旦三天假,今天一个人在家舒舒服服的看斗破。
看着看着视频突然变得一卡一卡的,每过一会儿就显示加载中。我心想不应该啊,以我的网速,看个 1080p 是不可能卡的,况且我也没有在下东西。
难道是被人蹭网了?于是我登录路由器一看,果然有一台陌生的设备。想起之前图方便,WIFI 密码设置的是弱口令,估计是被人试出来了。
原本想着直接拉黑便是,忽然又灵机一动,决定调戏这个蹭网者一番。然后决定给他整个 DNS 欺骗。
DNS(Domain Name Server)即域名服务器。正常情况下,当我们在浏览器输入网址时,会先向域名服务器请求该网址对应的 IP 地址,然后域名服务器便会返回 IP 地址,接着我们的机器就通过该 IP 与远程服务器建立连接,最终成功访问到目标网站。
以百度为例,浏览器输入 www.baidu.com
,域名服务器就会返回百度服务器的 IP 地址 163.177.151.110
。
使用 Wireshark
抓包可以清楚的看到整个过程。我首先向域名服务器也就是我的网关 192.168.0.1 询问了百度的 IP,接着它便给我返回了百度的 IP。如下图。
而 DNS 欺骗,便是攻击者冒充域名服务器。当你向域名服务器请求域名对应的 IP 时,请求到了攻击者的服务器,这时他就给你返回一个假的的 IP 地址(一般是攻击者自己的服务器 IP),你拿着攻击者给你的 IP 地址去访问,然后就导致你最终访问的网站和你实际想访问的网站不一致。
举个栗子,你听说附近有一家餐馆很好吃,想去尝一下。于是你打开地图,跟着地图到了附近,但是找不到餐馆的具体位置。于是你打算问一下路人,万万没想到的是,这个路人是其他餐馆派来的托,然后他一通瞎指挥,你就被坑到别的餐馆去了。
上面的栗子中,这个路人就类似网络中的域名服务器,如果是正常的路人,肯定会告诉你正确的地址,如果不是,那你就会被坑了。
基本概念讲完了,那么接下来我就开始攻击了,Kali Linux,启动!
使用 Ettercap
对目标进行 DNS 欺骗,在此之前,先编辑一下 Ettercap
的 DNS 文件。
vim /etc/ettercap/etter.dns
添加一行内容,设置所有域名地址的 IP 查询都返回 192.168.0.104 这个地址,而这个地址正是我的 Kali Linux 的 IP 地址。
退出并保存,接下来需要使用 Nginx
在本地开启一个网站。首先在 /var/www/html
下放入提前写好的网页。
index.html 文件内容如下。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hack</title>
</head>
<body>
<p>朋友,乱蹭别人WIFI是不好的。</p>
<p>还是自己老老实实办个宽带吧!</p>
<img src="1.png"/>
</body>
</html>
开启 Nginx
服务器。
nginx
访问一下试试,结果居然 403 了。
原来是配置不对,我是以 root 运行的 Nginx
,但是配置文件 /etc/nginx/nginx.conf
中配置的用户是 www-data,将其改为 root 后使用 nginx -s reload
命令重启 Nginx
就可以了。成功访问如下。
接着打开 Ettercap
,选择网卡,点击右上角的对勾确认,进入软件主界面。
首先扫描一波在线主机,找到对方的机器。
点击查看扫描到的主机列表。
根据 IP 可知 103 为目标机器,点击网关 192.168.0.1,Add to Target 2,点击目标机器 192.168.0.103,Add to Target 1。
打开 Current targets 视图。
可以看到已经添加进去了。
因为 DNS 欺骗是基于 Arp 欺骗的,所以首先开启 Arp 欺骗。
接着开启 DNS 欺骗插件。
双击 dns_spoof ,将其激活。激活后可以看到插件名前面有个 * 号。
最后一步,点击开始攻击。
不出意外的话,对方访问任何网站都会是下面这个样子。
打开 Wireshark
开始抓包。
弄完之后,我就干饭去了。干完饭回来登录路由器一看,果然已经没有别人的设备了,看来是被我吓跑了。
查看 Wireshark
的抓包历史,也可以看到,随便一个域名,所返回给对方的 IP 都是我的 IP 地址,说明此次 DNS 欺骗是生效的。
又可以继续愉快的看斗破了!