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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PlEXcalaison — Plex 미디어 서버 로컬 권한 상승 PoC - CVE-2021-42835 | Kitploit
도구/GitHubGitHub/netanelc305/plexcalaison
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingBinary Exploitation
GitHubnetanelc305/plexcalaison

PlEXcalaison

Plex 미디어 서버 로컬 권한 상승 PoC - CVE-2021-42835

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Local Privilege PlEXcalasion - CVE-2021-42835

Windows용 Plex Media Server 버전 1.25.0.5282 이전 버전은 TOCTOU(Time Of Check Time Of Use) 취약점에 영향을 받으며, 낮은 권한의 사용자가 SYSTEM 권한을 획득할 수 있습니다.

발견자

Tomer Peled, Netanel Cohen, Amir Shen - BugSec의 보안 연구원들.

세부 정보

Windows용 Plex는 새 업데이트를 설치하기 위해 PlexUpdateService.exe를 사용합니다. 해당 서비스는 SYSTEM 컨텍스트에서 실행됩니다. 업데이트를 설치할 때 서비스는 먼저 파일 무결성과 디지털 서명을 확인하고, 검사가 성공한 경우에만 업데이트를 설치합니다.

이 과정에서 무결성 및 서명 확인 후 업데이트 파일을 부적절하게 처리하는 설계 결함이 있었습니다. 파일이 닫혔다가 설치를 위해 나중에 다시 열렸습니다.

이 결함으로 인해 공격자는 서비스가 무결성 및 서명 확인을 마치는 즉시 업데이트 파일을 악성 파일로 교체할 수 있으며, 결과적으로 SYSTEM 컨텍스트에서 코드 실행이 가능해집니다.

이 POC는 James Forshaw가 개발한 도구를 약간 수정하여 사용합니다. 원본은 여기에서 찾을 수 있습니다 - https://github.com/googleprojectzero/symboliclink-testing-tools

위를 달성하기 위해 먼저 유효한 업데이트 파일이 들어 있는 폴더를 가리킨 후 악성 파일이 들어 있는 폴더로 전환되는 Junction 폴더를 사용했습니다.

파일 접근 순서는 다음과 같다는 것을 발견했습니다.

  1. 업데이트 파일을 읽어 디지털 서명을 확인합니다.
  2. 업데이트 파일을 닫습니다.
  3. CACERT.pem을 읽습니다.
  4. 서명을 확인합니다.
  5. 업데이트 파일을 다시 읽습니다.
  6. 설치를 실행합니다.

Junction 폴더에 유효한 업데이트 파일이 들어 있는 폴더를 가리키는 마운트 지점을 만들었습니다. cacert.pem에 콜백 함수와 함께 opLock을 설정하고, 접근하는 즉시 마운트 지점을 악성 폴더로 변경합니다.

또한 업데이트를 트리거하는 RPC 클라이언트를 만들었습니다.

사용 방법

  1. 저장소를 클론하고 Visual Studio에서 PlEXcalasion.sln을 엽니다.
  2. TOCTOU\junction에 있는 Delete me.txt 파일을 삭제하세요. 이 파일은 git이 폴더를 포함하도록 하는 자리 표시자일 뿐입니다. 이 폴더는 비어 있어야 합니다!
  3. 경로 수정:

PlexClient/PlexClient.cpp에서 ROOTDIR을 자신의 경로로 바꾸세요.

root@kitploit:~
const wchar_t* pszString = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\junction\\plex.exe"; // Path to the update file. 

PlEXcalaison/BaitAndSwitch/BaitAndSwitch.cpp에서 ROOTDIR을 자신의 경로로 바꾸세요.

root@kitploit:~
static LPCWSTR junction = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\junction";  // Path to junction folder , MAKE SURE IT IS EMPTY !
static LPCWSTR target1 = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\valid"; // Path to folder contains the valid update file.
static LPCWSTR target2 = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\malicious"; // Path to folder contains the malicious file - MUST BE THE SAME NAME AS THE UPDATE FILE.
static LPCWSTR cacert = L"C:\\Program Files (x86)\\Plex\\Plex Media Server\\Resources\\cacert.pem"; // Path to cacert.pem - can be found in plex directory.
  1. 솔루션을 빌드합니다.
  2. PlexClient.exe가 생성되어 Rleases 디렉터리에서 찾을 수 있는지 확인하세요.
  3. SYSTEM 권한으로 실행하려는 원하는 실행 파일을 악성 폴더에 넣고 plex.exe로 이름을 바꾸세요 (POC에서는 cmd.exe를 사용했습니다).
  4. BiteAndSwitch.exe를 실행합니다.

공개 자료

https://ir-on.io/2021/12/02/local-privilege-plexcalation/

https://forums.plex.tv/t/security-regarding-cve-2021-42835/761510

도구 다운로드