记一次对某客户端的安全测试
字数 1813 2025-08-03 16:48:04
某客户端安全测试实战教学文档
1. 测试背景与准备
本次测试目标是一个C/S架构的客户端程序,测试者首次接触此类架构,采用从Web测试经验延伸的方法进行安全评估。
1.1 测试环境准备
- 工具清单:
- Proxifier:用于强制客户端流量通过代理
- BurpSuite:HTTP/S代理和流量分析工具
- Wireshark:网络协议分析工具(备选)
- MyEclipse:Java Web开发环境
- JDK 1.5.0_21:与目标环境匹配的Java版本
2. 流量分析与代理配置
2.1 代理设置方法
-
检查客户端代理配置:
- 首先确认目标客户端是否内置代理配置功能
- 本例中客户端仅有简单登录功能,无代理配置选项
-
强制代理设置:
- 使用Proxifier强制所有流量通过BurpSuite
- 配置步骤:
a. 在BurpSuite中确认代理监听地址(默认127.0.0.1:8080)
b. 在Proxifier中添加代理服务器(与BurpSuite配置一致)
c. 添加代理规则,将目标客户端进程的所有流量导向BurpSuite
-
连通性验证:
- 观察BurpSuite是否成功拦截客户端流量
- 本例中成功拦截到登录请求
2.2 加密流量处理
- 发现请求和响应数据均被加密
- 尝试Web直接访问相同接口失败(POST请求无法简单复制)
- 备选方案:使用Wireshark抓取原始TCP流量(但分析难度较大)
3. 服务器端渗透测试
3.1 端口扫描发现
- 发现开放端口:9043(WebSphere安全端口)、9060(WebSphere管理端口)
- WebSphere默认管理路径:/ibm/console
3.2 WebSphere管理控制台入侵
-
初始访问:
- 使用默认凭证admin成功登录管理控制台
- 注意:实际环境中应尝试更多默认凭证组合
-
WebShell部署尝试:
- 初始尝试上传常规war包失败
- 错误分析:
- 可能原因1:WebSphere服务需要重启
- 可能原因2:war包文件格式问题
- 可能原因3:JDK版本不匹配
- 可能原因4:WebSphere配置文件限制
-
解决方案:
- 步骤1:简化jsp内容为无害字符串输出,排除恶意代码影响
- 步骤2:使用目标环境匹配的JDK 1.5.0_21重新打包
- 步骤3:使用MyEclipse生成符合WebSphere 6.x规范的war包
- 新建Web项目(选择Servlet 2.3规范)
- 将jsp文件置于WebRoot目录
- 导出为war文件
-
部署流程:
- 在WebSphere控制台选择"应用程序"→"新建应用程序"
- 上传生成的war文件
- 设置上下文根(Context Root)
- 完成安装后启动应用程序
3.3 WebShell选择注意事项
- 使用Godzilla生成的WebShell成功
- Behinder v3.11生成的WebShell失败(可能因jdk版本兼容性问题)
- 关键点:WebShell需与目标环境JDK版本兼容
4. 经验总结与技巧
4.1 C/S架构测试要点
-
流量分析:
- 优先检查HTTP/S协议
- 若走TCP协议,需使用Wireshark等工具
- 加密流量考虑逆向分析客户端解密逻辑
-
服务器端突破:
- 端口扫描发现管理界面是重要突破口
- 中间件默认凭证尝试
- 版本匹配是关键(JDK、中间件规范等)
4.2 WebSphere特定技巧
- WebSphere 6.x使用web-app_2_3.dtd规范
- war包结构必须符合规范:
WebRoot/ ├── WEB-INF/ │ ├── web.xml (2.3版本) │ └── classes/ └── shell.jsp - 安装后必须"保存到主配置"才能使更改生效
4.3 排错指南
-
war包部署失败:
- 检查WebSphere日志获取详细错误
- 尝试最简war包排除复杂因素
- 确认磁盘空间和权限
-
WebShell连接失败:
- 确认jsp页面可正常访问
- 检查防火墙规则
- 尝试不同WebShell工具
5. 扩展思考
-
防御措施:
- 禁用WebSphere默认管理账户
- 限制管理界面访问IP
- 定期更新中间件版本
-
自动化工具:
- 可编写脚本自动检测WebSphere默认配置
- 开发适配低版本JDK的WebShell生成工具
-
横向移动:
- 通过WebSphere获取服务器权限后
- 收集域凭证尝试横向移动
- 检查数据库连接配置等敏感信息
本教学文档完整还原了从客户端测试转向服务器渗透的全过程,重点突出了版本兼容性和规范符合性的重要性,为类似环境的安全测试提供了可复用的方法论。