jboss漏洞
jboss
简介
这个也是javaee的中间件
一个基于J2EE的开放源代码的应用服务器
JBoss 是一个管理 EJB 的容器和服务器,但 JBoss 核心服务不包括支持 servlet/JSP 的WEB容 器,一般与Tomcat或Jetty绑定使用。Jboss是 Java EE 应用服务器(就像Apache是web服务器一 样),专门用来运行Java EE程序的。
历史漏洞
未授权访问漏洞
JMX Console未授权访问Getshell
Administration Console 弱口令
Getshell CVE-2007-1036 – JMX Console HtmlAdaptor Getshell
CVE-2010-0738 – JMX控制台安全验证绕过漏洞
反序列化
CVE-2013-4810 – JBoss EJBInvokerServlet 反序列化漏洞
CVE-2015-7501 – JBoss JMXInvokerServlet 反序列化漏洞
CVE-2017-7504 – JBoss 4.x JBossMQ JMS 反序列化漏洞
CVE-2017-12149 – JBosS AS 6.X 反序列化漏洞历史漏洞发现
JMX Console 未授权访问漏洞
这个看起来很复杂,但是原理很简单
漏洞简介
Jboss的webUI界面 http://ip:port/jmx-console 未授权访问(或默认密码 admin/admin),可导 致JBoss的部署管理的信息泄露,攻击者也可以直接上传木马获取 webshell
这个是未授权访问,但是我们需要进一步利用它
漏洞复现
前面进入console之后,我们尝试上传我们的webshell
这里的webshell肯定还是war包
点进去,找到一个addurl() string的函数
这个地方填写我们的war包,但是这个是url,所以攻击机需要添加一个http.server
使用冰蝎创建jsp然后上传到攻击机
然后开启服务
再将url填入进去
填完了,让其执行
出现了问题,应该是url出问题了
稍微等一下
发现已经存在就同意更改
尝试访问
冰蝎连接
上传不上可以尝试将war改一个名字
Jboss弱口令Getshell
JBoss Administration Console存在默认账号密码admin/admin,如果Administration Console可以登录,就可以在后台部署war包getshell
常见弱口令:
admin/admin
jboss/admin
admin/jboss
admin/123456
admin/password
访问8080端口点击Administration Console,使用admin/admin进入后台,选择war包进行上传
漏洞利用
访问 http://xx.xx.xx.xx/admin-console
或者
可以尝试爆破,或者多尝试几个弱密码
进入之后,点击war
CVE-2007-1036
JMX Console HtmlAdaptor Getshell
漏洞简介
此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机 制,导致攻击者可以进入到JMX控制台,并在其中执行任何功能。该漏洞利用的是后台中 jboss.admin -> DeploymentFileRepository -> store()方法,通过向四个参数传入信息,达到上传shell的目的,其中p1传入的是部署的war包名字,p2传入的是上传的文件的文件名,p3传入 的是上传文件的文件格式,p4传入的是上传文件中的内容。通过控制这四个参数即可上传shell,控制 整台服务器。但是通过实验发现,p2和p3可以进行文件的拼接,例如p2=she,p3=ll.jsp。这个时候服务器还是会进行拼接,将shell.jsp传入到指定路径下。
影响版本
jboss4.x以下
漏洞利用
利用后台中jboss.admin -> DeploymentFileRepository -> store()方法
直接上payload
找stor()
将payload对应的填进去
1 |
|
之后同意更改
然后访问http://xx.xx.xx.xx/job1/job1.jsp
CVE-2010-0738
JMX Console安全验证绕过
漏洞简介
利用原理与CVE-2007-1036相同,只不过利用HEAD请求方法绕过GET和POST请求的限制
影响版本
jboss4.2.0-jboss4.3.0
漏洞利用
POC
1 |
|
主需要修改head 和后面的参数

之后访问指定的路径就可以了
CVE-2015-7501
JMXInvokerServlet 反序列化漏洞
漏洞简介
CVE-2015-7501,JBoss 在/invoker/JMXInvokerServlet 请求中读取了用户传入的对象,然后我们可以利用 Apache Commons Collections 中的 Gadget 执行任意代码 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器 中没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,JBoss在/invoker/JMXInvokerServlet 请求中读取了用户传入的对象,从而导致了漏洞。
漏洞发现
访问 http://ip:port/invoker/JMXInvokerServlet,返回如下的response,说明接口是开放的,此接口存在漏洞
如果是下载文件就说明漏洞存在
漏洞利用
下载反序列化生成的工具
1 |
|
1 |
|
ip 是攻击机的IP
port 是nc监听的端口
然后监听
然后
1 |
|
正常反弹
CVE-2017-7504
JBossMQ JMS 反序列化漏洞
漏洞简介
JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的 HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏 洞执行任意代码。
CVE-2017-7504漏洞与CVE-2015-7501的漏洞原理相似,只是利用的路径稍微出现了变化,CVE- 2017-7504出现在/jbossmq-httpil/HTTPServerILServlet路径下。JBoss AS 4.x及之前版本中, JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java⽂件存在
反序列化漏洞,远程攻击者可借助特制的序列化数据利⽤该漏洞执⾏任意代码
影响版本
JBoss AS 4.x及之前版本
漏洞发现
访问http://47.104.255.11:60080/jbossmq-httpil/HTTPServerILServlet,若出现如下界面则存在漏洞
漏洞利用
和上面一样的,只是接口不一样
1 |
|
使用nc打开端口监听,再用之前生成的.ser文件,通过POST二进制数据上去,使用nc监听端口,即 可拿到shell
1 |
|
CVE-2017-12149
Jboss Application Server反序列化命令执行漏洞
漏洞简介
JBOSSApplication Server反序列化命令执行漏洞(CVE-2017-12149),远程攻击者利用漏洞可在未 经任何身份验证的服务器主机上执行任意代码。漏洞危害程度为高危(High)。
该漏洞为 Java反序列化错误类型,存在于 Jboss的 HttpInvoker组件中的 ReadOnlyAccessFilter过滤器中没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反 序列化,从而导致了漏洞。
首先需要了解Java的序列化和反序列化。Java序列化就是指把Java对象转换为字节序列的过程,在传 递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在 本地文件中。Java反序列化就是指把字节序列恢复为Java对象的过程,根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。
影响版本
JBoss 5.x - 6.x
漏洞发现
访问http://ip:port/invoker/readonly,若返回如下显示状态码为500的报错界面,则证明漏洞存在
这个比较特殊
漏洞利用
1 |
|
然后反弹
1 |
|