AtlasVector/Dirty-Frag-CVE-2026-43284

GitHub: AtlasVector/Dirty-Frag-CVE-2026-43284

针对 DirtyFrag Linux 内核提权漏洞的安全检测实验,包含完整漏洞利用链复现、检测盲区识别及修正后的 Elastic Stack EQL 检测规则。

Stars: 0 | Forks: 0

# DirtyFrag (CVE-2026-43284) - 实验检测练习报告 **分类:** 内部实验室 - CyberLAB **日期:** 2026年5月24日 **平台:** Elastic Stack v9.4.1 **状态:** 已确认检测 ## 目录 - [A - 执行摘要](#a---executive-summary) - [B - 完整调查结果报告](#b---full-findings-report) - [1. 目标与威胁模型](#1-objective-and-threat-model) - [2. 漏洞背景](#2-vulnerability-background) - [3. 实验环境](#3-lab-environment) - [4. 阶段 1 - 执行前设置](#4-phase-1---pre-execution-setup) - [5. 阶段 2 - 漏洞利用执行](#5-phase-2---exploit-execution) - [6. 阶段 3 - 后渗透活动](#6-phase-3---post-exploitation-activity) - [7. 阶段 4 - 检测工程](#7-phase-4---detection-engineering) - [8. 检测参考](#8-detection-reference) - [9. 关键发现总结](#9-key-findings-summary) - [10. 参考文献](#10-references) ## A - 执行摘要 ### 测试内容 一次受控的漏洞利用练习,模拟了在获取初始访问权限后的攻击者使用 ***DirtyFrag (CVE-2026-43284)***(一个 Linux 内核提权漏洞)进行攻击的过程。模拟的攻击者场景为:通过钓鱼凭证获取的低权限用户(`saskia`, uid=1001)试图在内部 Linux 主机上提权至 root。该实验室使用了一台与生产网络隔离的、故意留有漏洞的 Ubuntu 机器(`ubuntu-vuln`,内核 `6.0.0-22-generic`)。 ### 结果:漏洞利用成功 - 已确认检测 攻击者在实验室环境中获得了完全的 root 访问权限(`uid=0`)。Elastic Security 检测堆栈生成了 **3 个高严重性告警**(风险评分 73),正确识别了漏洞利用链。然而,检测需要进行手动调优 —— 开箱即用的配置存在漏洞,原本会导致漏报。 ### 风险声明 | 项目 | 详情 | | ---- | ------ | | **漏洞** | DirtyFrag - CVE-2026-43284 (xfrm-ESP 路径), CVE-2026-43500 (RxRPC 路径) | | **CVSS 影响** | 完全本地提权至 root | | **受影响内核** | Linux 内核 >= 2017年1月(长达9年的生命周期) | | **受影响发行版** | Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE, CentOS Stream 10, Fedora 44 | | **文件完整性绕过** | 磁盘上的文件未被修改 - AIDE, Tripwire, hash 监控均报告为正常 | | **公开 PoC** | 可用(GitHub 上的 V4bel/dirtyfrag) | | **提权至 root 时间** | 从低权限立足点起 < 10 分钟 | ### 关键发现 1. **默认的 `auditd` 规则未产生任何证据。** 如果没有为 `socket`、`splice` 和 `unshare` 配置明确的 syscall 规则,漏洞利用将静默运行 —— 没有日志,没有告警。默认的 Elastic Agent 部署不会自动添加这些规则。 2. **检测需要规则调优。** 已发布的 Elastic Security Labs 检测逻辑使用 `process.parent.pid` 作为关联键。在实践中,**DirtyFrag** 会 fork 中间进程,从而破坏了这种关联性。在本次练习中,我们识别并实现了通过 `auditd.session` 进行关联的修复方案。 3. **后渗透行动非常广泛。** 获得 root 权限后,攻击者读取了 `/etc/shadow`,访问了 SSH authorized keys,写入了持久化标记(`/root/pwned.txt`),并通过 `nc` 发起了网络侦察。所有这些都在初始访问后的 30 分钟内发生。 ### 建议 | 优先级 | 行动 | | -------- | ------ | | **立即执行** | 将所有主机上的 Linux 内核修补至已修复版本。应用 Ubuntu, RHEL, AlmaLinux, openSUSE, CentOS, Fedora 的供应商安全公告。 | | **短期** | 在由 Elastic Agent 监控的所有 Linux 主机上,为 `socket`、`splice` 和 `unshare` 部署明确的 auditd syscall 规则。 | | **短期** | 更新 EQL 检测规则,对于命名空间操纵序列,通过 `auditd.session` 而不是 `process.parent.pid` 进行关联。 | | **持续进行** | 将风险评分 >= 73 的特权提升告警视为高优先级分诊。当前规则在提权发生后的几秒钟内就会触发。 | ## B - 完整调查结果报告 ### 1. 目标与威胁模型 **目标:** 验证家庭实验室 SOC 对 DirtyFrag 漏洞利用的检测覆盖率,识别检测漏洞,并根据观察到的攻击者行为制定修正后的检测规则。 **威胁模型:** 模拟获得初始访问权限后的攻击者,其拥有低权限用户账户(`saskia`, uid=1001)的钓鱼凭证。目标:利用 DirtyFrag 通过 `xfrm-ESP` 接收路径提权至 root。实验室执行通过 Proxmox 控制台进行 —— 在功能上等同于 SSH 后访问。 考虑了两个攻击者能力层级: - **标准版(吵闹):** 在没有任何规避的情况下运行漏洞利用 - **规避版(安静):** 减少噪声,刻意进行清理 本次练习涵盖了标准层级。 ### 2. 漏洞背景 DirtyFrag 是一系列相关 Linux 内核 bug 中的第三个,它们都滥用了相同的根本原因: | CVE | 别名 | 引入时间 | 路径 | | --- | -------- | ---------- | ---- | | CVE-2022-0847 | Dirty Pipe | - | pipe | | CVE-2026-31431 | Copy Fail | - | splice | | CVE-2026-43284 | DirtyFrag | 2017年1月 (commit `cac2661c53f3`) | xfrm-ESP | | CVE-2026-43500 | DirtyFrag | 2023年6月 (commit `2dc334f1a63a`) | RxRPC | **根本原因:** IPv4/IPv6 数据报追加路径在 `skb_splice_from_iter()` 将页缓存页面植入 socket buffer (`sk_buff`) 后,未设置 `SKBFL_SHARED_FRAG`。随后 ESP 输入路径对攻击者控制的页缓存页面执行了原位加密,将其视为普通的未克隆非线性 skbs。 **漏洞利用原语:** 向页缓存中进行 4 或 8 字节的受控写入。确定性的 —— 不需要竞态条件。 **漏洞利用链:** 1. 攻击者将目标二进制文件(例如 `/usr/bin/su`)读取到页缓存中 2. 通过 `splice()` 构造一个数据包,使文件的页面位于 `struct sk_buff` 的 `frag[0]` 中 3. 内核将数据包传递给 `xfrm-ESP` 解密路径 4. ESP 执行原位加密 - 源和目的地都指向攻击者的页面 5. 加密将攻击者控制的字节写入页缓存 6. 随后对该文件的所有读取 —— 包括内核的 `execve()` —— 都将返回损坏的字节 **关键的规避特性:** 磁盘上的文件永远不会被修改。文件完整性监控工具(AIDE, Tripwire, hash 检查)均报告目标文件正常。 **确认存在漏洞的发行版:** Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE Tumbleweed, CentOS Stream 10, Fedora 44。 ### 3. 实验环境 | 组件 | 详情 | | --------- | ------- | | Fleet Server / ELK 主机 | `ubuntu-tm` / `elk-docker` - `172.66.66.30` (实验室内部) | | Elastic Stack | v9.4.1 (Elasticsearch, Kibana, Logstash - Docker) | | 目标(受害者)主机 | `ubuntu-vuln` - `172.66.66.27` | | 受害者内核 | `6.0.0-22-generic` (存在漏洞) | | 受害者用户 | `saskia` - uid=1001, groups=1001(saskia),27(sudo),100(users) | | Elastic Agent | v9.4.1 带 auditbeat | | 网络 IDS | Suricata 8.0.5 位于专用传感器上 | | Kibana | `http://172.66.66.30:5601` (实验室内部) | **练习时的活动遥测数据:** | 数据集 | 占比 | | ------- | ----- | | `suricata.eve` | 75.2% | | `elastic_agent.fleet_server` | 10.8% | | `elastic_agent` | 9.1% | | `elastic_agent.filebeat` | 1.9% | | `elastic_agent.auditbeat` | 1.4% | | `auditd_manager.auditd` | 0.5% | | `system.auth` | 0.2% | | `system.syslog` | 0.1% | ### 4. 阶段 1 - 执行前设置 #### 4.1 实验室隔离 练习前已隔离实验室网络。防火墙别名 `Cyber_escape_door` 已确认禁用 - 阻止了对其他 VLAN 或互联网的横向访问。 ![实验室隔离确认](https://raw.githubusercontent.com/AtlasVector/Dirty-Frag-CVE-2026-43284/main/src-exercise_dirtyfrag/dirty_frag_primitive_LAB_ISOLATION.png) #### 4.2 受害者主机验证 在 `ubuntu-vuln` 上确认了存在漏洞的内核和低权限账户: ``` saskia@ubuntu-vuln:~$ uname -r 6.0.0-22-generic saskia@ubuntu-vuln:~$ whoami saskia saskia@ubuntu-vuln:~$ id uid=1001(saskia) gid=1001(saskia) groups=1001(saskia),27(sudo),100(users) ``` ![内核和用户验证](https://raw.githubusercontent.com/AtlasVector/Dirty-Frag-CVE-2026-43284/main/src-exercise_dirtyfrag/dirty_frag_ubuntu_user_karnel.png) #### 4.3 堆栈健康检查 **Suricata:运行并正在捕获 (systemctl status)** ![Suricata 服务处于活动且已启用状态](https://static.pigsec.cn/wp-content/uploads/repos/cas/3b/3bd0f2a2eb3695861aa36f58545b85567d3a8bdeb4e847060e9dbb63391abf9b.png) **Kibana/Elasticsearch:绿色/健康 (API 检查)** ![通过 curl 检查 ELK 健康状态返回 302](https://raw.githubusercontent.com/AtlasVector/Dirty-Frag-CVE-2026-43284/main/src-exercise_dirtyfrag/suricata_traffic_events-2.png) **在任何更改之前已拍摄 VM 快照** ![ELK VM 快照 - elk-VM-snapshot](https://static.pigsec.cn/wp-content/uploads/repos/cas/6d/6d7c0af2ac6a6b526e21696f83ecea29e3b5d2a433b00eeaa104746ac87b155c.png) ![Suricata VM 快照 - suricata_pre_dirty_frag (2026年5月24日 11:15:53)](https://raw.githubusercontent.com/AtlasVector/Dirty-Frag-CVE-2026-43284/main/src-exercise_dirtyfrag/suricata_traffic_events-4.png) ![Ubuntu-Vuln-Host 快照](https://static.pigsec.cn/wp-content/uploads/repos/cas/0c/0c66bce642d8508ac2dddfe5930a84ba3f936fc8507fb96717ced5bc2bd77f8d.png) #### 4.4 网络捕获 在 Suricata 主机上启动了 tcpdump(`emp6s19`,快照长度 262144 字节),以全量捕获 `172.66.66.27` 的流量。 ![suricata 流量事件副本](https://static.pigsec.cn/wp-content/uploads/repos/cas/12/12c4e8bd2f5749a5ff3afda1613fecf69d635fbb87003808d83cc89815430e3c.png) ![在 Suricata 传感器上启动 tcpdump](https://static.pigsec.cn/wp-content/uploads/repos/cas/09/09e4a4ab1a4f692ee24f168c2094bf159590b9c6bb4ea8a977f0c004687ae341.png) ### 5. 阶段 2 - 漏洞利用执行 #### 5.1 准备 来自 V4bel/dirtyfrag PoC 的漏洞利用源码 (`exp.c`) 已在受害者主机上就绪。 ``` ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ ls exp exp.c README.md ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ cp exp.c /tmp/exp/ ``` 右侧终端显示了用户 `saskia` 可见的暂存副本。 ![暂存在 /tmp/exp/ 中的漏洞利用源码](https://static.pigsec.cn/wp-content/uploads/repos/cas/b8/b856556a1ab4634396fae71fee3312ef8b32eb4b43a47cbc27c55beba51538ef.png) #### 5.2 编译 通过 `sudo gcc` 以 root 身份编译(用户 `saskia` 在 sudoers 中): ``` saskia@ubuntu-vuln:~$ sudo gcc -o /tmp/exp/clean_frag /tmp/exp/exp.c saskia@ubuntu-vuln:~$ ls -la /tmp/exp/ -rwxr-xr-x 1 root root 62320 May 24 12:18 clean_frag -rw-rw-r-- 1 ubuntu-vuln ubuntu-vuln 67803 May 24 12:13 exp.c saskia@ubuntu-vuln:~$ id uid=1001(saskia) gid=1001(saskia) groups=1001(saskia),27(sudo),100(users) ``` 二进制文件:ELF 64-bit LSB executable, x86-64, dynamically linked。 ![漏洞利用程序编译完成 - clean_frag 二进制文件已就绪](https://static.pigsec.cn/wp-content/uploads/repos/cas/04/0449b71e0aa5ab6acc1483dc1109e40a59108fe2fb1c438413daa05e3e8c4f3c.png) #### 5.3 执行 - 获得 Root 权限 以 `saskia` (uid=1001) 身份执行漏洞利用。该进程(`clean_frag`, pid=4326)打开了 `AF_RXRPC` 和 `AF_ALG` socket,随后调用 `splice()` 将页缓存页面植入网络缓冲区。ESP 路径上的原位加密将攻击者控制的字节写入了页缓存。一个子进程 (pid=4327) 调用了带有 `a0=50000000` (CLONE_NEWUSER | CLONE_NEWNET) 的 `unshare`,以获取命名空间范围内的能力。 ``` saskia@ubuntu-vuln:~$ /tmp/exp/clean_frag ... root@ubuntu-vuln:~# id uid=0(root) gid=0(root) groups=0(root) root@ubuntu-vuln:~# ls ``` **2026年5月24日 中欧夏令时间 12:22(UTC 10:22)** 获得了完整的 root shell。 **捕获的 Auditd syscall 序列 (UTC):** | 时间戳 (UTC) | Syscall | 参数 | 进程 | 用户 | | --------------- | ------- | -------- | ------------- | ---- | | 10:21:11.054 | `unshare` | `a0=50000000` | clean_frag (4327) | saskia (1001) | | 10:21:11.055 | `socket` | `a0=21` (AF_RXRPC) | clean_frag (4326) | saskia (1001) | | 10:21:17.403 | `socket` | `a0=26` (AF_ALG) | clean_frag (4326) | saskia (1001) | | 10:21:17.419 | `splice` | `a0=4` | clean_frag (4326) | saskia (1001) | | 10:21:17.419 | `splice` | `a0=7` | clean_frag (4326) | saskia (1001) | 所有事件共享 `auditd.session=2`。 ![获取后渗透 root shell](https://static.pigsec.cn/wp-content/uploads/repos/cas/56/567047c861a5cbd0c6c494f5157e1db9134c0fd98633a7c008d15bf16146acf3.png) ### 6. 阶段 3 - 后渗透活动 从大约 12:22 CEST 开始,所有操作均以 `root` 身份在 `ubuntu-vuln` 上执行。 #### 6.1 持久化标记 ``` root@ubuntu-vuln:~# echo "Dirty Frag PoC executed at $(date)" > /root/pwned.txt root@ubuntu-vuln:~# cat /root/pwned.txt Dirty Frag PoC executed at Sun May 24 12:28:05 PM CEST 2026 ``` ![写入到 /root/pwned.txt 的持久化标记](https://static.pigsec.cn/wp-content/uploads/repos/cas/a4/a4c9f7d5eaf9f165aa382692c89c6e98c50884858bae6929aec9251bb09ba06e.png) #### 6.2 凭据访问 ``` root@ubuntu-vuln:~# cat /etc/shadow | head -2 root:*:19823:0:99999:7::: daemon:*:19823:0:99999:7::: root@ubuntu-vuln:~# cat /home/ubuntu-vuln/.ssh/authorized_keys ssh-ed25519 AAAA[...] ``` 访问了 Shadow 文件和 SSH authorized keys。在实际的入侵中,这使得离线密码破解和持久的 SSH 后门访问成为可能。 ![凭据访问 - 以 root 身份读取 shadow 和 SSH keys](https://static.pigsec.cn/wp-content/uploads/repos/cas/c4/c43ba7c429bf1f5a8ea8f79366f8bc8044effa2e3eaa914b03dbf29008131b01.png) #### 6.3 网络侦察 ``` root@ubuntu-vuln:~# nc -vz 172.66.66.1 100-8000 ``` 12:51 CEST 时,从 root 上下文对实验室网关(`172.66.66.1`,端口 100-8000)执行了端口扫描。这展示了从提权后的会话进行横向移动和网络映射的能力。 ![来自 root 的网络扫描 - 针对网关的 nc](https://static.pigsec.cn/wp-content/uploads/repos/cas/35/350b4904ab94e991640582b63d0bc61c679c754fdce22b856bb92ab177a02ef5.png) #### 6.4 Suricata 网络可见性 Suricata 在整个练习窗口期间捕获了与 `172.66.66.27` 相关的 **105 个事件**(88 个 mdns,17 个 flow)。在截取屏幕截图时(大约在 12:53 CEST 的 nc 扫描期间),仪表板中显示了 29 个事件。 DirtyFrag 漏洞利用本身是内核内部的,不会产生网络特征 —— 提权原语在网络线缆上不会产生异常流量。引入 Suricata 是为了收集后渗透流量和枚举尝试的 pcap,而不是为了检测漏洞利用本身。 | 事件类型 | 计数 | | ---------- | ----- | | mdns | 88 | | flow | 17 | | **总计** | **105** | flow 事件集中在 nc 端口扫描窗口期间(10:50-11:10 UTC / 12:50-13:10 CEST)。 ![172.66.66.27 的 Suricata 事件](https://static.pigsec.cn/wp-content/uploads/repos/cas/de/de8249b1c4230a57841799e7806ca97796db4de2321a57c0891f043d842c54b0.png) ### 7. 阶段 4 - 检测工程 #### 7.1 部署的检测规则 根据 Elastic Security Labs 的文章,在 Kibana Detection Engine 中创建了两条 EQL 序列规则。 **规则 1 - 带有 Splice 并随后执行操作的 AF_RXRPC 或 AF_ALG Socket**(未触发 - 见下文缺陷) ``` sequence with maxspan=60s [any where host.os.type == "linux" and ( (event.category == "process" and auditd.data.syscall == "socket" and auditd.data.a0 in ("26", "21")) or (event.category == "process" and auditd.data.syscall == "splice") or (event.category == "network" and event.action == "bound-socket" and data_stream.dataset == "auditd_manager.auditd" and auditd.data.socket.family == "38") ) and user.id != "0"] by process.pid, host.id, user.id with runs=10 [process where host.os.type == "linux" and event.action == "executed" and ( (user.effective.id == "0" and user.id != "0") or (process.name in ("bash", "sh", "zsh", "dash", "fish", "ksh", "busybox") and process.args in ("-c", "--command", "-ic", "-ci", "-cl", "-lc", "-bash", "-sh", "-zsh", "-dash", "-fish", "-ksh")) )] by process.parent.pid, host.id, user.id ``` **规则 2 - 命名空间操纵随后提权**(修复后触发) ``` sequence by host.id, auditd.session with maxspan=30s [process where host.os.type == "linux" and auditd.data.syscall == "unshare" and auditd.data.a0 in ("10000000", "50000000", "70000000", "10020000", "50020000", "70020000") and user.id != "0" and user.id != null] [process where host.os.type == "linux" and user.id == "0" and user.id != null and (process.name in ("bash", "sh", "zsh", "dash", "fish", "ksh", "su", "sudo", "pkexec", "busybox", "mksh") or process.name like ("python*", "perl*", "ruby*", "php*", "lua*"))] ``` #### 7.2 初始检测缺陷 - 缺失的 Syscall 覆盖范围 规则 1 返回了零结果。`ubuntu-vuln` 上的默认 auditd 配置仅捕获了:`write`, `bpf`, `openat`, `unshare`。 缺失:`socket`, `splice`, `bind` —— 核心的漏洞利用原语。 **补救措施:** 添加到 `/etc/audit/rules.d/dirtyfrag.rules`: ``` -a always,exit -F arch=b64 -S socket -k socket_syscall -a always,exit -F arch=b32 -S socketcall -k socket_syscall -a always,exit -F arch=b64 -S splice -k splice-syscall -a always,exit -F arch=b32 -S splice -k splice-syscall -a always,exit -F arch=b64 -S unshare -k unshare-syscall -a always,exit -F arch=b32 -S unshare -k unshare-syscall ``` 漏洞利用运行后的几秒钟内,272 个新的 auditd 事件落入了 Elasticsearch 中。 #### 7.3 EQL 关联缺陷 - 进程树碎片化 尽管捕获了事件,规则 2 还是返回了 0 个匹配项。 **根本原因 - 实际的进程树(来自 Elasticsearch):** | 进程 | PID | PPID | UID | auditd.session | | ------- | --- | ---- | --- | -------------- | | shell (saskia) | 4182 | - | 1001 | 2 | | `clean_frag` (主) | 4326 | 4182 | 1001 | 2 | | `clean_frag` (unshare 子进程) | 4327 | 4326 | 1001 | 2 | | `bash` (root) | - | 4451 | 0 | 2 | 原始规则通过 `process.parent.pid` 进行关联。`unshare` 事件的 `ppid=4326`,但 root shell 具有不同的父进程 —— DirtyFrag fork 了中间进程,破坏了关联性。 **修复:** 通过 `auditd.session` 进行关联。漏洞利用链中的所有事件都共享 `session=2`,无论 fork 深度如何,都能正确链接序列。 #### 7.4 告警结果 **3 个高严重性告警**,风险评分 73,位于 Kibana Security - Alerts 中,时间戳为 `2026-05-24T10:25:57Z` UTC (12:25:57 CEST)。 | 告警 | 时间戳 (UTC) | 信号 | | ----- | --------------- | ------ | | 序列匹配 - unshare 事件 | 10:25:57.869 | process=clean_frag, user=saskia (uid=1001) | | 序列匹配 - root shell | 10:25:57.881 | process=bash, user=root (uid=0) | | 复合序列告警 | 10:25:57.893 | host=ubuntu-vuln | - 规则:`DirtyFrag - Namespace Manipulation Followed by Privilege Escalation` - 严重性:High - 风险评分:73 - 主机:`ubuntu-vuln` ![Kibana 告警详情 - 风险评分 73,开启状态](https://static.pigsec.cn/wp-content/uploads/repos/cas/6c/6c739946f1e9fbc51f0d2b75ee237d114ccc6f510a9c0c240908d8e899630b3b.png) ![Kibana 告警概览 - ubuntu-vuln 上的 3 个高危告警](https://static.pigsec.cn/wp-content/uploads/repos/cas/50/508d325d7c8f0bc319408d200d4d8b5893b838982b37c4f92892a323d987252b.png) ### 8. 检测参考 #### MITRE ATT&CK 映射 | 战术 | 技术 | ID | | ------ | --------- | -- | | 权限提升 | Exploitation for Privilege Escalation | T1068 | | 权限提升 | Escape to Host | T1611 | | 凭据访问 | OS Credential Dumping: /etc/passwd and /etc/shadow | T1003.008 | | 发现 | Network Service Discovery | T1046 | #### 关键 Syscall 值 | Syscall | 参数 | 含义 | | ------- | -------- | ------- | | `unshare` | `a0=50000000` | CLONE_NEWUSER \| CLONE_NEWNET | | `socket` | `a0=26` | AF_ALG (内核加密子系统) | | `socket` | `a0=21` | AF_RXRPC (RxRPC 路径) | | `bind` | `socket.family=38` | AF_ALG bind | | `splice` | - | 向网络缓冲区注入页面 | #### KQL 参考查询 **所有与 dirtyfrag 相关的 auditd 事件:** ``` data_stream.dataset: "auditd_manager.auditd" and auditd.summary.how: *dirtyfrag* ``` **非 root 用户的命名空间操纵:** ``` data_stream.dataset: "auditd_manager.auditd" and auditd.data.syscall: "unshare" and auditd.data.a0: "50000000" ``` **同一会话中提权后的 root 活动:** ``` data_stream.dataset: "auditd_manager.auditd" and user.id: "0" and auditd.session: "2" ``` **漏洞利用窗口期间的所有 auditd 事件:** ``` data_stream.dataset: "auditd_manager.auditd" and @timestamp >= "2026-05-24T10:20:00Z" and @timestamp <= "2026-05-24T10:30:00Z" ``` **来自漏洞利用进程的 Socket 和 splice syscall:** ``` data_stream.dataset: "auditd_manager.auditd" and auditd.summary.how: "/tmp/exp/clean_frag" ``` ### 9. 关键发现总结 | # | 发现 | 严重性 | 是否已补救 | | - | ------- | -------- | ---------- | | 1 | 默认的 auditd 规则漏掉了 `socket`, `splice`, `unshare` - 没有明确的规则就没有证据 | 严重 | 是 - 自定义规则已部署到 `/etc/audit/rules.d/dirtyfrag.rules` | | 2 | 对 fork 的漏洞利用链使用 `process.parent.pid` 进行 EQL 关联失败 | 高 | 是 - 更改为 `auditd.session` | | 3 | 文件完整性监控对 DirtyFrag 视而不见 - 磁盘文件始终未更改 | 高 | 范围内无补救措施 - 修补内核即为修复方案 | | 4 | 后渗透:在任何告警驱动的响应之前,shadow 文件、SSH keys 和网络侦察均已以 root 身份执行 | 高 | 通过 auditd 日志检测到;凭据访问或侦察阶段没有专门的规则触发 | ### 10. 参考文献 - Elastic Security Labs:[Copy Fail and DirtyFrag: Linux Page Bugs in the Wild](https://www.elastic.co/security-labs/copy-fail-dirtyfrag-linux-page-bugs-in-the-wild) - 公开 PoC:[GitHub 上的 V4bel/dirtyfrag](https://github.com/V4bel/dirtyfrag) - MITRE ATT&CK:[T1068 - Exploitation for Privilege Escalation](https://attack.mitre.org/techniques/T1068/) - MITRE ATT&CK:[TA0004 - Privilege Escalation](https://attack.mitre.org/tactics/TA0004/) - MITRE ATT&CK:[T1003.008 - /etc/passwd and /etc/shadow](https://attack.mitre.org/techniques/T1003/008/)
标签:Elastic Stack, Linux内核, Metaprompt, MIT许可证, Web报告查看器, 协议分析, 安全靶场, 权限提升, 流量重放, 漏洞复现, 越狱测试