利用Struts2漏洞突破360与云锁防护
字数 1351 2025-08-18 11:36:57
Struts2漏洞利用突破360与云锁防护技术分析
漏洞背景
本文分析的是利用Struts2框架漏洞突破服务器上安装的360安全卫士和云锁防护系统的技术过程。Struts2是一个基于MVC设计模式的Web应用框架,历史上曾多次出现远程代码执行漏洞。
环境准备
- 目标服务器环境:
- 操作系统:Windows Server 2003
- 防护软件:360安全卫士 + 云锁防护
- Web框架:存在漏洞的Struts2版本
攻击步骤详解
一、初始漏洞利用
-
发现Struts2漏洞:
- 使用自动化工具检测并确认Struts2远程代码执行漏洞存在
- 执行基础命令测试:
whoami - 结果显示具有
administrator权限
-
绕过命令执行限制:
- 直接执行
dir命令失败 - 使用
cmd /c前缀突破限制:cmd /c dir - 查看盘符内容时遇到显示问题,通过添加额外反斜杠解决:
cmd /c dir \
- 直接执行
二、文件上传尝试
-
直接上传木马失败:
- 服务器配置限制导致无法直接写入文件
- 发现服务器允许从外部下载文件
-
远程下载文件:
- 尝试通过命令下载文件到服务器
- 下载成功但无法在常规目录找到文件(可能被安全软件隔离)
三、绕过安全防护
-
分析防护措施:
- 确认服务器运行360安全卫士和云锁防护
- 检查进程列表发现
csc.exe(微软.NET Framework的C#编译器)
-
利用csc.exe编译下载代码:
- 编写C#代码实现文件下载功能
- 使用csc.exe编译生成可执行文件
- 执行编译后的程序下载TeamViewer远程控制软件
-
获取远程控制权限:
- 下载TeamViewer软件和配套工具(用于获取连接信息)
- 运行TeamViewer后获取连接ID和密码
- 尝试连接但遇到黑屏限制
四、凭证获取与最终控制
-
获取系统哈希:
- 使用工具dump系统密码哈希值
- 将哈希文件下载到本地
-
使用mimikatz破解:
- 在Windows 2003虚拟机中运行mimikatz
- 加载获取的哈希文件进行破解
- 成功获取管理员用户名和明文密码
-
远程登录系统:
- 使用获取的凭证通过RDP或其他方式登录
- 获得系统完全控制权限
技术要点总结
-
Struts2漏洞利用:
- 选择正确的漏洞利用工具和payload
- 使用
cmd /c前缀绕过命令执行限制 - 处理特殊字符和路径问题(如额外反斜杠)
-
绕过安全防护:
- 利用系统已有工具(csc.exe)编译恶意代码
- 避免直接对抗安全软件,采用间接方法
- 使用合法软件(TeamViewer)作为持久化手段
-
凭证获取技术:
- 系统哈希dump方法
- mimikatz在不同系统版本上的使用技巧
- 哈希传递攻击的可能性
防御建议
-
针对Struts2漏洞:
- 及时升级Struts2到最新安全版本
- 限制框架的动态方法调用
- 实施输入过滤和输出编码
-
增强系统防护:
- 配置安全软件对csc.exe等系统工具的行为监控
- 限制从互联网下载可执行文件
- 对远程控制软件实施白名单管理
-
凭证安全:
- 使用强密码策略
- 定期更换重要系统密码
- 启用多因素认证
法律与道德声明
本文所述技术仅用于安全研究和防御目的。未经授权对他人系统进行测试或攻击是违法行为,可能面临法律后果。安全研究人员应遵循负责任的漏洞披露原则。