通过vulhub靶场环境外加docker部署环境:https://github.com/vulhub/vulhub,使用这种方法搭建需要存在docker环境和docker-compose环境。
下载vulhub靶场之后通过docker-compose up -d读取yml文件dump拉取docker环境,可以通过docker exec -it 镜像ID /bin/bash进入docker容器。
1、jboss的相关配置信息
账号密码信息:/opt/jboss/jboss4/server/default/conf/props/jmx-console-users.properties
相关配置信息路径:/opt/jboss/jboss4/server/default/deploy/jmx-console.war/WEB-INF
0x02 漏洞信息与利用
1、JMX Console未授权访问:由于JBoss中/jmx/HtmlAdaptor路径对外开放,未进行身份验证或者使用了弱口令进行身份验证,导致攻击者可以进入jmx控制台,并在其中执行任何功能。
影响版本:jboss4.x以下
漏洞利用:Jmx存在弱口令或者未授权访问。
通过弱口令admin/admin登录jmx控制台,deployment项目:jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment:type=DeploymentScanner,flavor=URL
通过addURL()部署一个远程的war包到本地:
首先需要在vps上放置一个木马文件,并且打包成war包。然后添加部署:
部署之后:
查看是否部署成功:在jboss.web.deployment选项查看:
部署成功,可执行命令:
不过部署的时候遇到问题,有时候可以成功,有时候失败404。
2、CVE-2007-1036:漏洞原因:还是利用jmx控制台未授权访问或者弱口令
影响版本:jboss4.x以下
漏洞利用:
Invoke之后会将p1参数创建war包,把p2和p3两个参数加起来当作文件名,p4是文件写入的内容。
部署成功:命令需要经过编码。
3、CVE-2010-0738:高于4.x的jboss禁止上述两种利用方式,但是可以通过修改HTTP请求方式进行绕过
5、CVE-2015-7501:漏洞影响:JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java⽂件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利⽤该漏洞执⾏任意代码。
影响版本:JBoss AS 4.x及之前版本
漏洞利用:路径:/jbossmq-httpil/HTTPServerILServlet
先找个工具试试:
原始的利用方法:
这两个版本的jboss不再通过jmx-cosole进行war包的部署,而且去除web-console,添加admin-console,可以通过admin-console进行war包的部署。
配置文件路径:jboss/server/default/conf/props/jmx-console-users.properties
同时需要注意jmx-console和admin-console的配置文件在jboss/common文件夹下。
6、控制台弱口令或未授权访问:根据jboss5和6的新特性需要通过admin-console进行war包的部署。首先进入admin-console,然后找到Web Application选项新增一个war包。
War包的名字可能会造成部署出错,之前用的1.war然后显示部署错误,改成test.war部署成功:
访问shell:
漏洞描述:该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
该漏洞出现在**/invoker/readonly**请求中,服务器将用户提交的POST内容进行了Java反序列化,导致传入的携带恶意代码的序列化数据执行。
影响版本:Jboss5.x/Jboss6.x
漏洞路径:/invoker/readonly报错500
使用漏洞工具检测:
使用joaomatosf进行检测,确实存在漏洞。
7、JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
漏洞描述:这是经典的 JBoss 反序列化漏洞,
JBoss在 /invoker/JMXInvokerServlet 请求中读取了用户传入的对象,然后我们可以利用 Apache Commons Collections 中的 Gadget 执行任意代码。
由于JBoss中invoker/JMXInvokerServlet路径对外开放,JBoss的jmx组件⽀持Java反序列化
影响版本:jboss 6.x
8、EJBInvokerServlet CVE-2013-4810 反序列化漏洞
此漏洞和CVE-2015-7501漏洞原理相同,两者的区别就在于两个漏洞选择的进行其中JMXInvokerServlet和EJBInvokerServlet利用的是org.jboss.invocation.MarshalledValue进行的反序列化操作,而web-console/Invoker利用的是org.jboss.console.remote.RemoteMBeanInvocation进行反序列化并上传构造的文件。