记一次实战渗透(上)
字数 2247 2025-08-05 08:19:51

JBoss JMX Console 漏洞利用与内网渗透实战

1. 漏洞概述

本次实战渗透利用了JBoss应用服务器的JMX Console漏洞,这是一个经典的Java应用服务器安全问题。JBoss的JMX Console默认情况下未进行适当的安全配置,导致攻击者可以远程部署恶意WAR包,获取服务器控制权限。

2. 初始攻击阶段

2.1 目标识别

  • 发现目标系统运行JBoss应用服务器
  • JMX Console界面可直接访问,无认证保护

2.2 漏洞利用步骤

  1. 访问JMX Console:直接通过URL访问JMX Console管理界面
  2. 定位部署功能:找到jboss.deployment部分
  3. 利用addURL方法:使用void addURL()方法进行远程WAR包部署
  4. 自动化工具使用:利用现成的漏洞利用脚本验证漏洞存在性

2.3 获取初始访问

  • 通过漏洞利用脚本成功上传Web Shell
  • 获取反向Shell连接
  • 确认Shell稳定性较差,需尽快升级

3. 后渗透阶段

3.1 初始信息收集

  • 系统检查
    • 检查运行进程(确认无杀毒软件)
    • 查看管理员登录时间
    • 检查网卡配置信息
  • 网络环境确认
    • 确认系统位于域环境中
    • 测试网络连通性(ping测试确认出网)

3.2 权限维持

  • 使用PowerShell进行持久化
  • 派生新会话以进行后续操作

4. 内网信息收集

4.1 本机信息

  • 获取系统哈希:使用工具获取本地账户哈希
  • 确认域信息:识别当前主机所属域
  • 定位域控制器
    • 通过DNS查询确定域控IP
    • 确认域控主机名后缀

4.2 域环境信息

  • 查询域结构
    • 域数量查询
    • 域内计算机列表
    • 域管账户列表(net group "domain admins" /domain)
    • 域控账户列表(net group "domain controllers" /domain)
  • 用户与主机统计
    • 域内用户数量(约300-400个账户)
    • 域内主机数量(约100台)
  • 域策略检查
    • 检查密码策略(net accounts /domain)
    • 检查域信任关系(nltest /domain_trusts)
    • 检查域组信息(net group /domain)

4.3 网络共享与连接

  • 检查现有IPC连接(net use)
  • 查看共享资源(net share)
  • 检查会话信息(net session)

4.4 SPN扫描

  • 使用setspn工具扫描服务主体名称(SPN)
  • 命令示例:setspn -T 域名 -Q */*
  • 输出处理:
    • 提取主机名:grep "CN=" spn.txt | awk -F "," {'print $1'} | awk -F "=" {'print $2'} > host.txt
  • 发现MSSQL服务(主机28,端口1433)

5. 横向移动技术

5.1 尝试的攻击方法

  1. Pass-the-Hash攻击域控:尝试失败
  2. MS17-010漏洞扫描
    • 批量扫描域内主机
    • 发现零星几台存在漏洞
    • 漏洞主机分布在0、2、3网段
  3. PsExec横向移动
    • 利用net session发现的相同用户名账户
    • 成功传递哈希获取访问权限

5.2 权限提升尝试

  • 检查会话中的高权限令牌
  • 对比域管用户名与现有会话用户名
  • 未发现匹配项,放弃令牌窃取方法

6. 后续计划

  1. 利用MS17-010漏洞主机
    • 准备使用Metasploit框架进行攻击
    • 派生会话给MSF处理
  2. 进一步渗透
    • 针对已获取的主机进行深入信息收集
    • 寻找域管凭证或Kerberos票据
  3. 持久化维持
    • 在关键主机部署后门
    • 建立多条访问通道

7. 防御建议

7.1 针对JBoss漏洞

  • 禁用JMX Console的公开访问
  • 配置强认证机制
  • 及时更新JBoss版本

7.2 内网安全加固

  • 启用LSA保护防止Pass-the-Hash
  • 及时修补MS17-010等已知漏洞
  • 限制PsExec等工具的使用
  • 监控异常SPN查询行为

7.3 检测与响应

  • 监控异常WAR包部署行为
  • 建立哈希传递攻击检测机制
  • 对域内异常会话进行告警

8. 工具与技术总结

工具/技术 用途 命令示例
JMX Console JBoss管理界面 手动访问
setspn SPN扫描 setspn -T 域名 -Q */*
net命令 域信息收集 net group "domain admins" /domain
nltest 域信任查询 nltest /domain_trusts
PsExec 横向移动 哈希传递方式
MS17-010扫描 漏洞检测 使用MSF或其他扫描工具

9. 学习要点

  1. 经典漏洞利用:JMX Console未授权访问是Java应用服务器的常见问题
  2. 内网渗透流程:从外网突破到内网横向的标准流程
  3. 信息收集重要性:全面的信息收集是内网渗透成功的关键
  4. 多种攻击技术组合:根据环境特点灵活选择攻击方法
  5. 规避检测:使用SPN扫描等隐蔽技术减少被发现风险

10. 扩展学习资源

  1. JBoss安全配置指南
  2. Active Directory渗透测试技术
  3. Kerberos协议与攻击技术
  4. 横向移动方法大全
  5. 内网隐蔽通道建立技术
JBoss JMX Console 漏洞利用与内网渗透实战 1. 漏洞概述 本次实战渗透利用了JBoss应用服务器的JMX Console漏洞,这是一个经典的Java应用服务器安全问题。JBoss的JMX Console默认情况下未进行适当的安全配置,导致攻击者可以远程部署恶意WAR包,获取服务器控制权限。 2. 初始攻击阶段 2.1 目标识别 发现目标系统运行JBoss应用服务器 JMX Console界面可直接访问,无认证保护 2.2 漏洞利用步骤 访问JMX Console :直接通过URL访问JMX Console管理界面 定位部署功能 :找到 jboss.deployment 部分 利用addURL方法 :使用 void addURL() 方法进行远程WAR包部署 自动化工具使用 :利用现成的漏洞利用脚本验证漏洞存在性 2.3 获取初始访问 通过漏洞利用脚本成功上传Web Shell 获取反向Shell连接 确认Shell稳定性较差,需尽快升级 3. 后渗透阶段 3.1 初始信息收集 系统检查 : 检查运行进程(确认无杀毒软件) 查看管理员登录时间 检查网卡配置信息 网络环境确认 : 确认系统位于域环境中 测试网络连通性(ping测试确认出网) 3.2 权限维持 使用PowerShell进行持久化 派生新会话以进行后续操作 4. 内网信息收集 4.1 本机信息 获取系统哈希 :使用工具获取本地账户哈希 确认域信息 :识别当前主机所属域 定位域控制器 : 通过DNS查询确定域控IP 确认域控主机名后缀 4.2 域环境信息 查询域结构 : 域数量查询 域内计算机列表 域管账户列表( net group "domain admins" /domain ) 域控账户列表( net group "domain controllers" /domain ) 用户与主机统计 : 域内用户数量(约300-400个账户) 域内主机数量(约100台) 域策略检查 : 检查密码策略( net accounts /domain ) 检查域信任关系( nltest /domain_trusts ) 检查域组信息( net group /domain ) 4.3 网络共享与连接 检查现有IPC连接( net use ) 查看共享资源( net share ) 检查会话信息( net session ) 4.4 SPN扫描 使用 setspn 工具扫描服务主体名称(SPN) 命令示例: setspn -T 域名 -Q */* 输出处理: 提取主机名: grep "CN=" spn.txt | awk -F "," {'print $1'} | awk -F "=" {'print $2'} > host.txt 发现MSSQL服务(主机28,端口1433) 5. 横向移动技术 5.1 尝试的攻击方法 Pass-the-Hash攻击域控 :尝试失败 MS17-010漏洞扫描 : 批量扫描域内主机 发现零星几台存在漏洞 漏洞主机分布在0、2、3网段 PsExec横向移动 : 利用 net session 发现的相同用户名账户 成功传递哈希获取访问权限 5.2 权限提升尝试 检查会话中的高权限令牌 对比域管用户名与现有会话用户名 未发现匹配项,放弃令牌窃取方法 6. 后续计划 利用MS17-010漏洞主机 : 准备使用Metasploit框架进行攻击 派生会话给MSF处理 进一步渗透 : 针对已获取的主机进行深入信息收集 寻找域管凭证或Kerberos票据 持久化维持 : 在关键主机部署后门 建立多条访问通道 7. 防御建议 7.1 针对JBoss漏洞 禁用JMX Console的公开访问 配置强认证机制 及时更新JBoss版本 7.2 内网安全加固 启用LSA保护防止Pass-the-Hash 及时修补MS17-010等已知漏洞 限制PsExec等工具的使用 监控异常SPN查询行为 7.3 检测与响应 监控异常WAR包部署行为 建立哈希传递攻击检测机制 对域内异常会话进行告警 8. 工具与技术总结 | 工具/技术 | 用途 | 命令示例 | |----------|------|----------| | JMX Console | JBoss管理界面 | 手动访问 | | setspn | SPN扫描 | setspn -T 域名 -Q */* | | net命令 | 域信息收集 | net group "domain admins" /domain | | nltest | 域信任查询 | nltest /domain_trusts | | PsExec | 横向移动 | 哈希传递方式 | | MS17-010扫描 | 漏洞检测 | 使用MSF或其他扫描工具 | 9. 学习要点 经典漏洞利用 :JMX Console未授权访问是Java应用服务器的常见问题 内网渗透流程 :从外网突破到内网横向的标准流程 信息收集重要性 :全面的信息收集是内网渗透成功的关键 多种攻击技术组合 :根据环境特点灵活选择攻击方法 规避检测 :使用SPN扫描等隐蔽技术减少被发现风险 10. 扩展学习资源 JBoss安全配置指南 Active Directory渗透测试技术 Kerberos协议与攻击技术 横向移动方法大全 内网隐蔽通道建立技术