Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
kafka-connect-filestream-win — Kafka Connect 4.3.1 - 高危 - Windows FileStream 类路径残留 - 未授权文件读写 | Kitploit
工具/GitHubGitHub/abraxas/kafka-connect-filestream-win
漏洞分析漏洞利用Web应用程序漏洞利用信息收集安全虚拟化渗透测试错误配置实验室与实践

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHub
abraxas/kafka-connect-filestream-win

kafka-connect-filestream-win

Kafka Connect 4.3.1 - 高危 - Windows FileStream 类路径残留 - 未授权文件读写

查看仓库
11013天前尚未审核
分享

Abraxas Labs - kafka-connect-filestream-win

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  kafka-connect-filestream-win

kafka-connect-filestream-win

Apache Kafka Connect 4.3.1 (26b251a) - Apache Software Foundation

KAFKA-13748 将 FileStream 从 Unix Connect CLASSPATH 中移除,因此未认证的 REST 无法打开本地文件。Windows 启动器从未获得该排除项。tarball 仍将 connect-file 打包进 libs/。kafka-run-class.bat 会拼接其中的每个 jar。

在 Windows 启动的 worker 上,未认证的 POST /connectors 可读取并追加 Connect UID 可触及的文件。

ID暂无 CVE
CWECWE-552、CWE-1188
CVSSHigh: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
产品Apache Kafka Connect
受影响版本4.3.1 (26b251a);Windows bin/windows/kafka-run-class.bat。Unix .sh 已排除 connect-file。
认证未认证的 Connect REST(默认 listeners=http://:8083,无 rest.extension.classes)
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

攻击者能做什么

将浏览器或 curl 指向使用随附 Windows .bat 文件启动的 worker 上的 Connect REST。创建一个 FileStream source。worker 会打开你在 file 中指定的任意路径,并将字节生产到 Kafka topic。创建一个 FileStream sink。worker 会创建或追加你在 file 中指定的任意路径。没有允许列表。

Unix 启动器已经丢弃 connect-file.*.jar。同样的 JSON 针对原版 connect-distributed.sh 会返回 400:未知连接器。默认 apache/kafka Docker 是 Linux broker。这个遗留问题出在 Windows CLASSPATH。

我是如何发现的

我先阅读了 Kafka CVE 列表:JAAS Jndi/Ldap、OAUTHBEARER URL 允许列表、DefaultJwtValidator、ConfigProvider、FileStream 的公开 JIRA。Unix kafka-run-class.sh 仍有该排除项:

regex="(-(test|test-sources|src|scaladoc|javadoc)\.jar|jar.asc|connect-file.*\.jar)$"

cc_pkg 也省略了 file。然后我打开了 Windows 副本:

for %%p in (api runtime file json tools) do (
	for %%i in ("%BASE_DIR%\connect\%%p\build\libs\connect-%%p*.jar") do (
		call :concat "%%i"
	)
)
rem Classpath addition for release
for %%i in ("%BASE_DIR%\libs\*") do (
	call :concat "%%i"
)

build.gradle 仍将 connect-file 复制到 libs/。文档称 FileStream 不在默认 CLASSPATH 上。这句话对 .sh 成立。

Doyensec 在 2022 年披露了该类问题。KAFKA-13748 / PR 11908 是 Unix 修复。.bat 从未更新。

已记录的弯路:Wine;在 macOS 上执行 .bat;将 plugin.path 视为漏洞点(两个 worker 上它都是空的);声称 Linux Docker 存在此漏洞;将 Unix 上的 201 当作 SUCCESS。表演:反向 shell。判定标准是 Unix 400 加上 sink 文件中的见证行。

实验环境

cd lab
./run.sh

Unix REST 127.0.0.1:18083 是原版 connect-distributed.sh。Windows 模拟 127.0.0.1:18084 是未过滤的 libs/*,即发行版 .bat 的 libs\* 循环。不是 Wine。Broker 是 compose 网络上的 apache/kafka:4.3.1。将其绑定到 loopback。

unix-filestream=absent unix-post=400
win-filestream=present win-source=201 win-sink=201 pwned=yes
SUCCESS kafka-connect-filestream-win ... KAFKA-CONNECT-FILESTREAM-WIN-WITNESS

修复方案

为 kafka-run-class.bat 添加与 .sh 相同的 connect-file 排除项。从 gradle-from-source 的 for %%p in (api runtime file json tools) 循环中移除 file。继续为有意设置 plugin.path 的用户提供该 jar。

参考资料

  • github.com/apache/kafka 标签 4.3.1 (26b251a451ce941d3d7a55e6487bcb7f16b5ad48)
  • bin/windows/kafka-run-class.bat · bin/kafka-run-class.sh
  • FileStreamSourceTask.java · FileStreamSinkTask.java
  • KAFKA-13748 · PR 11908
  • Doyensec 2022 Kafka Connect FileStream 安全公告
下载工具