Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
kafka-connect-filestream-win — Kafka Connect 4.3.1 - Alta - Resto de classpath de Windows FileStream - lectura/escritura de archivos sin autenticación | Kitploit
Herramientas/GitHubGitHub/abraxas/kafka-connect-filestream-win
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónVirtualización de SeguridadPruebas de PenetraciónMala ConfiguraciónLabs y Práctica
GitHubabraxas/kafka-connect-filestream-win

kafka-connect-filestream-win

Kafka Connect 4.3.1 - Alta - Resto de classpath de Windows FileStream - lectura/escritura de archivos sin autenticación

Ver Repositorio
110hace 11 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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 sacó FileStream del CLASSPATH de Connect en Unix para que el REST sin autenticación no pudiera abrir archivos locales. El lanzador de Windows nunca recibió esa exclusión. El tarball sigue incluyendo connect-file en libs/. kafka-run-class.bat concatena todos los jars que hay allí.

Un POST /connectors sin autenticación en un worker lanzado en Windows lee y añade archivos a los que el UID de Connect puede acceder.

IDsin CVE todavía
CWECWE-552, CWE-1188
CVSSAlto: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
ProductoApache Kafka Connect
Afectado4.3.1 (26b251a); Windows bin/windows/kafka-run-class.bat. El .sh de Unix ya excluye connect-file.
AutenticaciónConnect REST sin autenticación (por defecto listeners=http://:8083, sin rest.extension.classes)
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Qué puede hacer un atacante

Apunta un navegador o curl al Connect REST en un worker iniciado con los archivos .bat de Windows incluidos. Crea un source de FileStream. El worker abre cualquier ruta que pongas en file y produce los bytes en un topic de Kafka. Crea un sink de FileStream. El worker crea o añade cualquier ruta que pongas en file. No hay lista de permitidos.

El lanzador de Unix ya descarta connect-file.*.jar. El mismo JSON contra el connect-distributed.sh estándar devuelve un 400: conector desconocido. El Docker apache/kafka por defecto es el broker de Linux. Este residuo es el CLASSPATH de Windows.

Cómo lo encontré

Primero leí la lista de CVE de Kafka: JAAS Jndi/Ldap, lista de permitidos de URL de OAUTHBEARER, DefaultJwtValidator, ConfigProvider, el JIRA público de FileStream. El kafka-run-class.sh de Unix todavía tiene la exclusión:

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

cc_pkg tampoco incluye file. Luego abrí la copia de 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 sigue copiando connect-file en libs/. La documentación dice que FileStream no está en el CLASSPATH por defecto. Esa frase es cierta para el .sh.

Doyensec escribió esta clase en 2022. KAFKA-13748 / PR 11908 fue el arreglo de Unix. El .bat nunca se actualizó.

Caminos equivocados ya registrados: Wine; ejecutar el .bat en macOS; tratar plugin.path como el agujero (está vacío en ambos workers); afirmar que el Docker de Linux es este bug; tomar un 201 en Unix como SUCCESS. Teatro: una reverse shell. El oráculo es el 400 de Unix más una línea testigo en el archivo sink.

Laboratorio

cd lab
./run.sh

El REST de Unix 127.0.0.1:18083 es el connect-distributed.sh estándar. El Windows-sim 127.0.0.1:18084 es libs/* sin filtrar, el bucle libs\* del .bat de la release. No es Wine. El broker es apache/kafka:4.3.1 en la red de compose. Enlázalo a 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

El arreglo

Dale a kafka-run-class.bat la misma exclusión de connect-file que el .sh ya tiene. Elimina file del bucle for %%p in (api runtime file json tools) de gradle-from-source. Sigue distribuyendo el jar para quienes configuran plugin.path a propósito.

Referencias

  • github.com/apache/kafka tag 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 advisory
Descargar herramienta