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
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringSecurity VirtualizationPenetration TestingMisconfigurationLabs & Practice
GitHubabraxas/kafka-connect-filestream-win

kafka-connect-filestream-win

Kafka Connect 4.3.1 - 높음 - Windows FileStream 클래스패스 잔여물 - 인증되지 않은 파일 읽기/쓰기

저장소 보기
1911일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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로 실행된 워커에서 인증되지 않은 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 전용

공격자가 할 수 있는 일

제공된 Windows .bat 파일로 시작된 워커의 Connect REST에 브라우저나 curl을 연결합니다. FileStream 소스를 생성합니다. 워커는 file에 입력한 경로를 열고 바이트를 Kafka 토픽으로 프로듀스합니다. FileStream 싱크를 생성합니다. 워커는 file에 입력한 경로를 생성하거나 추가합니다. 허용 목록은 없습니다.

Unix 런처는 이미 connect-file.*.jar를 제외합니다. 동일한 JSON을 기본 connect-distributed.sh에 대해 실행하면 400: unknown connector가 반환됩니다. 기본 apache/kafka Docker는 Linux 브로커입니다. 이 잔여물은 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를 취약점으로 간주(두 워커 모두에서 비어 있음); Linux Docker가 이 버그라고 주장; Unix에서 201을 SUCCESS로 간주. 극적인 시도: 리버스 셸. 오라클은 Unix 400과 싱크 파일의 증인 라인입니다.

랩

cd lab
./run.sh

Unix REST 127.0.0.1:18083은 기본 connect-distributed.sh입니다. Windows 시뮬레이션 127.0.0.1:18084는 필터링되지 않은 libs/*, 릴리스 .bat의 libs\* 루프입니다. Wine이 아닙니다. 브로커는 compose 네트워크의 apache/kafka:4.3.1입니다. 루프백에 바인딩하세요.

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 advisory
도구 다운로드