Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2018-0952-SystemCollector — Windows 10 Diagnostics Hub Standard Collector Service에서의 권한 상승 PoC | Kitploit
도구/GitHubGitHub/atredispartners/cve-2018-0952-systemcollector
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingRed TeamingBinary Exploitation
GitHubatredispartners/cve-2018-0952-systemcollector

CVE-2018-0952-SystemCollector

Windows 10 Diagnostics Hub Standard Collector Service에서의 권한 상승 PoC

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
1113168년 전Kitploit 검토 완료

SystemCollector

Windows 10 Diagnostics Hub Standard Collector Service의 권한 상승을 위한 PoC

영향을 받는 제품

  • Windows 10
  • Windows Server
  • Windows Server 2016
  • Visual Studio 2015 Update 3
  • Visual Studio 2017

요약

Windows 표준 수집기 서비스에서 사용되는 Diagnostics Hub 패키징 라이브러리는 DiagnosticsHub.StandardCollector.Runtime.dll의 클라이언트 가장(client impersonation) 부재로 인해 임의의 파일을 임의의 위치로 복사하도록 강제할 수 있습니다.

이 취약점이 어떻게 발견되고 악용되었는지에 대한 자세한 문서는 여기에서 확인할 수 있습니다: Windows 표준 수집기 서비스의 권한 상승 취약점.

기술적 세부 사항

표준 수집기 서비스는 진단 세션 구성 시 임시 디렉터리(scratch directory)와 세션 ID를 포함한 여러 값을 정의할 수 있게 해줍니다. 세션 ID는 임의의 GUID일 수 있고, 임시 디렉터리는 사용자에게 쓰기 권한이 있는 모든 위치일 수 있습니다. 컬렉션 세션이 ID c13851b2-b1e1-438f-bf73-949df897f1bf 및 임시 경로 C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\로 구성된 경우, ICollectionSession 객체의 GetCurrentResult 메서드를 호출할 때 다음 이벤트가 발생합니다:

  1. 임시 경로에 이벤트 추적 로그(.etl) 파일이 생성됩니다: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl
  2. 임시 경로에 Report 폴더도 생성됩니다: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1
  3. 보고서 폴더에 임의의 GUID를 가진 폴더가 생성됩니다: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65

이러한 폴더와 ETL 파일은 일반적으로 세션이 종료될 때 생성되는 .diagsession 패키지를 위해 수집기 서비스에 의해 생성됩니다. ICollectionSession 객체에서 Stop 메서드를 호출하면 수집기 서비스가 Microsoft::DiagnosticsHub::Packaging::DhPackageDirectory::CommitPackage를 호출하여 진단 패키지를 커밋합니다. CommitPackage 함수는 원본 {scratch path}\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl 파일을 임의의 GUID 폴더인 {scratch path}\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl로 복사하거나 이동합니다.

DiagnosticsHub.StandardCollector.Runtime.dll의 CommitPackagingResult 함수에 의해 트리거되는 복사/이동 작업은 (초기 파일/폴더 생성과 달리) 사용자를 가장하지 않고 수행되므로, 대상 폴더가 복사를 임의의 위치로 리디렉션하는 마운트 지점으로 교체되면 TOCTOU 문제가 발생할 수 있습니다. 이 문제를 실질적으로 악용하려면 공격자는 ETL 파일이 복사되기 전에 그 내용을 교체해야 합니다. 이는 서비스가 파일 핸들을 해제한 후 OpLock으로 경쟁 상태(race condition)를 이겨내면 가능합니다.

우리는 복사되는 .etl 파일의 이름을 완전히 제어할 수는 없지만, 객체 디렉터리 심볼릭 링크 트릭을 사용하여 이를 제어할 수 있습니다. 마운트 지점 + 심볼릭 링크 구성은 다음과 같은 형태입니다:

  • Mount point: {scratch path}\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65\ -> \RPC Control\
  • Symlink: \RPC Control\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl -> C:\Windows\System32\anything.dll

파일 내용, 복사 위치, 파일 이름을 제어할 수 있게 되면 공격자는 수많은 DLL 로딩 가능성을 얻을 수 있습니다. 그러나 포함된 PoC는 파일 이름 제어가 필요하지 않음을 보여줍니다. 수집기 서비스는 C:\Windows\System32 또는 C:\Windows\System32\DiagSvcs 디렉터리에만 있다면 어떤 파일 이름의 DLL이라도 기꺼이 로드하기 때문입니다. 이는 복사된 DLL의 이름 c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl과 일치하는 어셈블리 이름을 가진 에이전트로 새 수집기 세션을 시작하여 수행됩니다.

포함된 PoC는 notepad.exe를 실행하는 페이로드를 위한 C++ DLL 프로젝트와, NtApiDotNet 라이브러리를 사용하여 서비스와 상호 작용하고 취약점을 악용하는 C# 프로젝트로 구성된 VS 솔루션입니다.

재현 단계:

  1. Visual Studio 솔루션을 빌드합니다.
  2. SystemCollector.exe를 일반 사용자로 실행합니다.

예상 결과:

패키지 커밋 작업은 사용자를 가장하고 파일 복사를 시도할 때 실패합니다.

실제 결과:

파일이 마운트 지점 대상 폴더인 C:\Windows\System32로 복사된 다음 수집기 에이전트로 로드되고, 마지막으로 notepad.exe가 SYSTEM 권한으로 실행됩니다.

추가 참조 자료

  • https://www.atredis.com/blog/cve-2018-0952-privilege-escalation-vulnerability-in-windows-standard-collector-service
  • https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0952
  • https://github.com/atredispartners/advisories/blob/master/ATREDIS-2018-0004.md
도구 다운로드