Releases: SummerSec/ShiroAttack2
ShiroAttack2 5.0.1
ShiroAttack2 5.0.1
更新内容
本版本为 5.0.0 的维护更新,侧重 命令执行与请求头合并、CommonsBeanutils 1.8.3 链兼容性,以及若干 UI / 集成侧调整。
命令执行与 HTTP
合并请求头时改为:先应用全局头,再以本次请求头覆盖(Cookie 仍与已有值合并),避免全局里的 Authorization 覆盖命令执行请求中的 Basic 命令。
bodyHttpRequest 在 GET 且空 body 时使用 flattenHutoolResponse 汇总响应头与正文,与链探测一致,便于解析正文中的 $$$...$$$。
修正 bodyHttpRequest 中 | 为 || 的逻辑条件。
CommonsBeanutils 1.8.3
多个 *_183 链中 BeanComparator 的 serialVersionUID 与目标运行时 commons-beanutils 1.8.3 对齐,减少 InvalidClassException。
其它
MainController、gui.fxml、jEG 回显相关类、.gitignore 等与 5.0 分支一致的增量更新。
升级说明
若曾在全局请求头中配置 Authorization,在 5.0.0 下可能覆盖命令执行专用头;5.0.1 已改为 单次请求头优先。
运行环境与产物形态与 5.0.0 相同,推荐下载 Release 中的 bundle.zip。
- release: 5.0.1 (11bcc6c)
本版本 Release 使用 Azul Zulu 8 + JavaFX 构建。
与当前本地开发环境保持一致,便于复现和排查。
下载说明
| 文件名 | 说明 |
|---|---|
*-zulu-8-jfx.jar |
Azul Zulu 8 + JavaFX 单文件运行版本 |
*-zulu-8-jfx-bundle.zip |
Azul Zulu 8 + JavaFX 完整压缩包,包含 jar、lib/、data/ |
运行方法
java -jar shiro_attack-<version>-<jdk>.jar推荐优先下载
bundle.zip,解压后直接运行
若需自行构建,请确保仓库内libs/jEG-core-1.0.0.jar与libs/jmg-sdk-1.0.9.jar可用
ShiroAttack2 v5.0.0-r4
ShiroAttack2 5.0.0
本版本围绕 UI 体验、第三方生成器集成、Shiro Key 修改能力、日志排障能力做了较大幅度增强,并补充了英文文档与发布流程支持。
主要更新
- 重构主界面与功能区布局,优化参数区、输出区、底部信息区显示效果
- 新增中英文界面切换,主要菜单、标签页、按钮、提示文案支持运行时切换
- 新增应用窗口 icon、GitHub 链接、默认目标地址与更合理的窗口尺寸
- 优化 Header / POST Body 输入方式,改为长文本模式并默认按用户输入直接覆盖发送
- 输出框统一支持长文本查看,适合 rememberMe、Base64、响应正文等场景
Shiro Key 相关增强
- 新增“修改 Shiro Key”独立功能页
- 支持多种 rememberMeManager 定位与修改变体:
filterConfigs -> shiroFilterFactoryBeangetFilterRegistration -> shiroFilterFactoryBeanfilterConfigs -> 常见 Shiro 名依次匹配getFilterRegistration -> 常见 Shiro 名依次匹配filterConfigs -> 包含 shiro 的名称扫描
- 新增高风险模式:
高风险: 全候选 rememberMeManager 扫描
- 修改 Key 后自动进行新旧 Key 验证:
- 新 Key 可用 / 旧 Key 失效
- 新 Key 可用但旧 Key 仍可用
- 新 Key 验证失败
- 支持修改 Key 历史记录、清空历史、结果分级提示
第三方生成器集成
Echo Generator(jEG)
- 集成
java-echo-generator - 支持来源切换:
传统模式jEG
- 支持更多服务端、模式、格式组合
- 未提供 Shiro Key 时,允许优先生成第三方原始结果用于调试
- 输出增加参数组合信息与失败原因展示
Memshell Generator(jMG)
- 集成
java-memshell-generator - 支持来源切换:
传统模式jMG
- 扩展了工具、服务端、马类型、格式等下拉选项
- 增强对不同 jMG 版本 payload 提取方式的兼容
- 失败时显示第三方原始错误,并明确回退状态
- 针对
SERVER_SPRING_MVC增加默认马类型联动与风险提示
爆破与利用体验优化
- “爆破利用链及回显”改为后台任务执行
- 新增利用链爆破进度条与停止按钮
- 每组组合实时输出进度与测试结果,不再长时间无反馈
- “爆破密钥”同样支持后台任务、进度条、停止按钮
- 修复多个 JavaFX 线程更新问题,避免界面卡死或假死
- 未找到构造链时不再强制弹窗,仅在日志区输出结果
命令执行与输出改进
- 区分命令输入与输出内容展示:
[command][result][error]
- 修复命令执行时对非标准返回格式的误判
- 优化编码处理,避免正常输出被误识别为失败
- 日志文件改为 UTF-8 写入
日志与排障
- 新增文件日志能力
- 日志目录:
logs/
- 每次运行按时间戳生成独立日志文件,便于排查:
shiro_attack-yyyyMMdd-HHmmss.log
- 关键功能入口、异常栈、任务失败、代理设置等均写入日志文件
文档与发布流程
- 新增英文 README:
README_EN.md
- 新增使用文档:
docs/USAGE.md
- 更新 README 内容与截图
- 优化 GitHub Release 工作流,支持自动生成 changelog
兼容性说明
- 推荐继续使用 Java 8 / JavaFX 8 环境运行
- 修改 Shiro Key 的“高风险模式”会尝试覆盖更多候选对象,但不等于一定覆盖集群所有节点
- 对于多 rememberMeManager / 多节点环境,建议结合新旧 Key 自动验证结果判断是否完全生效
版本说明
- 版本号更新为:
5.0.0 - 主产物:
shiro_attack-5.0.0-all.jar
修复低版本jdk不兼容的问题
修复自定义请求bug,支持复杂请求头
fix bug
4.5.4
4.5.3
4.5.3 不在采用加载lib的方式去处理不同cb版本的问题,而是采用suuid字段修改的方式。
4.5.3 版本修改了冰蝎内存马的问题,参考 rebeyond/Behinder#187 和https://github.com/Y4er/ysoserial/blob/main/src/main/java/ysoserial/payloads/templates/SpringInterceptorTemplate.java
4.5.2tomcat 回显执行命令修复版本
修复注入内存马时出现sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@1a1bc158 问题
去除掉特征
去掉文章中https://xz.aliyun.com/t/10746特征
- 新版本的判断方式,是在返回包添加了host头
- 新版本注入内存马dy改成user=
- 优化了发包请求
直接替换jar就行,其他文件请下载老版本。
: )之前的想改特征来着,忘记了
4.5.1
1、增加通用的过waf方式,默认没有开启
com/summersec/attack/deser/frame/Shiro.java:47
2、增加30个user agent随机使用
com/summersec/attack/utils/UserAgentUtil.java
com/summersec/attack/utils/HttpUtil.java:83
改变所有302为不跟随
3、修改密钥确认,减少误报
com/summersec/attack/core/AttackService.java:290
4、增加多个shiro时的爆破方式和“检测当前密钥“
com.summersec.attack.core.AttackService#keyTestTask2 、com/summersec/attack/core/AttackService.java:255
5. 内存马模块增加AddDllfliter内存马
主要是上传dll自动加载
感谢@whami-root 提交pr