ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

ShiroExp 使用教程:从 Shiro 特征检测到内存马注入的 4 步流程

ShiroExp 使用教程:从 Shiro 特征检测到内存马注入的 4 步流程 ShiroExp 使用教程从 Shiro 特征检测到内存马注入的 4 步流程【免费下载链接】ShiroExpshiro综合利用工具项目地址: https://gitcode.com/gh_mirrors/sh/ShiroExpShiroExp 是一款基于 JavaFX 的图形化工具覆盖 Shiro 漏洞检测、AES 密钥爆破、命令执行和内存马注入这几个环节。它把抓包改 cookie、手工加密 payload这类重复动作收敛到界面上适合有基础命令行经验、需要排查或验证 Shiro 应用的安全工程师和渗透测试人员。没有它时Shiro 检测是怎么做的手工抓包逐个试 key传统做法是先用 Burp 访问登录页看响应头里有没有rememberMe这个 cookie确认后拿一个 Shiro 默认密钥把SimplePrincipalCollection之类的探测 payload 做 AES 加密替换进 cookie 再发一遍。整个过程要反复复制粘贴密文字典里几十个 key 挨个试日志里全是发出去了、没反应。ShiroExp 把这个循环自动化你只需要填 URL 和特征值剩下的发包、判定、报结果都由程序完成。无回显站点更难办有些站点在 rememberMe 校验失败时不会重设 cookie、响应长度也不变长度比对法直接失效。手工做法是自己在 dnslog 平台注册一个域名把域名拼进 URLDNS payload 逐个 key 试再回平台看解析记录。工具里内置了同样的检测方式见下文省去自己搭回显平台的步骤。 快速上手环境要求Java 8 及以上、Maven。构建产物是一个 fat jar主类为cn.safe6.Maingit clone https://gitcode.com/gh_mirrors/sh/ShiroExp cd ShiroExp mvn clean package java -jar target/ShiroExp-1.3-all.jar启动后就是上图中那一屏上方填 URL 和请求方法中间是密钥、检测方式、中间件、利用链、内存马选项下方是日志区。没有额外配置拿到 jar 就能跑。按使用动线走一遍检测 → 爆破 → 执行 → 注入第一步确认是否使用 Shiro在 URL 框填入登录页地址支持 GET/POST特征一栏填rememberMe——如果目标站把 cookie 名改过了这里要改成实际值。点快速检测日志区会输出发现shiro特征或否定结果。注意勾选输出 payload可以把实际发出的密文打出来方便手工复核或抓包比对。第二步Shiro 密钥爆破密钥来源有两级程序目录下存在shirokeys.txt时优先读它每行一个 key不存在则回退到内置的主流默认 key 字典。自定义字典只需kPHbIxk5D2deZiXxcaaA 8BvVhmFLUs0kTA3Kprsdag检测方式二选一SimplePrincipalCollection默认原理是发一个用错误 key 加密的 rememberMe正确 key 命中后响应长度或 Set-Cookie 行为会变化以此判定。适合绝大多数有回显场景。dnslog 检测把 dnslog.cn 的一次性域名拼进 URLDNS 链逐 key 发包回查解析记录里是否出现该 key。用于无回显 rememberMe 的场景。Shiro 1.4.x 之后默认启用 AES-GCM界面上有 GCM 复选框遇到旧方式全部报秘钥错误时建议勾选后重试。第三步命令执行与回显拿到 key 后填进密钥栏选中间件Tomcat / Tomcat7和回显方式TomcatEcho、TomcatEcho1、TomcatEchoAll 三种利用链下拉框里有 CommonsCollectionsK1–K4、CommonsBeanutils1 等常用链命令框输入whoami点执行命令。命令执行无回显时的处理顺序先换一条利用链再试不同链对目标 classpath 依赖不同换链常能解决再考虑是否选对了中间件版本仍不行就退回第一步检查特征值是否填错。第四步内存马注入前提当前选择的利用链能正常执行命令。选内存马类型BehinderFilter、填注入路径如/favicon.ico和连接密码点注入内存。注入只走 POST——源码注释说明 GET 参数过长会报 400。成功后日志给出连接地址用对应客户端如冰蝎连接即可接管。 代码地图想读源码时看这三处就够了cn.safe6.coreHTTP 收发、BurstJob爆破任务调度、AES 加密封装检测逻辑的判定条件都在这。cn.safe6.payload各利用链的实现其中shortPayload/子目录用 ASM 把 CC 链压缩得更小memshell/是内存马注入的载荷。cn.safe6.utilShiroTool、PayloadEncryptTool这类加解密工具理解默认 key 从哪来、payload 怎么拼可从这里入手。 实战调优清单特征值不对日志一直提示未发现特征时先确认 cookie 名是否被改改特征栏而不是 URL。报 header too largecookie 过长超过约 8k会触发清理多余 cookie 后重发。WAF 拦截项目把分段传输列为待办当前未实现遇到拦截时勾选输出 payload手工发包更稳。代理功能有 bug作者在 README 中明确说明不修需要代理时请走系统级代理。内存马注入失败先单独验证执行命令是否通通不了说明利用链不匹配目标环境换链后再注入。线程与超时爆破是单任务串行逐 key 进行日志每 200ms 刷新一次字典大时耐心等完即可不建议对生产目标并发轰炸。写在最后请只在已获得书面授权的环境中使用本工具并遵守当地法律法规测试数据及时清理发现的风险按流程上报。ShiroExp 的价值就是把 Shiro 漏洞检测从手工拼包变成了界面上点四下的事。【免费下载链接】ShiroExpshiro综合利用工具项目地址: https://gitcode.com/gh_mirrors/sh/ShiroExp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进