ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ShiroExp:从 Shiro 漏洞检测到内存马注入的完整实战路线

ShiroExp:从 Shiro 漏洞检测到内存马注入的完整实战路线 ShiroExp从 Shiro 漏洞检测到内存马注入的完整实战路线【免费下载链接】ShiroExpshiro综合利用工具项目地址: https://gitcode.com/gh_mirrors/sh/ShiroExpShiroExp 是一款图形化的 Shiro 漏洞检测与反序列化利用工具把 rememberMe 特征识别、AES 密钥爆破、多条利用链命令执行和内存马注入整合在同一个界面里适合渗透测试与安全自查场景。它解决什么问题测试一个 Java 站点时如果响应里出现rememberMedeleteMe这类 cookie通常意味着后端在用 Apache Shiro 做认证。接下来的验证过程比较繁琐先确认 Shiro 版本对应的加密模式再用候选密钥逐个 AES 加密SimplePrincipalCollection对象发过去观察 cookie 回显判断哪个密钥有效一旦站点把 cookie 名改掉了、或者目标根本没有回显手工流程就更难推进。ShiroExp 把这条流程固化成几个按钮填入目标 URL 和 cookie 特征跑内置密钥字典完成爆破拿到密钥后直接选利用链下发命令或在确认命令可执行后注入内存马。对使用 AES-GCM 算法的较新版本 Shiro勾选 GCM 选项即可继续测试。上图是工具主界面左侧输入目标地址与 rememberMe 特征右侧完成密钥爆破、利用链选择和 payload 生成。ShiroExp 部署与启动整个过程分四步按顺序执行即可跑通。第一步准备环境。安装 JDK 8 及以上版本和 Maven。项目按 Java 8 编译界面依赖 JavaFX 11JDK 8 搭配独立的 JavaFX 运行环境或 OpenJDK 自带版本均可。第二步克隆并构建。git clone https://gitcode.com/gh_mirrors/sh/ShiroExp cd ShiroExp mvn clean package第三步启动程序。构建完成后在target目录生成带全部依赖的 fat jarjava -jar target/ShiroExp-1.3-all.jar第四步完成首次检测。打开界面后先手工确认目标是 Shiro 站点再填入目标 URL、选择 GET/POST 并填写 rememberMe 特征被改名的站点要改成实际值然后发起密钥爆破。日志区会实时打印每个密钥的测试结果。核心能力拆解密钥爆破回显与 DNSLOG 两种模式工具内置主流密钥字典爆破前先读取程序当前目录下的shirokeys.txt没有该文件时才回落到包内自带的ShiroKeys.txt因此自定义字典只需建一个纯文本文件、每行一个密钥即可。检测模式上有两种路径SimplePrincipalCollection 检测加密后发送并比对回显适用于大多数有响应的站点是默认选择。DNSLOG 检测借助 dnslog.cn 的解析记录判断专治 rememberMe 无回显的站点。加密模式可选 AES-CBC 与 AES-GCM后者对应 Shiro 1.4 之后切换的算法遇到 CBC 全部失败的 1.4 站点可以切换重试。上图展示了一次完整的爆破过程多数密钥逐一失败命中有效密钥后日志高亮提示。反序列化利用链与命令执行拿到密钥后进入命令执行环节。工具集成的利用链覆盖常见目标环境CommonsCollections 系列CC1 到 CC7、CCK1 到 CCK4 等变体CommonsBeanutils 系列CB1 及 1.8.3/1.9.2 的 NOCC 版本两种 Tomcat 通用回显TomcatEcho 系列在命令无回显时借道 Tomcat 的共享存储把结果读出来shortPayload 子模块基于 ASM 做类压缩生成更小的 payload降低被 WAF 拦截的概率。实操上如果某条链执行无回显优先更换利用链再试而不是反复重试同一条链JRMP 与 payload 导出功能可以配合手工验证。上图是从特征检测到执行whoami拿到系统身份信息的完整链路。内存马注入冰蝎、Godzilla 与 Tomcat 专用命令执行验证通过后可以直接注入内存马实现持续访问无需落盘 webshell。可选三种方式冰蝎BehinderFilter 马注入后由冰蝎客户端按密码连接连接密码可自定义Godzilla Filter 马面向 Godzilla 客户端插件体系更丰富Tomcat 专用注入TomcatInject针对 Tomcat 容器做了适配。一个前置条件要注意注入前必须先确认所选利用链能在目标上正常执行命令否则马打进去也无法通信。上图是注入冰蝎内存马后用冰蝎客户端连上目标并执行命令的实战效果。实战路径如果你是渗透测试人员按验证 → 利用的节奏走先确认 Shiro 特征用内置字典跑一轮 CBC 爆破没命中就切 GCM 或改用 DNSLOG 模式。拿到密钥后先跑一条最简单的 CC 链执行whoami确认 RCE 成立再决定是否需要权限维持。如果你在做红队打点重心放在隐蔽性上。确认命令可执行后注入 Filter 类内存马并设置强密码之后通过冰蝎或 Godzilla 客户端长连操作避免反复使用反序列化通道暴露痕迹。如果你负责企业安全自查把 ShiroExp 纳入定期扫描流程即可。批量测试时注意控制并发与超时避免对线上服务造成压力发现漏洞后第一时间记录密钥、Shiro 版本和利用链推动业务方更换密钥并升级到安全版本。进阶与避坑特征被改名的站点界面上要手工填写实际 cookie 名默认rememberMe匹配不到时先检查这一点。配置自定义密钥字典在程序当前目录创建shirokeys.txt每行一个密钥UTF-8 编码。文件不存在时工具静默回落到内置字典不会报错排查为什么没用我的字典时先确认文件位置。无回显场景命令执行看不到输出时依次尝试更换利用链、Tomcat 通用回显、DNSLOG 验证比盲目重试更有效。代理功能有已知 bug作者明确不打算修复走代理的网络环境请自行在系统层处理。suid 不一致问题部分目标因类加载器差异导致 payload 的 suid 对不上工具提供了 SuidClassLoader 与 AlterKey 系列工具做修正遇到 suid 相关报错可以走这条路。WAF 拦截优先使用 shortPayload 生成的压缩 payload遇到分段拦截时可开启 payload 输出功能拿到明文手工拆分再发送。资源与日志长任务结束后关闭程序窗口会一并终止子线程定期清理日志输出避免占用磁盘。源码导航想读懂或二次开发这套工具可以从下面几块入手cn/safe6/core/ —— 请求与调度的骨架。BurstJob是一个可复用的爆破任务单元负责单个密钥的加密与比对Request/Response封装 HTTP 交互细节SuidClassLoader处理自定义类加载。cn/safe6/payload/ —— 所有打点逻辑的存放地。根目录是 CC、CB 等利用链入口类memshell/下是冰蝎、Godzilla、Tomcat 三种内存马实现shortPayload/用 ASM 做 payload 瘦身tool/提供密钥修改相关能力。cn/safe6/util/ —— 工具箱。ShiroTool与PayloadEncryptTool负责 AES-CBC/GCM 加密BCELEncode处理 BCEL 编码HttpTool封装了各种请求发送与报文解析。cn/safe6/controller/ —— JavaFX 事件层界面上每个按钮对应一个方法从burstKey爆破到injectShell注马都能在这里找到入口。合规提示ShiroExp 仅应在取得明确授权的目标上使用测试前确认授权范围并遵守当地法律法规。任何未授权的检测与利用行为都可能构成入侵后果由使用者自行承担。发现漏洞后及时通报并协助修复比保存成果更有价值。写在最后ShiroExp 的价值在于把 Shiro 测试中最耗时的三段——密钥确认、链路选择、马的注入——压缩成界面操作让你把精力放在判断目标环境上而不是反复手搓加密参数。熟悉它的利用链结构后再遇到 WAF、改名、GCM 这类变体也能顺着源码快速调整出适配方案。【免费下载链接】ShiroExpshiro综合利用工具项目地址: https://gitcode.com/gh_mirrors/sh/ShiroExp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表