blacksunCUBE/Dirty-Frag-hunting

GitHub: 0xAllow/Dirty-Frag-hunting

DirtyFrag hunter 是一套用于检测和狩猎 Linux 内核 DirtyFrag 类本地提权漏洞(CVE-2026-43284/CVE-2026-43500)的检测规则与脚本工具包。

Stars: 0 | Forks: 0

# Dirty-Frag 查找 针对 **CVE-2026-43284** (xfrm-ESP) 和 **CVE-2026-43500** (RxRPC) DirtyFrag Linux LPE 漏洞类的检测与狩猎工具。 原始研究:[Hyunwoo Kim (@v4bel)](https://github.com/V4bel/dirtyfrag) ## 文件 | 文件 | 用途 | |---|---| | `dirtyfrag_hunt.py` | 暴露检查 + `/proc` 检查 + auditd 狩猎 | | `dirtyfrag.yml` | 用于 auditd / SIEM 的 Sigma 规则(6 条规则) | | `dirtyfrag.yar` | YARA 规则(5 条规则),涵盖源码、二进制文件、内存及防篡改检测 | ## 快速开始 ``` # 基础暴露检查(无需 root) python3 dirtyfrag_hunt.py # 使用 auditd hunting 进行全面检查 sudo python3 dirtyfrag_hunt.py -v # 将发现结果导出为 JSON sudo python3 dirtyfrag_hunt.py --json findings.json # 打印并应用 auditd 规则 python3 dirtyfrag_hunt.py --print-auditd-rules > /etc/audit/rules.d/dirtyfrag.rules augenrules --load # Sigma 规则转换 sigma convert -t splunk dirtyfrag.yml sigma convert -t elastic dirtyfrag.yml # YARA 扫描 yara -r dirtyfrag.yar /tmp /home /dev/shm yara dirtyfrag.yar /proc//mem ``` ## CVE 摘要 | CVE | 子系统 | 原语 | 权限要求 | 补丁 | |---|---|---|---|---| | CVE-2026-43284 | xfrm (IPsec ESP) | 4 字节写入页缓存 | CLONE_NEWUSER | 主线:`f4c50a4034e6`,发行版无反向移植 | | CVE-2026-43500 | RxRPC (AFS transport) | 写入页缓存 | 无 | **目前无任何补丁** | 两者均为确定性的逻辑错误,没有竞态条件,失败时也不会引发 kernel panic。 **xfrm 窗口期:** `cac2661c53f3` (2017-01-17) → 所有发行版均未打补丁 **rxrpc 窗口期:** `2dc334f1a63a` (2023-06) → 各处均未打补丁 (2026-05-10) ## 利用链 (CVE-2026-43284) ``` unshare(CLONE_NEWUSER) → socket(AF_KEY, ...) # configure IPsec SA + policy → send crafted ESP packet → xfrm_input() → esp_input_done2() → sk_buff frag → page-cache page of /etc/passwd → decryption output written to frag → page cache of /etc/passwd modified → su root ✓ ``` **CVE-2026-43500** 汇聚点相同,不需要 namespace。 如果加载了 `rxrpc.ko`(Ubuntu 默认),则可通过 `rxrpc_recvmsg()` 触发。 ## 官方缓解措施 ``` sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \ > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true" ``` 副作用:会禁用 IPsec ESP transport (esp4/esp6) 和 AFS/RxRPC (rxrpc)。 ## dirtyfrag_hunt.py 检查项 | 检查项 | CVE | 检测内容 | |---|---|---| | `kernel-version` | 两者 | 内核版本与受漏洞影响的提交窗口对比 (4.9 / 6.4 / 6.15) | | `esp-module` | CVE-2026-43284 | esp4/esp6 已加载且未加入黑名单 | | `rxrpc-module` | CVE-2026-43500 | rxrpc.ko 已加载且未加入黑名单 | | `userns` | CVE-2026-43284 | 无特权 namespace 开启状态 / AppArmor 限制状态 | | `modprobe-config` | 两者 | `/etc/modprobe.d/dirtyfrag.conf` 是否存在及其完整性 | | `proc-hunt` | 两者 | 活动的 xfrm 策略、`/proc/net/protocols` 中的 rxrpc、xfrm_stat 计数器 | | `auditd-hunt` | 两者 | 近期的 unshare / AF_KEY socket / `/etc/passwd` 写入事件 (root) | 如果任何发现项的状态为 `VULN`,退出码为 `1`,适合用于监控管道。 ## dirtyfrag.yml Sigma 规则 | 规则 | 标题 | 级别 | |---|---|---| | `dirtyfrag0001` | 无特权用户创建 namespace (`unshare`) | 中危 | | `dirtyfrag0002` | 非特权进程创建 `AF_KEY` socket | 高危 | | `dirtyfrag0003` | 创建 `AF_RXRPC` socket(异常行为) | 高危 | | `dirtyfrag0004` | 非特权用户写入 `/etc/passwd` 或 `/etc/shadow` | 严重 | | `dirtyfrag0005` | 完整利用链关联 (SIEM temporal) | 严重 | | `dirtyfrag0006` | 运行时加载受漏洞影响的模块 | 高危 | ## dirtyfrag.yar YARA 规则 | 规则 | 范围 | 匹配内容 | |---|---|---| | `DirtyFrag_PoC_Source_V4bel` | 文件 | 磁盘上的原始 `exp.c` 源码 | | `DirtyFrag_PoC_Compiled_ELF` | 文件 | 基于 PoC 编译出的 ELF 二进制文件 | | `DirtyFrag_PoC_InMemory` | 内存 | 进程地址空间中的 PoC 字符串 | | `Linux_PageCache_Write_Exploit_Generic` | 文件/内存 | 更广泛的页缓存写入类 (DirtyFrag / Copy Fail / Dirty Pipe) | | `DirtyFrag_Mitigation_Tamper` | 文件 | 删除 `dirtyfrag.conf` 或强制加载被拦截模块的脚本 | ## 参考链接 - [V4bel/dirtyfrag](https://github.com/V4bel/dirtyfrag) 原始 PoC 与分析文章 - [oss-security 披露](https://www.openwall.com/lists/oss-security/2026/05/07/8) 2026-05-07 - CVE-2026-43284 xfrm-ESP · 补丁:`f4c50a4034e6` (仅限主线) - CVE-2026-43500 RxRPC · 已保留 · 无补丁 (2026-05-10) - [Dirty Pipe (CVE-2022-0847)](https://dirtypipe.cm4all.com/) 漏洞类祖先 - [Copy Fail](https://copy.fail/) 相同的 xfrm 汇聚点,早期变体 - xfrm 漏洞提交:`cac2661c53f3` (2017-01-17) - rxrpc 漏洞提交:`2dc334f1a63a` (2023-06)
标签:CSV导出, Sigma规则, Web报告查看器, YARA, 云资产可视化, 安全渗透, 本地提权, 目标导入, 逆向工具