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

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Dirty-Frag-CVE-2026-43284 — 针对 DirtyFrag (CVE-2026-43284) 的实验室检测练习 - 通过 xfrm-ESP 页面缓存破坏实现 Linux 内核权限提升。完整文档涵盖漏洞利用执行、检测盲区以及使用 Elastic Stack 修正后的 EQL 规则。 | Kitploit
工具/GitHubGitHub/atlasvector/dirty-frag-cve-2026-43284
权限提升漏洞分析取证分析学习与教育事件响应二进制利用实验室与实践
GitHubatlasvector/dirty-frag-cve-2026-43284

Dirty-Frag-CVE-2026-43284

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

针对 DirtyFrag (CVE-2026-43284) 的实验室检测练习 - 通过 xfrm-ESP 页面缓存破坏实现 Linux 内核权限提升。完整文档涵盖漏洞利用执行、检测盲区以及使用 Elastic Stack 修正后的 EQL 规则。

查看仓库
114个月前尚未审核

DirtyFrag (CVE-2026-43284) - 实验室检测练习报告

分类: 内部实验室 - CyberLAB
日期: 2026年5月24日
平台: Elastic Stack v9.4.1
状态: 检测已确认


目录

  • A - 执行摘要
  • B - 完整发现报告
    • 1. 目标与威胁模型
    • 2. 漏洞背景
    • 3. 实验室环境
    • 4. 第一阶段 - 执行前设置
    • 5. 第二阶段 - 漏洞利用执行
    • 6. 第三阶段 - 利用后活动
    • 7. 第四阶段 - 检测工程
    • 8. 检测参考
    • 9. 主要发现总结
    • 10. 参考

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),正确识别了利用链。然而,检测需要手动调整——默认配置存在漏洞,否则会导致告警遗漏。

底线: 运行内核 <= 6.x 的未打补丁的Linux主机存在漏洞。如果攻击者已经拥有低权限立足点,该漏洞利用会悄悄且快速地授予他们完全的root权限,且不会在磁盘上留下文件完整性工具可检测到的痕迹。

风险陈述

项目详情
漏洞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、哈希监控均报告干净
公开PoC可用 (GitHub上的V4bel/dirtyfrag)
提权时间从低权限立足点 < 10分钟

主要发现

  1. 默认的auditd规则不会产生任何证据。 如果没有为socket、splice和unshare设置明确的系统调用规则,漏洞利用会静默运行——没有日志,没有告警。默认的Elastic Agent部署不会自动添加这些规则。
  2. 检测需要规则调整。 已发布的Elastic Security Labs检测逻辑使用process.parent.pid作为关联键。在实践中,DirtyFrag会fork中间进程,破坏该关联。修复方法——通过auditd.session进行关联——在本练习中被识别并实施。
  3. 利用后的操作非常广泛。 获得root权限后,攻击者读取了/etc/shadow,访问了SSH授权密钥,写入了持久化标记(/root/pwned.txt),并通过nc发起了网络侦察。所有这些都发生在初始访问后的30分钟内。

建议

优先级操作
立即在所有主机上将Linux内核修补到已修复版本。应用Ubuntu、RHEL、AlmaLinux、openSUSE、CentOS、Fedora的供应商安全公告。
短期在所有由Elastic Agent监控的Linux主机上为socket、splice和unshare部署明确的auditd系统调用规则。
短期更新EQL检测规则,对于命名空间操作序列,使用auditd.session而非process.parent.pid进行关联。
持续将风险评分 >= 73的权限提升告警视为高优先级分类。当前规则在提权后数秒内触发。

B - 完整发现报告

1. 目标与威胁模型

目标: 验证家庭实验室SOC中针对DirtyFrag利用的检测覆盖率,识别检测差距,并根据观察到的攻击者行为生成修正后的检测规则。

威胁模型: 模拟一个使用钓鱼凭证获得低权限用户账户(saskia,uid=1001)的后初始访问攻击者。目标:通过DirtyFrag利用xfrm-ESP接收路径实现权限提升至root。实验室执行通过Proxmox控制台进行——功能上等同于SSH后访问。

考虑了两个攻击者能力层级:

  • 普通(吵闹): 没有进行任何规避的漏洞利用
  • 规避(安静): 降低噪音,刻意清理

本次练习涵盖了普通层级。


2. 漏洞背景

DirtyFrag是系列相关Linux内核漏洞中的第三个,它们都利用相同的根本原因:

CVE昵称引入时间路径
CVE-2022-0847Dirty Pipe-pipe
CVE-2026-31431Copy Fail-splice
CVE-2026-43284DirtyFrag2017年1月 (提交 cac2661c53f3)xfrm-ESP
CVE-2026-43500DirtyFrag2023年6月 (提交 2dc334f1a63a)RxRPC

根本原因: IPv4/IPv6数据报追加路径在skb_splice_from_iter()将页缓存页植入套接字缓冲区(sk_buff)后,未设置SKBFL_SHARED_FRAG。然后ESP输入路径对攻击者控制的页缓存页执行了就地加密,将其视为普通的未克隆的非线性skb。

利用原语: 向页缓存写入4或8字节的控制数据。确定性——不需要竞争条件。

利用链:

  1. 攻击者将目标二进制文件(例如/usr/bin/su)读入页缓存
  2. 通过splice()构造一个数据包,使文件的页面位于struct sk_buff的frag[0]中
  3. 内核将数据包传递给xfrm-ESP解密路径
  4. ESP执行就地加密——源和目标都指向攻击者的页面
  5. 加密将攻击者控制的字节写入页缓存
  6. 随后对该文件的所有读取——包括内核的execve()——都会返回被篡改的字节

关键的规避特性: 磁盘上的文件从未被修改。文件完整性监控工具(AIDE、Tripwire、哈希检查)都报告目标文件是干净的。

已确认受影响的发行版: 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 Stackv9.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 Agentv9.4.1 with auditbeat
网络IDSSuricata 8.0.5 on dedicated sensor
Kibanahttp://172.66.66.30:5601 (实验室内部)

练习时的活跃遥测:

数据集占比
suricata.eve75.2%
elastic_agent.fleet_server10.8%
elastic_agent9.1%
elastic_agent.filebeat1.9%
elastic_agent.auditbeat1.4%
auditd_manager.auditd0.5%
system.auth0.2%
system.syslog0.1%

4. 第一阶段 - 执行前设置

4.1 实验室隔离

实验室网络在练习前已隔离。防火墙别名Cyber_escape_door确认已禁用——防止横向移动到其他VLAN或互联网。

实验室隔离确认

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://assets.kitploit.com/production/public/readmes/15419/bd607abf9c63cc6bf7cfd3432bd406c5fcd51b6e29e4585543f80af99218fd92.png)

#### 4.3 栈健康检查

**Suricata:正在运行并捕获流量(systemctl status)**
![Suricata 服务激活并已启用](https://assets.kitploit.com/production/public/readmes/15419/3bd0f2a2eb3695861aa36f58545b85567d3a8bdeb4e847060e9dbb63391abf9b.png)

**Kibana/Elasticsearch:绿色/健康(API 检查)**
![通过 curl 返回 302 进行的 ELK 健康检查](https://assets.kitploit.com/production/public/readmes/15419/fcd860faf9fbe62adeb94e889ced2a8c4b649f7240b9f7a9eb572a132c56402d.png)

**在变更前拍摄的虚拟机快照**

![ELK 虚拟机快照 - elk-VM-snapshot](https://assets.kitploit.com/production/public/readmes/15419/6d7c0af2ac6a6b526e21696f83ecea29e3b5d2a433b00eeaa104746ac87b155c.png)

![Suricata 虚拟机快照 - suricata_pre_dirty_frag(2026 年 5 月 24 日 11:15:53)](https://assets.kitploit.com/production/public/readmes/15419/679983fc0d92d9b73c3e33439c4a167732eec5685e852ccfe91738e29930f5fa.png)

![Ubuntu-Vuln-Host 快照](https://assets.kitploit.com/production/public/readmes/15419/0c66bce642d8508ac2dddfe5930a84ba3f936fc8507fb96717ced5bc2bd77f8d.png)

#### 4.4 网络捕获
在 Suricata 主机上启动 tcpdump(`emp6s19`,抓包长度 262144 字节),用于完整捕获 `172.66.66.27` 的流量。
![suricata 流量事件副本](https://assets.kitploit.com/production/public/readmes/15419/12c4e8bd2f5749a5ff3afda1613fecf69d635fbb87003808d83cc89815430e3c.png)


![在 Suricata 传感器上启动的 tcpdump](https://assets.kitploit.com/production/public/readmes/15419/09e4a4ab1a4f692ee24f168c2094bf159590b9c6bb4ea8a977f0c004687ae341.png)

---

### 5. 第二阶段 - 漏洞利用执行

#### 5.1 暂存

来自 V4bel/dirtyfrag PoC 的漏洞利用源码(`exp.c`)已暂存到受害者主机上。```bash
ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ ls
exp  exp.c  README.md
ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ cp exp.c /tmp/exp/

右侧终端显示了用户 saskia 可见的暂存副本。

Exploit source staged in /tmp/exp/

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位LSB可执行文件,x86-64,动态链接。

![Exploit compiled - clean_frag binary ready](https://assets.kitploit.com/production/public/readmes/15419/0449b71e0aa5ab6acc1483dc1109e40a59108fe2fb1c438413daa05e3e8c4f3c.png)

#### 5.3 执行 - 获取Root权限

漏洞以 `saskia`(uid=1001)身份执行。进程(`clean_frag`,pid=4326)打开了 `AF_RXRPC` 和 `AF_ALG` 套接字,然后调用 `splice()` 将页面缓存页植入网络缓冲区。ESP路径上的原位加密将攻击者控制的字节写入页面缓存。子进程(pid=4327)调用 `unshare`,参数 `a0=50000000`(`CLONE_NEWUSER | CLONE_NEWNET`),以获取命名空间级能力。```
saskia@ubuntu-vuln:~$ /tmp/exp/clean_frag
...
root@ubuntu-vuln:~# id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu-vuln:~# ls

在 12:22 CEST (10:22 UTC), 2026年5月24日 获得完整的root shell。

捕获的Auditd系统调用序列(UTC):

下载工具