Apache RocketMQ 漏洞利用技能
Apache RocketMQ 分布式消息平台高危漏洞利用与检测,覆盖 Broker RCE、NameServer 任意文件写入、Dashboard 未授权。
漏洞总览
漏洞编号 | 影响版本 | 漏洞类型 | 利用条件 | 危害等级 CVE-2023-33246 | Broker <=4.9.5, <=5.1.0 | 命令注入RCE | 无需认证 | Critical (9.8) CVE-2023-37582 | NameServer (修复不完整) | 任意文件写入 | 无需认证 | High 未授权Dashboard | 配置不当 | 集群信息泄露 | Dashboard暴露 | Medium
利用决策树
- 识别RocketMQ → 10911(Broker) / 9876(NameServer) / Dashboard
- 版本检测 → brokerVersionDesc 提取版本号
- V4.x < V4.9.6 或 V5.x < V5.1.1 → CVE-2023-33246 (Broker RCE)
- NameServer可达 → CVE-2023-37582 (任意文件写入)
- CVE-2023-33246 → 伪造协议 updateBrokerConfig → 注入rocketmqHome → RCE
- CVE-2023-37582 → UPDATE_NAMESRV_CONFIG → configStorePath覆盖 → 任意文件写入
- Dashboard未授权 → /cluster/list.query → 集群拓扑泄露
端口与协议速查
端口 | 组件 | 用途 | 关键RequestCode 9876 | NameServer | 路由注册/发现 | 318(UPDATE_CONFIG), 319(GET_CONFIG) 10911 | Broker | 消息收发 | 25(UPDATE_CONFIG), 28(CLUSTER_INFO) 10909 | Broker HA | 主从同步 | - 8080 | Dashboard | 管理界面(可选) | HTTP /cluster/list.query
协议包结构: [4字节总长度(大端)][4字节header长度(大端)][JSON header][body]
利用链优先级
- CVE-2023-33246 → Broker无认证命令注入 → 直接RCE
- CVE-2023-37582 → NameServer配置修改 → 任意文件写入 → SSH公钥/Cron RCE
- Dashboard未授权 → 版本/拓扑泄露 → 辅助精准利用
识别特征
FOFA: app="Apache-RocketMQ" 或 title="RocketMQ"
Shodan: port:10911 或 port:9876 "rocketmq"
响应特征: 10911端口心跳响应JSON含 brokerVersionDesc
详细参考
CVE-2023-33246 Broker命令注入RCE - 原理、利用脚本与Nuclei模板
CVE-2023-37582 NameServer任意文件写入 - 原理与利用脚本
检测工具集 - 版本检测、综合扫描、Java工具与后利用