ARP断网攻击与监听

演示如何借助 Kali Linux 系统内置的 nmap、arpspoof、driftnet、ettercap 等渗透测试工具对局域网内 (同 WIFI 下) 同一网段的 PC 主机、手机进行 ARP 欺骗 和 流量监听,实现对目标主机 / 手机的 断网攻击、图片窃取、密码监听 等攻击目的。

使用工具:ARP 欺骗、图片捕获、抓包

  • arpspoof
    ARP 欺骗的工具,可毒化受害者 ARP 缓存,将网关 MAC 替换为攻击者 MAC
  • driftnet
    图片捕获工具,用于监听网络流量并从它观察到的 TCP 流中提取图像的程序
  • ettercap
    网络抓包工具,利用 ARP 协议的缺陷进行中间人攻击,嗅探局域网数据流量

环境说明:主机及 IP 地址

  • Kali Linux:192.168.0.198
  • Win 10 物理机 :192.168.0.106
  • honor 20 手机 :192.168.0.105
  • 魅族 A5 手机 :192.168.0.100

Kali 虚拟机使用桥接模式,Win 10 物理机和 华为荣耀 20、魅族 A5 实体手机连接同一个 WIFI,使得四者处于同一局域网同一网段之下,可互相 (Ping) 连通。

应用场景

  • 室友半夜打游戏、看视频太吵了,忍无可忍的你 “优雅” 地使用 ARP 欺骗切断他的 WIFI,然后舒服地睡觉,留他一脸蒙圈……;
  • 室友半夜盯着手机疯狂偷笑,你可以通过使用 arpspoof+driftnet 将他手机正在浏览的图片保存到 Kali 主机内,好东西得分享……;
  • 室友跟你吹嘘他高数考了 100 分,然而每天比他努力却只考了 60 分的你表示不服,通过使用 arpspoof+ettercap 监听他登陆教务管理系统时输入的账号密码,发现这货只考了 10 分…

以上应用场景均假设与 “被害人” 处于同一 WIFI(校园网)环境之中。再次强调下本文所述方法具有攻击性,各位同胞切不可以身试法……

断网攻击

在演示如何对局域网内部的主机进行断网攻击之前,我们先来了解下攻击原理——ARP 欺骗。

ARP 欺骗

ARP 欺骗(又称 ARP 毒化)是针对以太地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者 PC 借以为攻击者更改后的 MAC 是网关的 MAC,导致网络不通。这种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,也可以让网络上特点的计算机或者所有计算机无法正常上网。

ARP(Address Resolution Protocol) 即地址解析协议,是根据 IP 地址获取物理地址的一个 TCP/IP 协议。主机发送信息时将包含目标 IP 地址的 ARP 请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该 IP 地址和物理地址存入本机 ARP 缓存中并保留一定时间,下次请求时直接查询 ARP 缓存以节约资源。

地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送 ARP 应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机 ARP 缓存;由此攻击者就可以向某一主机发送伪 ARP 应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个 ARP 欺骗。

由于 ARP 缓存表不是实时更新的,如果在网络中产生大量的 ARP 通信量,攻击者只要持续不断的发出伪造的 ARP 响应包就能更改目标主机 ARP 缓存中的 IP-MAC 条目,造成网络中断或中间人攻击。

攻击演示

将 Kali 虚拟机配置为桥接模式,查看其 IP 地址和网关地址:

使用 Nmap 扫描局域网中存活的主机的信息(也可以使用 Kali 内置的 Nmap 图形化界面软件 Zenmap 扫描,结果是一样的):

在 Win 10 主机使用 Zenamp 做下全面扫描,发现华为手机还是无法扫描到 IP 地址,但 IPhone 和 魅族手机可以扫描到:

在 Kali 终端执行 arpspoof 命令:

1
arpspoof -i en0 -t 192.168.0.106(目标 IP) 192.168.0.1(网关 IP)

开始进行 ARP 断网攻击,攻击目标为 Win 10 物理主机:

5、此时 Win 10 主机已经无法正常连接互联网,访问百度后如下:

6、在 Kali 的终端中按下键盘 Ctrl+Z 组合键中断欺骗,物理机就可以恢复正常访问互联网了:

7、对华为荣耀 20 手机做了同样的断网攻击测试,结果没法完全断网…… 但是会极大地限制网速,刷网页、视频会十分卡顿。然而对 魅族 A5 手机进行测试,则可以正常实现断网:

华为手机在 Nmap 中扫描不出其 IP 地址、ARP 欺骗也没法实现彻底的断网,具体原因待研究…… 在这里暂时先默默送给它一句 Six Six Six 吧……

图片窃取

你以为 Kali 能做的仅仅是让局域网中主机断网这么简单?单纯截断受害者的数据流量可没多大意思,我们何不自己充当中间人将其数据流量转发出去,然后监听、获取受害者的数据流量呢(疯狂暗示)……

端口转发

在对受害者实施以上 ARP 欺骗实现断网攻击后,如果攻击者将自己的网卡开启流量转发,将截获的数据包传到真正网关,则可让受害主机不断网,同时可以监听到受害者主机的数据流量的内容。

1、编辑 Kali Linux 虚拟机 / etc/sysctl.conf 配置文件,将 net.ipv4.ip_forward 配置项取消掉 “#” 注释符号,并将其值由 0 改为 1 即可开启端口转发:

2、接着在 Kali 终端重新执行 arpspoof 命令(注意网关 IP 和主机 IP 顺序此时需要对换一下):

arpspoof -i en0 -t 192.168.0.1(网关 IP)

192.168.0.106(目标 IP)

重新对 Win 10 主机发动 ARP 欺骗攻击,此时其仍能正常联网,端口转发成功:

攻击演示

driftnet 是一款简单而使用的图片捕获工具,可以很方便的在网络数据包中抓取图片,其使用语法:

1
2
3
4
5
6
7
8
9
10
11
12
driftnet [options] [filter code]。

* -b :捕获到新的图片时发出嘟嘟声
* -f :file 读取一个指定 pcap 数据包中的图片
* -i :interface 选择监听接口
* -p :不让所监听的接口使用混杂模式
* -a :后台模式:将捕获的图片保存到目录中
(不会显示在屏幕上)
* -m :number 指定保存图片数的数目
* -d :directory 指定保存图片的路径
* -x :prefix 指定保存图片的前缀名

1、此次图片窃取的演示使用 IP 地址为 192.168.0.105 的华为荣耀 20 手机 (前面断网不成功,本菜表示不服),首先开启 ARP 欺骗:

2、打开另外一个终端并执行 driftnet -i eth0 -a -d /root/hhh 命令,该命令会自动将手机浏览的图片保存到 Kali 虚拟机的 / root/hhh 路径下:

3、上图已成功获取到手机上正在访问的图片信息,而此时手机打开的是 “央视新闻” 微信公众号的新闻链接,图中保存了文章评论者的头像

4、此处还对 IPhone 手机、Win 10 物理主机均进行了测试,均可成功监听并保存受害主机的图片:

至此,图片监听窃取的攻击演示结束…… 骚年,看到这里,你还敢连着 WIFI 肆无忌惮地看 “不可描述” 的东西么?

密码监听

手机浏览的图片被监听窃取,想一想还是可以忍的(身正不怕影子斜)…… 但是如果连上网使用的账号密码也被监听了,兄 die 你还能稳得住么?

前面介绍了,ettercap 是一款网络抓包工具,利用 ARP 协议的缺陷进行中间人攻击,可嗅探局域网数据流量。

其他命令和使用,我们可以直接在 Kali 终端输入 ettercap -h 打印:

攻击演示

1、同样先在 Kali 终端执行 arpspoof 命令开启 ARP 欺骗攻击,攻击目标为 Win 10 物理主机:

2、然后在物理机上打开一个合天网安实验室官网的登陆页面:

3、打开另一个 Kali 终端,开始利用 ettercap 来抓取账号密码,在终端输入命令 ettercap -Tq -i eth0(这条命令表示监控 eth0 网卡的流量)即可,监听状态如下图:

4、此时在物理机输入正确的账号和密码后,即可在虚拟机终端输出打印其账号密码等登录信息:

5、至此,密码监听的攻击演示结束

总结

从上面的攻击演示可以看出,当你与攻击者处于同一局域网 (同一 WIFI) 下面,攻击者可以借助 ARP 欺骗让你回到 “村里还没接网线” 的年代,同时还能让你的 PC 主机或者手机的部分隐私处于 “裸奔” 状态……

防止 ARP 攻击是比较困难的,修改协议也是不大可能,但是有一些工作是可以提高本地网络的安全性和可提高电脑的安全系数,比如:

  • 定期删除 ARP 缓存表
  • 绑定静态的 ARP 表
  • 安装 ARP 防火墙
  • 拒绝连接安全性未知的 WIFI 等

我们可以在主机中使用以下命令查看本地的 ARP 缓存:

我们可以在浏览器进入网关管理页面(路由器后台管理地址),网络参数一栏有 “IP 与 MAC 绑定” 一栏,把网关的 mac 地址与网关地址绑定就好了:

http://www.mercurycom.com.cn/pages/app/mercuryrouter.html (二维码自动识别)

只要确定了对应关系,当攻击者发布 ARP 响应包时,就不会更新相应的 IP-MAC 缓存表。