OverlayFS 权限提升框架 - 红队专业版
DeepRoot 框架是一个针对 CVE-2021-3493(OverlayFS 权限提升)的全面权限提升利用工具,具备高级红队功能,包括持久化机制、隐蔽能力和后利用模块。
创建者: George S. Yanni
原始公告: https://ssd-disclosure.com/ssd-advisory-overlayfs-pe/
仅供教育和授权测试使用
DeepRoot 框架设计用于:
未经明确授权,请勿在正式系统上使用。未经授权访问计算机系统是违法的。
CVE-2021-3493 是 Linux OverlayFS 文件系统中的一个权限提升漏洞,允许非特权用户通过利用用户命名空间中的不当能力处理来获取 root 权限。
主要特征:
CLONE_NEWUSER)映射 UID 0CLONE_NEWNS)进行隔离挂载setxattr() 在二进制文件上设置文件能力CAP_ALL_EP(所有能力)CVE-2021-3493/
├── comprehensive.c # 主利用源代码
├── README.md # 本文件
│
├── Option_1_Inject_SSH_backdoor_key/
│ └── README.md # SSH 后门指南
│
├── Option_2_Install_sudo_backdoor/
│ └── README.md # Sudo 后门指南
│
├── Option_3_Install_cron_persistence/
│ └── README.md # Cron 持久化指南
│
├── Option_4_Install_systemd_service/
│ └── README.md # Systemd 服务指南
│
├── Option_5_Install_LD_PRELOAD_backdoor/
│ └── README.md # LD_PRELOAD 后门指南
│
├── Option_6_Collect_system_information/
│ └── README.md # 系统信息收集指南
│
├── Option_7_Search_for_credentials/
│ └── README.md # 凭据搜索指南
│
├── Option_8_Check_lateral_movement/
│ └── README.md # 横向移动指南
│
├── Option_9_Establish_C2_connection/
│ └── README.md # C2 连接指南
│
├── Option_Shell_and_Cleanup/
│ └── README.md # Shell 和清理指南
│
└── Stealth_Mode_Guide/
└── README.md # 隐蔽模式文档
gcc -o comprehensive comprehensive.c
# 运行利用
./comprehensive
# 利用将:
# 1. 创建必要目录 (./ovlcap/)
# 2. 设置用户和挂载命名空间
# 3. 挂载 OverlayFS
# 4. 在二进制文件上设置能力
# 5. 执行提权后的二进制文件
# 6. 显示后利用菜单
成功提权后,您将看到:
╔══════════════════════════════════════════════════╗
║ 后利用菜单 ║
╚══════════════════════════════════════════════════╝
可用操作:
1. 注入 SSH 后门密钥
2. 安装 sudo 后门
3. 安装 cron 持久化
4. 安装 systemd 服务
5. 安装 LD_PRELOAD 后门
6. 收集系统信息
7. 搜索凭据
8. 检查横向移动
9. 建立 C2 连接
s. 生成 root shell
0. 清理并退出
选择选项:
每个选项都有各自的文档文件夹,包含完整指南:
kernel.unprivileged_userns_clone=1 或 CAP_SYS_ADMIN)该利用针对受 CVE-2021-3493 影响的系统。请检查您的内核版本并确保用户命名空间可用。
命名空间创建: 使用 unshare(CLONE_NEWNS | CLONE_NEWUSER) 创建新的用户和挂载命名空间
UID/GID 映射: 通过 /proc/self/uid_map 和 /proc/self/gid_map 将当前非特权 UID 映射为命名空间内的 0(root)
OverlayFS 挂载: 使用 lower、upper 和 work 目录挂载 OverlayFS
二进制文件复制: 将利用二进制文件复制到 overlay 合并目录
能力注入: 使用 setxattr() 在复制的二进制文件上设置 CAP_ALL_EP(所有能力,有效和许可)
提权执行: 从 upper 目录执行二进制文件,该文件具有完全能力并以 root 身份运行
该利用包含可选的隐蔽模式(--stealth 标志),可以:
nice(19))详见隐蔽模式指南。
./comprehensive
# 等待菜单,选择 's' 获取 shell
./comprehensive
# 选择选项 1
# 按照提示注入您的 SSH 公钥
./comprehensive
# 选择选项 3
# Cron 作业已安装,每 5 分钟执行一次
./comprehensive --stealth
# 利用在减少日志记录和 OPSEC 功能下运行
重要免责声明:
DeepRoot 仅用于教育目的。使用风险自负。
这是一个教育项目。欢迎贡献、错误报告和改进,但请确保所有代码保持本项目教育和道德标准。
请记住:能力越大,责任越大。请合乎道德且合法地使用 DeepRoot。
${\color{3DA300}- \text{George S. Yanni}}$
如有关于 DeepRoot 的任何建议、改进、错误报告或问题,欢迎通过 LinkedIn 联系。