Vedantk6403/suid-fullchain-bypass
GitHub: Vedantk6403/suid-fullchain-bypass
一个在 64 位 Linux 上串联格式化字符串泄露与缓冲区溢出、绕过全部主流内存防护机制并实现 SUID 提权的全链漏洞利用 PoC。
Stars: 0 | Forks: 0
# SUID 全链提权 (x86-64)
这是一个概念验证项目,演示了在现代 64 位 Linux 系统上的高级全链漏洞利用。该项目成功将格式化字符串漏洞与缓冲区溢出漏洞相结合,动态绕过了最先进的内存缓解机制,并实现了 root 权限提升。
## 🎯 目标
通过动态泄露内存地址、精准恢复 Stack Canary、对齐栈以避免 `movaps` 错误,并执行返回导向编程(ROP)链,从 SUID 二进制文件中获取一个稳定的 `uid=0(root)` shell。
## ⚙️ 环境与缓解机制
* **操作系统:** Linux(在 Ubuntu/Kali 上测试)
* **架构:** amd64 (x86_64)
* **成功绕过的防护:** ASLR、PIE(位置无关可执行文件)、NX(不可执行栈)、Stack Canaries 以及 Full RELRO。
* **禁用的防护:** `_FORTIFY_SOURCE`
## 🧩 链式漏洞利用
1. **格式化字符串泄露:** 利用该漏洞动态泄露随机化的 Stack Canary 和 Libc 基址,从而绕过 ASLR 和 PIE。
2. **缓冲区溢出:** 利用该漏洞进行栈溢出,替换 Canary,并覆盖指令指针(RIP)。
3. **ROP 链:** 劫持执行流以调用 `setuid(0)`,随后执行 `system("/bin/sh")`。
## 🚀 使用方法
**1. 编译存在漏洞的目标文件:**
*(需要启用现代保护机制进行编译,但需禁用 Fortify)*
```
gcc src/vuln.c -o src/vuln -fstack-protector-all -pie -fPIE -Wl,-z,relro,-z,now -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -O0 -g
```
**2. 设置 SUID 权限:**
*(为了模拟存在漏洞的系统二进制文件,它必须归 root 所有)*
```
sudo chown root:root src/vuln
sudo chmod 4755 src/vuln
```
**3. 运行漏洞利用程序:**
```
python3 exploit/exploit.py
```
## 📝 详细分析与演示
要全面、逐步了解构建此漏洞利用程序所涉及的内存布局、GDB 分析和偏移量计算,请查看我的技术博客文章:
[](https://vedantk6403.github.io/my-portfolio/blog/privilege-escalation.html)
## 🔗 联系我:
[
](https://www.linkedin.com/in/vedant-karande-936787247/)
[
](https://github.com/Vedantk6403)
标签:ASLR绕过, CISA项目, GDB, Go语言工具, NX绕过, PIE绕过, PoC, PWN, RELRO, Return-Oriented Programming, ROP, SUID提权, Web报告查看器, x86-64, 二进制安全, 云资产清单, 内存保护绕过, 内存泄漏, 协议分析, 堆叠金丝雀绕过, 堆栈溢出, 子域名枚举, 提权漏洞, 暴力破解, 权限提升, 格式化字符串漏洞, 漏洞链, 系统安全, 系统攻防, 缓冲区溢出, 网络安全, 逆向工具, 逆向工程, 隐私保护