farisv/AppleDOS

GitHub: farisv/AppleDOS

基于 CVE-2018-4407 漏洞的 Apple 设备拒绝服务攻击 PoC,通过发送恶意 TCP 数据包触发 ICMP 堆溢出导致目标设备崩溃。

Stars: 25 | Forks: 6

# AppleDOS (CVE-2018-4407) 基于 CVE-2018-4407 (),这条 [推文](https://twitter.com/ihackbanme/status/1057811965945376768) 以及这个 [视频](https://twitter.com/kevin_backhouse/status/1057352656560287746)。该漏洞是操作系统试图将包含错误数据包段的 ICMP 消息发送回发送方时,在错误数据包处理过程中产生的堆溢出漏洞。 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3d234c0561113654.gif) 此 POC 通过发送包含超长 TCP/IP 头选项的恶意 TCP 数据包,在设备尝试发出错误消息时导致 ICMP 消息溢出,从而使存在漏洞的 Apple 设备崩溃。你需要具备直接向设备发送网络数据包的能力(例如在同一局域网内)。 以下操作系统版本和设备受此漏洞影响: - Apple iOS 11 及更早版本:所有设备 - Apple macOS High Sierra,包括 10.13.6 及更早版本:所有设备 - Apple macOS Sierra,包括 10.12.6 及更早版本:所有设备 - Apple OS X El Capitan 及更早版本:所有设备 ## 警告 仅供教育目的。切勿将此脚本用于非法活动。作者不对任何滥用或损害负责。 ## 示例 请确保你已安装 Python 3 和 scapy。 ``` pip install scapy # 或 pip3 install scapy ``` 你可能需要以 root 权限运行此脚本。 向 192.168.1.0/24 子网发送恶意数据包。 ``` sudo ./appledos.py 192.168.1.0/24 ``` 显示数据包发送后的 IP。 ``` sudo ./appledos.py --verbose 192.168.1.0/24 ``` 持续向 192.168.1.0/24 子网发送恶意数据包。 ``` sudo ./appledos.py --continuous 192.168.1.0/24 ``` 更改目标端口(默认:80)。你可以更改为任何端口,因为设备会响应发送到任何端口的传入数据包,但你可能需要考虑主机或网络中的端口阻止或防火墙问题。 ``` sudo ./appledos.py --continuous --port 22 192.168.1.0/24 ``` 仅向单个 IP 发送恶意数据包。 ``` sudo ./appledos.py 192.168.1.118 ``` 设置最大工作线程数(默认:100)。 ``` sudo ./appledos.py --worker 10 192.168.1.0/24 ``` ## 注意 此脚本使用 scapy,在 macOS 等操作系统上通过多线程发送数据包数据时,存在处理 `/dev/bpf` (Berkeley Packet Filter) 的已知问题。如果你遇到 `No /dev/bpf handle is available` 错误,请尝试将工作线程数减少到 1 或 2。或者,你可以直接使用 Linux 系统,如演示视频所示。
标签:Apple, CVE-2018-4407, DoS, ICMP, iOS, PoC, Python, Scapy, XNU内核, 内核驱动, 堆溢出, 局域网攻击, 拒绝服务攻击, 无后门, 暴力破解, 漏洞复现, 系统崩溃, 编程工具, 网络协议, 网络安全, 远程代码执行, 隐私保护