MDK 是一款概念验证工具,用于利用常见的 IEEE 802.11 协议弱点。
MDK4 是 MDK3 的新版本。
MDK4 是 E7mer、ASPj of k2wrlz 开发的 Wi-Fi 测试工具,它使用 aircrack-ng 项目的 osdep 库在多种操作系统上注入帧。其许多部分由优秀的 aircrack-ng 社区贡献:Antragon、moongray、Ace、Zero_Chaos、Hirte、thefkboss、ducttape、telek0miker、Le_Vert、sorbo、Andy Green、bahathir、Dawid Gajownik 和 Ruslan Nabioullin。非常感谢!
MDK4 根据 GPLv3 或更高版本许可。
apt-get install pkg-config libnl-3-dev libnl-genl-3-dev libpcap-dev
git clone https://github.com/aircrack-ng/mdk4
cd mdk4
make
sudo make install
# 在 Arch Linux(及其衍生版)上,在命令中的任何 `make` 后追加 `CC=clang`。
攻击模式 b:信标泛洪
发送信标帧,向客户端展示虚假 AP。
这有时会导致网络扫描器甚至驱动崩溃!
攻击模式 a:认证拒绝服务
向范围内所有 AP 发送认证帧。
过多客户端可能导致多个 AP 冻结或重启。
攻击模式 p:SSID 探测与暴力破解
探测 AP 并检查回应,用于确认 SSID 是否已正确暴露以及 AP 是否在发送范围内。
也支持使用或不使用字典对隐藏 SSID 进行暴力破解。
攻击模式 d:解除认证与解除关联
根据数据流量向站点发送解除认证和解除关联数据包,以断开 AP 的所有客户端连接。
攻击模式 m:Michael 对策利用
发送随机数据包或在另一 QoS 队列中重放重复数据包,以触发 TKIP AP 上的 Michael 对策。
AP 将关闭一整分钟,使其成为一种有效的 DoS 攻击。
攻击模式 e:EAPOL Start 和 Logoff 数据包注入
用 EAPOL Start 帧淹没 AP,使其忙于处理虚假会话,从而无法处理任何合法客户端。
或通过注入虚假 EAPOL Logoff 消息注销客户端。
攻击模式 s:针对 IEEE 802.11s 网状网络的攻击
针对网状网络中的链路管理和路由的各种攻击。
淹没邻居和路由,创建黑洞并转移流量!
攻击模式 w:WIDS 混淆
通过将客户端交叉连接到多个 WDS 节点或虚假流氓 AP 来混淆/滥用入侵检测与防御系统。
攻击模式 f:数据包模糊器
一个简单的数据包模糊器,包含多个数据包源和一组不错的修饰符。请小心使用!
攻击模式 x:PoC 测试
Wi-Fi 协议实现漏洞的概念验证,用于测试设备是否存在 Wi-Fi 漏洞。
可能导致 Wi-Fi 连接断开或目标设备崩溃。
mdk4 <interface> <attack_mode> [attack_options]
mdk4 <interface in> <interface out> <attack_mode> [attack_options]
尝试 mdk4 --fullhelp 查看所有攻击选项
尝试 mdk4 --help <attack_mode> 查看单个攻击的信息
完整选项:
攻击模式 b:信标泛洪
发送信标帧,向客户端生成虚假 AP。
这有时会导致网络扫描器和驱动崩溃!
-n <ssid>
使用 SSID <ssid> 替代随机生成的 SSID
-a
在生成的 SSID 中也使用不可打印字符,并创建超出 32 字节限制的 SSID
-f <filename>
从文件读取 SSID
-v <filename>
从文件读取 MAC 和 SSID。请参看示例文件!
-t <adhoc>
-t 1 = 仅创建 Ad-Hoc 网络
-t 0 = 仅创建 Managed(AP)网络
不使用此选项时,两种类型都会生成
-w <encryptions>
选择假网络应使用的加密类型
有效选项:n = 无加密,w = WEP,t = TKIP(WPA),a = AES(WPA2)
可选择多种类型,例如 "-w wta" 将仅创建 WEP 和 WPA 网络
-b <bitrate>
选择创建 11 Mbit (b) 还是 54 MBit (g) 网络
不使用此选项时,两种类型都会被使用。
-m
使用内置 OUI 数据库中的有效接入点 MAC
-h
跳转到被欺骗网络所在的信道
这对某些设备/驱动更有效
但会因信道跳转而降低数据包速率。
-c <chan>
在信道 <chan> 上创建假网络。如果你希望网卡跳转到此信道,
还必须设置 -h 选项。
-i <HEX>
在标记参数末尾添加用户定义的 IE(十六进制)
-s <pps>
设置每秒数据包数(默认:50)
攻击模式 a:认证拒绝服务
向范围内所有 AP 发送认证帧。
过多客户端可能导致多个 AP 冻结或重启。
-a <ap_mac>
仅测试指定的 AP
-m
使用内置 OUI 数据库中的有效客户端 MAC
-i <ap_mac>
对 AP 执行智能测试
此测试将客户端连接到 AP 并重放嗅探到的数据以保持其活动状态。
-s <pps>
设置每秒数据包数(默认:无限制)
攻击模式 p:SSID 探测与暴力破解
探测 AP 并检查回应,用于确认 SSID 是否已正确暴露以及 AP 是否在发送范围内。
也支持使用或不使用字典对隐藏 SSID 进行暴力破解。
-e <ssid>
要探测的 SSID
-f <filename>
从文件读取 SSID 以暴力破解隐藏 SSID
-t <bssid>
设置目标 AP 的 MAC 地址
-s <pps>
设置速度(默认:400)
-b <character sets>
使用完全暴力破解模式(仅推荐用于短 SSID!)
可同时选择多种字符集:
* n(数字:0-9)
* u(大写字母:A-Z)
* l(小写字母:a-z)
* s(符号:ASCII)
-p <word>
继续暴力破解,从 <word> 开始。
-r <channel>
探测请求测试(mod-musket)
攻击模式 d:解除认证与解除关联
根据数据流量向站点发送解除认证和解除关联数据包,以断开 AP 的所有客户端连接。
-w <filename>
读取包含不关心 MAC 的文件(白名单模式)
-b <filename>
读取包含要运行测试的 MAC 的文件(黑名单模式)
-s <pps>
设置每秒数据包数(默认:无限制)
-x
启用完整的 IDS 隐身,匹配所有序列号
数据包将仅使用客户端地址发送
-c [chan,chan,...,chan[:speed]]
启用信道跳转。当 -c h 时,mdk4 将跳转所有
14 个 b/g 信道。信道每 3 秒更改一次,
如果未指定速度。速度值以毫秒为单位!
-E <AP ESSID>
指定要攻击的 AP ESSID。
-B <AP BSSID>
指定要攻击的 AP BSSID。
-S <Station MAC address>
指定要攻击的站点 MAC 地址。
-W <Whitelist Station MAC address>
指定白名单站点 MAC。
攻击模式 m:Michael 对策利用
发送随机数据包或在另一 QoS 队列中重放重复数据包,以触发 TKIP AP 上的 Michael 对策。
AP 将关闭一整分钟,使其成为一种有效的 DoS 攻击。
-t <bssid>
设置运行 TKIP 加密的目标 AP
-j
使用新的 QoS 漏洞,仅需重放少量数据包,而非随机数据包注入,
后者不可靠但在没有 QoS 时有效。
-s <pps>
设置每秒数据包数(默认:400)
-w <seconds>
每次随机数据包爆发之间等待 <seconds> 秒(默认:10)
-n <count>
每次爆发发送 <count> 个随机数据包(默认:70)
攻击模式 e:EAPOL Start 和 Logoff 数据包注入
用 EAPOL Start 帧淹没 AP,使其忙于处理虚假会话,从而无法处理任何合法客户端。
或通过注入虚假 EAPOL Logoff 消息注销客户端。
-t <bssid>
设置目标 WPA AP
-s <pps>
设置每秒数据包数(默认:400)
-l
使用 Logoff 消息踢出客户端
攻击模式 s:针对 IEEE 802.11s 网状网络的攻击
针对网状网络中的链路管理和路由的各种攻击。
淹没邻居和路由,创建黑洞并转移流量!
-f <type>
基本模糊测试。从空中捕获 Action 和 Beacon 帧,修改并重播:
以下修改类型已实现:
1:重复相同帧直到新帧到达(重复淹没)
2:更改源地址和 BSSID(可能导致邻居淹没)
3:截短数据包,保留 802.11 头部完整(寻找缓冲区错误)
4:霰弹模式,随机覆盖头部后的字节(发现 bug)
5:脚本小子的自动攻击,随机尝试以上所有方法 :)
-b <impersonated_meshpoint>
创建黑洞,使用伪装网状节点的 MAC 地址
mdk4 会回应每个传入的路由请求,提供通过伪装节点的完美路由。
-p <impersonated_meshpoint>
路径请求淹没,使用伪装节点的地址
调整速度开关 (-s) 以获得最大效果!
-l
通过修改路径回复,仅在每条发现的路由上创建环路
-s <pps>
设置每秒数据包数(默认:100)
-n <meshID>
针对此网状网络
攻击模式 w:WIDS 混淆
通过将客户端交叉连接到多个 WDS 节点或虚假流氓 AP 来混淆/滥用入侵检测与防御系统。
混淆 WDS,使其包含多个已认证客户端,从而扰乱路由表
-e <SSID>
目标 WDS 网络的 SSID
-c [chan,chan,...,chan[:speed]]
启用信道跳转。当 -c h 时,mdk4 将跳转所有
14 个 b/g 信道。信道每 3 秒更改一次,
如果未指定速度。速度值以毫秒为单位!
-z
激活 Zero_Chaos 的 WIDS 漏洞利用
(将 WDS 的客户端认证到外部 AP,使 WIDS 发疯)
-s <pps>
设置每秒数据包数(默认:100)
攻击模式 f:数据包模糊器
一个简单的数据包模糊器,包含多个数据包源和一组不错的修饰符。请小心使用!
mdk4 随机选择给定的源和一个或多个修饰符。
-s <sources>
指定以下一个或多个数据包源:
a - 从空中嗅探数据包
b - 创建带有随机 SSID 和属性的有效信标帧
c - 创建广播的 CTS 帧(也可用于 CTS DoS)
p - 创建广播探测请求
-m <modifiers>
至少选择以下一个修饰符:
n - 无修饰,不修改数据包
b - 将目标地址设为广播
m - 将源地址设为广播
s - 霰弹:随机覆盖几个字节
t - 追加随机字节(在信标/探测中创建损坏的标记参数)
c - 截短数据包,最好在头部或标记的某个位置
d - 在 Duration 和 Flags 字段中插入随机值
-c [chan,chan,...,chan[:speed]]
启用信道跳转。当 -c h 时,mdk4 将跳转所有
14 个 b/g 信道。信道每 3 秒更改一次,
如果未指定速度。速度值以毫秒为单位!
-p <pps>
设置每秒数据包数(默认:250)
攻击模式 x:PoC 测试
Wi-Fi 协议实现漏洞的概念验证,
用于测试设备是否存在 Wi-Fi 漏洞。
可能导致 Wi-Fi 连接断开或目标设备崩溃。
-s <pps>
设置每秒数据包数(默认:无限制)
-c [chan,chan,...,chan[:speed]]
启用信道跳转。当 -c h 时,mdk4 将跳转所有
14 个 b/g 信道。信道每 3 秒更改一次,
如果未指定速度。速度值以毫秒为单位!
-v <vendor>
在 pocs 目录中的文件名,默认为测试所有。
-A <AP MAC>
设置 AP MAC
-S <Station MAC>
设置站点 MAC。