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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
poc-CVE-2024-23897 — CVE-2024-23897: Jenkins 임의 파일 읽기로 인한 RCE | Kitploit
도구/GitHubGitHub/vmc8ll/poc-cve-2024-23897
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingRed TeamingPayload Development
GitHubvmc8ll/poc-cve-2024-23897

poc-CVE-2024-23897

CVE-2024-23897: Jenkins 임의 파일 읽기로 인한 RCE

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

poc-CVE-2024-23897

CVE-2024-23897: Jenkins 임의 파일 읽기로 인한 RCE 🎯 영향을 받는 제품 및 버전

root@kitploit:~
제품: Jenkins(지속적 통합/지속적 배포 서버)

버전: Jenkins 2.441 이하, Jenkins LTS 2.426.2 이하

수정 버전: Jenkins 2.442, Jenkins LTS 2.426.3

📝 설명

CVE-2024-23897은 Jenkins에서 인증되지 않은 공격자가 Jenkins 컨트롤러 파일 시스템의 임의 파일을 읽을 수 있게 하는 치명적인 취약점입니다. 이 취약점은 Jenkins가 CLI 명령 파서의 기능 중 하나인 '@' 문자 뒤에 오는 파일 경로를 해당 파일의 내용으로 대체하는 기능을 비활성화하지 않기 때문에 발생합니다.

이 결함은 다른 기법과 결합될 경우 원격 코드 실행(RCE)으로 이어질 수 있어, CI/CD 파이프라인에서 Jenkins를 사용하는 조직에 특히 위험합니다.

🔍 취약점 세부 정보

근본 원인

이 취약점은 org.kohsuke.args4j.CmdLineParser 클래스의 expandAtFiles() 함수에서 비롯됩니다. CLI 인수를 파싱할 때 파서가 '@' 기호 다음에 파일 경로가 오는 것을 발견하면 해당 파일의 내용을 읽어 확장합니다.

공격 벡터

공격자는 인증 없이 Jenkins CLI 인터페이스를 통해 이 취약점을 악용할 수 있습니다:

bash

java -jar jenkins-cli.jar -s http://target-jenkins-server:8080/ help @/etc/passwd

기술적 분석

파일 읽기 제한 사항

root@kitploit:~
인증이 없는 경우: 파일의 처음 3줄만 읽을 수 있음(CLI 명령에 따라 다름)

'Overall/Read' 권한이 있는 경우: 파일 전체 내용을 읽을 수 있음

바이너리 파일: 추출할 수 있지만 인코딩 문제의 영향을 받을 수 있음(Windows의 Windows-1252가 Linux의 UTF-8보다 더 나은 결과 제공)

공격 표면 확장

파일 읽기가 달성되면 공격자는 더 심각한 공격으로 확장할 수 있습니다:

root@kitploit:~
자격 증명 추출:

    암호화된 자격 증명을 위해 /var/jenkins_home/credentials.xml 읽기

    복호화를 위해 /var/jenkins_home/secrets/master.key 및 hudson.util.Secret 읽기

    Jenkins 스크립트 콘솔을 사용하여 자격 증명 복호화: println(Hudson.util.Secret.fromString("{XXX=}").getPlainText())

"Remember-me" 쿠키 위조:

    인증 쿠키를 위조하여 관리자 액세스 권한 획득

임의 코드 실행:

    Resource Root URL, XSS 또는 CSRF 벡터를 통해 RCE 달성

💥 영향

즉각적인 영향

root@kitploit:~
기밀성: Jenkins 서버의 모든 파일(소스 코드, 자격 증명, SSH 키, 토큰) 완전 노출

무결성: 공격자가 빌드, 파이프라인 및 구성을 수정할 수 있음

가용성: 서비스 거부 또는 랜섬웨어 배포 가능성

실제 악용 사례

이 취약점은 실제 환경에서 활발히 악용되었습니다:

root@kitploit:~
CISA KEV(Known Exploited Vulnerabilities) 카탈로그에 등록됨

랜섬웨어 갱(RansomEXX)이 인프라를 침해하는 데 사용됨

위협 행위자 IntelBroker가 GitHub 저장소를 탈취하고 IT 서비스 제공업체를 침해하는 데 악용됨

🔧 탐지

침해 지표(IoC)

성공적인 악용 시도는 다음을 통해 탐지할 수 있습니다:

HTTP 요청 패턴: text

POST /cli?remoting=false HTTP/1.1 Content-type: application/octet-stream [binary payload containing @/path/to/file]

일반적인 페이로드 예시:

root@kitploit:~
@/etc/passwd

@/var/jenkins_home/secrets/initialAdminPassword

@/etc/os-release

Splunk 탐지 쿼리 text

index=web uri="/cli?remoting=false" http_method=POST http_status=200

🛡️ 완화 조치

공식 수정

패치된 버전으로 업그레이드하십시오:

root@kitploit:~
Jenkins ≥ 2.442

Jenkins LTS ≥ 2.426.3

임시 완화 조치

즉시 패치가 불가능한 경우:

root@kitploit:~
Jenkins CLI 액세스 비활성화

Java 시스템 속성 설정: hudson.cli.CLICommand.allowAtSyntax=false

Jenkins 관리 인터페이스에 대한 네트워크 액세스 제한

@/ 패턴을 포함하는 요청을 차단하는 WAF 규칙 구현

🔗 참고 자료

root@kitploit:~
NVD 항목

Jenkins 보안 권고

CISA KEV 카탈로그

Splunk 연구

Tenable CVE 페이지

📦 빌드 및 실행 bash

Build the exploit

go build -o jenkins-cve-2024-23897 exploit.go

Run the exploit

./jenkins-cve-2024-23897 http://target-jenkins:8080 /etc/passwd

Run with Go directly

go run exploit.go http://target-jenkins:8080 /etc/passwd

🎯 사용 예시 bash

Read sensitive files

./jenkins-cve-2024-23897 http://jenkins.internal:8080 /etc/passwd ./jenkins-cve-2024-23897 http://localhost:8080 /var/jenkins_home/secrets/initialAdminPassword

Read Windows file (if Jenkins runs on Windows)

./jenkins-cve-2024-23897 http://win-jenkins:8080 C:/Windows/win.ini

⚙️ 작동 방식

root@kitploit:~
세션 초기화: 고유한 20바이트 세션 ID 생성

페이로드 구성: help @/path/to/file 구조의 바이너리 페이로드 생성

업로드 단계: Jenkins CLI 엔드포인트로 페이로드 전송

다운로드 단계: 응답에서 파일 내용 검색

출력: 파일 내용 또는 오류 메시지 표시

📊 기능

root@kitploit:~
순수 Go 구현 - 외부 종속성 없음

크로스 플랫폼 - Windows, Linux, macOS에서 작동

구성 가능한 타임아웃 - 느린 네트워크에 맞게 조정 가능

깔끔한 오류 처리 - 상세한 오류 메시지

바이너리 안전 - 텍스트 및 바이너리 파일 모두 처리

⚠️ 중요 참고 사항

root@kitploit:~
교육 목적으로만 사용 - 소유했거나 테스트 권한이 있는 시스템에서만 사용

인증 없는 읽기 - 인증이 없으면 처음 ~3줄만 읽을 수 있음

바이너리 파일 - 인코딩 문제의 영향을 받을 수 있음(더 나은 바이너리 추출을 위해 Windows 대상 사용)
도구 다운로드