漏洞简介
JBoss Administration Console存在默认账号密码admin/admin,如果Administration Console可以登录,就可以在后台部署war包getshell。
影响版本
- Jboss4.x及其之前的版本 console 管理路径为/jmx-console/和/web-console/,密码存储:/opt/jboss/jboss4/server/default/conf/props/jmx-console-users.properties
- Jboss5.x开始弃用了 web-console ,增加了admin-console,
- Jboss5.x/6.x版本console路径为/jmx-console/和/admin-console/,密码存储:jboss/server/default/conf/props/jmx-console-users.properties
Docker搭建靶场环境
1. docker search testjboss
2. docker pull testjboss/jboss
3. docker-compose up -d
漏洞复现
-
访问靶场地址。
-
点击jboss web console。
-
跳出弹窗,输入账号密码admin/admin成功登录。
-
然后访问jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment:type=DeploymentScanner,flavor=URL,找到void addurl()。
-
远程部署war包。
-
在浏览器访问地址,获得war包路径。
-
然后点击 Invoke 部署。
8. 访问木马的url地址,getshell。
防护建议
1、为Jmx-console、admin-console设置复杂的密码
2、删除JMXInvokerServlet、EJbInvokerServlet