【Wireshark 系列】中间人攻击分析

Wireshark

中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种非常高效(基本没有失败的可能)的攻击。
中间人攻击的目标并不是交换机,而是终端设备(例如计算机、手机等)。
所以我没有在上一篇 【Wireshark 系列】MAC 地址泛洪攻击分析 里面讲这部分的内容 😃

中间人攻击的相关理论

ARP 缓存表 与 ARP报文分析

在每一台终端设备中都有一个 ARP 缓存表,这个表中保存了一些 IP 地址和 MAC 地址之间的映射关系。
windows/Linunx 查看本台设备 ARP 表的命令:

1
arp -a

删除 ARP 表的命令(需要管理员权限)

1
arp -d

由于我们的电脑大部分时间都会和外进行通信,所以如果执行了删除 ARP 表的命令,它会很快进行ARP的请求,重新获得 Mac地址和 IP 的映射关系。

我们可以利用这个特性,监听网卡,执行删除 ARP 表的命令,即可获得 ARP 请求和 ARP 响应的报文:ARP.pcapng。

ARP 报文分析

image-20200629175524589

ARP 报文非常非常简单,只有两个类型:一个 ARP 请求,一个 ARP 响应。
我们详细看下它的内容:

image-20200629175539195

image-20200629175553893

Opcode 只有 1 和 2,1是请求,2是应答。
对应的,我们可以设置显示过滤器:arp.opcode == 2 或者 arp.opcode == 1
ARP 报文缺点:没有验证措施,所以容易伪造
由于 ARP 协议非常简单,所以在通信过程中 ARP 协议占比通常非常低,几乎可以忽略不计。如果占比高,很可能就是出现了异常情况。

ARP 欺骗

ARP 欺骗是实现 MITM 攻击的一种常用手段。
可以网上似乎到处都是,而且计算机网络课程也应该提到过,这里就不再多少。

发起中间人攻击

常见攻击方式

以前我们提到,ARP 协议没有验证措施,所以黑客可以冒充设备,甚至可以冒充网关……
一旦冒充了网关,目标主机就会将所有对外通信的报文给中间人,中间人再发给网关,信息一览无余……

情景介绍

下面使用 kali 虚拟机作为中间人攻击的实施者,Metasploitable 虚拟机作为被攻击的目标(为什么选他?因为它没有 GUI 省内存 😭)
虚拟机的网关为 192.168.93.2, Metasploitable 的 IP 是 192.168.93.145

我暂居的地方马上迁移了,不要来毒化我哈 😅

image-20200629175611372

实施 ARP 攻击

下面使用一款非常简单好用的工具 ettercap(实现 ARP 欺骗的工具很多,这是一款有 GUI 的工具)。
选择通用的嗅探:
image-20200629175628221

这时候多了很多选项:
image-20200629175723728

先进行扫描主机:
image-20200629175727750

然后查看 Hosts List
image-20200629175734405

分别选择两个目标(网关和攻击目标)
image-20200629175740006

然后执行 MITM
image-20200629175745093

之后这台机器于外界通信的数据包都会被我看到:MITM.pcapng

image-20200629175807246

image-20200629175810833

我们再做一件有趣的事情:我用 scp 从 WSL 发一张照片给 msfadmin

1
scp ./sydney.jpg msfadmin@192.168.93.145:~/

然后在 kali 追踪 TCP 流,看看能否得到图片
MITM_picture.pcapng
image-20200629175834142

SSH 经过了数据的加密,所以没有办法查看原来传输的数据。

分析中间人攻击

接下来我们将通过分析刚刚抓到的包,讲解 MITM 攻击的特点,以便我们自己在其他场景下判断、分辨 MAC 泛洪攻击。
MITM.pcapng

初看

频繁出现 ARP 是不正常的(一般一应一答就结束了)
image-20200629175858516

协议分级看一下:
image-20200629175903200

ARP 协议报文在这么大的数据包中,平常接近 0.0%,这里高达 8.6%!

遇到这样情况,通常有三种可能:

  1. 攻击者用 ARP 协议对网络进行扫描
  2. 计算机感染了 ARP 病毒,破坏网络通信
  3. 用攻击者发动 ARP 欺骗,发动中间人攻击(e.g. 密码丢失,十有八九是 ARP 欺骗)

Wireshark 专家系统

结束捕获状态的时候才可用。

在状态栏的最左侧黄色的按钮:

image-20200629180002310

Wireshark 专家系统分析出了几个疑点:
image-20200629175909336

其中 Duplicate IP …… 对应了刚刚三个可能性中的:ARP 欺骗。

实际工作不能过度依赖专家系统,它主要是针对 TCP 故障分析的。

深入分析

接下来根据之前摸索到的信息去追踪实施 ARP 欺骗的攻击者。
攻击者有这样几个特征:

  1. 发送大量的 ARP reply
    用大数量淹没正确单个的 ARP reply.
  2. 一个 MAC 对应两个 IP(中间人)

应用显示过滤器之后,可见:
image-20200629175918531

上面是两个正常的 ARP reply
下面同一个 MAC 重复地发送 ARP reply,且用两个 IP 回复。
APR 欺骗实施者,无疑。

防御中间人攻击

有四种常见的方法:

  1. 将网关的ARP 映射关系进行静态绑定
    1
    arp -s ip_addr mac_addr
    不适合大型网络(且重启就没有了,可能要在注册表里面找)
  2. 使用 DHCP Snooping 功能
  3. 划分 VLAN
    但是不可能一个人一个 VLAN,所以在一个 VLAN 内还是有风险。
  4. ARP防火墙
    本身也很消耗资源

所以,目前没有完美的方案。

------ The end ------

本文标题:【Wireshark 系列】中间人攻击分析

文章作者:Andy Wu

发布时间:2020年06月29日 - 18:06

最后更新:2020年12月18日 - 21:12

原始链接:https://zer0-nu1l.github.io/2020/06/29/%E3%80%90Wireshark-%E7%B3%BB%E5%88%97%E3%80%91%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB%E5%88%86%E6%9E%90/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。