mac下shiro550反序列化测试环境搭建(windows同理)

本文内容仅用于学习研究,禁止用于非法用途。

一、安装java1.8环境

一定要是java1.8;如果你安装的是默认的最新的16或17版本的java会导致用于测试的某些java程序不能运行!如果你的电脑存在2种或更多版本的java,可以使用指定版本java完整路径的命令来启动java程序。

/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java -version
指定版本java路径
默认的没有特指路径显示的java版本

二、安装tomcat环境

自行到官网(https://tomcat.apache.org/download-90.cgi)下载对应版本并进行安装。我的电脑安装完路径在“/Users/用户名/Library/tomcat9.0.50/bin”

开始	sudo sh ./startup.sh
结束	sudo sh ./shutdown.sh

三、下载测试用的shiro环境

测试用的war包可以去这个地址下载https://github.com/jas502n/SHIRO-550;下载里面的samples-web-1.2.4.war文件即可。为什么建议下war包呢,因为你如果去下源码可能编译等存在问题,直接下载war包上传到tomcat的webapps目录,重启tomcat后会自动解压。

启动tomcat后可以通过地址http://localhost:8080/shiro/ 进行访问。

四、使用shiro反序列化漏洞综合利用工具进行漏洞检测

如果是手动根据原理来进行检测测试的话是很麻烦的,可以使用开源的检测软件。

https://github.com/fa1c0n1/shiro_attack

基本上傻瓜化操作,到这一步改检测工具也提供了内存马注入(测试时发现,内存马只要重启tomcat就会失效,所以在修补此漏洞后最好再重启下服务器,另外一旦挂马建议是重装服务器系统,因为你不知道对方在有shell权限期间都在服务器上做了什么事)

五、注入冰蝎内存马并进行连接

本次实验工具注入的冰蝎版本比较老了,现在的waf防火墙基本都能识别就算挂马成功也会被拦截。实验中需要使用冰蝎2.0.1版本才能连接,如果使用冰蝎3.0及以上版本会显示一直连接中。

一定要使用1.8版本的java来运行冰蝎2.0.1;在mac下因为我安装了java1.8和16两个版本因此要制定java命令版本,实测时还是不能运行可能是mac系统版本的问题(我的mac系统11.2,这个冰蝎2.0里面的java类好像高于10.7的mac系统都不行),正常情况下使用下面命令就可以启动冰蝎了: 最前面是1.8版本java的路径,-XstartOnFirstThread参数在mac系统下是需要有的否则报错“***WARNING: Display must be created on main thread due to Cocoa restrictions.” 最后一个参数是要运行的jar包的文件路径可以将jar文件直接拖到终端会自动转为完整路径。

/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java -XstartOnFirstThread  -jar Behinder.jar

下面的截图是我在安装了java1.8的虚拟机中运行的冰蝎2.0.1,虚拟机一开始直接去官网安装的java结果是java17版本不能用,然后又重新下载了1.8版本,通过制定java版本来运行即可!

"C:\Program Files\Java\jre1.8.0_121\bin\java.exe" -jar Behinder.jar

六、如何处理此漏洞

给项目里用到的shiro包进行版本升级,还有项目用到的其他jar包最好定期检查是否有安全更新。

原服务器最好重装系统(重装前一定要先全盘备份或ecs快照,一定要备份!),并重新部署相关环境。

选用waf等web应用防火墙产品。服务器软件及系统保持更新。

如果是纯内部系统,可以考虑将服务部署到局域网环境或通过vpn搭建专属局域网进行访问(仅允许局域网ip进行访问,如果已经被挂了反弹型木马这种方法无效,在无法彻底清除木马的情况下只能重装系统)。

PS:

关于shiro550漏洞的更详细解释,可以参考这篇文章https://my.oschina.net/u/4580734/blog/4363841

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/mac-shiro550-attack/

赞赏

微信赞赏支付宝赞赏

sql语句中use与go的用法
php-curl-postget-json-form
php中odbc方式连接sqlserver数据库