gl1tch0x1/DirtyClone
GitHub: gl1tch0x1/DirtyClone
DirtyClone 是一个利用 Linux 内核 XFRM 相关漏洞 CVE-2026-43503 实现本地权限提升的概念验证 PoC 工具。
Stars: 2 | Forks: 1
# DirtyClone
DirtyClone 是一个基于 C 语言编写的本地权限提升(LPE)概念验证(PoC)程序,旨在利用源码中描述为 CVE-2026-43503 的内核/XFRM 相关漏洞。该程序仅供授权的安全研究和在受控环境中进行测试使用。
## 概述
本仓库包含一个单一的源文件:
- [dirtyclone.c](dirtyclone.c) – 使用 C 语言编写的漏洞利用实现
该程序执行一系列步骤,旨在:
- 创建隔离的 user 和 network namespace,
- 配置 loopback 以及与 XFRM/IPsec 相关的网络状态,
- 使用 AES-CBC 加密构建 ESP 数据包,
- 针对目标 SUID 二进制文件触发 page-cache 修补流程,
- 执行已被修补的目标二进制文件。
## 重要提示
此工具专为授权的安全测试设计。未经明确许可在系统上运行它可能是非法的,并可能导致严重的安全和系统完整性问题。
## 构建
使用以下命令编译程序:
```
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2
```
## 用法
使用以下命令运行二进制文件:
```
./dirtyclone
```
可选标志:
```
./dirtyclone -q # quiet mode
./dirtyclone -v # verbose mode (default)
./dirtyclone -h # show help
```
## 程序功能说明
在宏观层面上,该程序会:
1. 显示横幅信息并检查当前是否已以 root 权限运行。
2. 验证基本的运行时前提条件,例如目标 SUID 二进制文件路径以及架构支持情况。
3. 设置 namespace 和 loopback 网络。
4. 配置 XFRM 状态/策略以及 TEE netfilter 规则。
5. 将目标 SUID 二进制文件映射到内存中,并准备 ESP 数据包。
6. 发送精心构造的数据包,并等待 page cache 反映出被修补的字节。
7. 执行目标二进制文件,预期将获得一个特权 shell。
## 技术细节
该实现包括:
- 用于等待 page-cache 更改的自适应重试逻辑,
- 通过 `atexit` 和信号处理程序注册的清理例程,
- 使用 `fork` 和 `execvp` 的安全进程执行,
- 使用 OpenSSL EVP API 进行的 AES-CBC 加密,
- 适用于 x86_64 和 AArch64 系统的感知架构 shellcode。
## 前置条件
源码需要一个具备以下条件的 Linux 环境:
- GCC/Clang 工具链,
- OpenSSL 开发头文件/库,
- 系统上可用的 `ip`、`iptables` 和 `modprobe`,
- 兼容的内核以及位于 `/usr/bin/su` 的目标二进制文件。
## 安全与道德准则
仅在以下情况下使用本项目:
- 您拥有目标系统,
- 您拥有明确的测试授权,
- 您在实验室或隔离环境中操作。
切勿在生产系统或未经授权评估的系统上部署或运行此代码。
## 许可与署名
源码头文件将作者标识为 MrAashish0x1 (gl1tch0x1)。该仓库不包含单独的许可证文件,因此该代码应被视为研究材料,而不是生产级软件。
标签:Linux内核, Web报告查看器, XFRM/IPsec, 安全测试工具, 安全渗透, 客户端加密, 本地提权, 概念验证