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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-7771 — ThrottleStop.sys 임의 물리 메모리 읽기/쓰기 | Kitploit
도구/GitHubGitHub/enessakircolak/cve-2025-7771
Privilege EscalationVulnerability AnalysisExploitationIDS/IPS EvasionPenetration TestingRed Teaming
GitHubenessakircolak/cve-2025-7771

CVE-2025-7771

ThrottleStop.sys 임의 물리 메모리 읽기/쓰기

저장소 보기
219일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-7771 — ThrottleStop.sys 임의 물리 메모리 읽기/쓰기

TechPowerUp ThrottleStop.sys 드라이버(CVE-2025-7771)에 대한 완전한 개념 증명(PoC)입니다. 서명된 상태로 여전히 로드 가능한 커널 드라이버가 두 개의 IOCTL을 통해 검증되지 않은 물리 메모리 읽기/쓰기를 노출합니다. 이 저장소는 해당 프리미티브를 실제로 작동하는 관리자-to-SYSTEM 로컬 권한 상승으로 전환하고, 대부분의 경로 및 파일 이름 기반 탐지를 무력화하는 디바이스 이름 지정 특이점을 문서화합니다.

동일한 IOCTL에 대한 PoC는 이미 존재했습니다(Credits 참조). 이는 프리미티브 시연이 아닌 독립적인 완전한 익스플로잇 체인입니다.

영향받는 드라이버

필드값
SHA25616F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
SHA182ED942A52CDCF120A8919730E00BA37619661A3
MD56BC8E3505D9F51368DDF323ACB6ABC49
버전3.0.0.0 ("Low-Level Driver", 2004-2020)
서명자TechPowerUp LLC, DigiCert EV Code Signing
인증서 지문524EDA9C819321C66E22C7BABEB23DAEAFFB2182
인증서 유효 기간2019-08-10 ~ 2022-06-15

인증서는 2022년에 만료되었지만 서명에는 신뢰할 수 있는 카운터서명 타임스탬프가 포함되어 있어 Windows는 여전히 이를 로드합니다. 해지(revocation)는 해지 날짜가 서명 시점보다 이전인 경우에만 효과가 있으며, 이는 이와 같은 오래된 드라이버에서는 드문 경우입니다.

버전 리소스에는 CompanyName, OriginalFilename 또는 InternalName이 없으므로 파일 자체의 메타데이터만으로는 공급업체를 특정할 수 없습니다.

버그

두 개의 IOCTL이 경계(bounds)나 주소 검증 없이 물리 메모리를 읽고 씁니다:

IOCTL동작
0x80006498물리 읽기
0x8000649C물리 쓰기

둘 다 METHOD_BUFFERED이므로 사용자 포인터 역참조는 없습니다. 결함은 검사되지 않은 포인터가 아니라 호출자가 제공한 물리 주소에 대한 검증 누락입니다.

주목할 점: 쓰기 핸들러 0x8000649C는 FILE_READ_ACCESS로 선언되어 있습니다. 읽기 전용으로 연 핸들로도 물리 쓰기를 수행할 수 있으므로, 선언된 액세스 마스크는 핸들러가 실제로 수행하는 동작과 일치하지 않습니다.

영향

디바이스를 여는 데 관리자 권한이 필요하므로 이 자체만으로는 권한 경계를 넘는 것이 아닙니다. 이미 관리자인 공격자에게 제공되는 것은 사용자 모드에서의 임의 커널 읽기/쓰기이며, 이는 관리자 이상의 권한에서 유지되어야 하는 보호 기능, 즉 HVCI 코드 무결성, PPL, EDR/AV 자체 보호를 무력화합니다. 전형적인 BYOVD(bring-your-own-vulnerable-driver) 공격입니다.

구체적인 데모로서 PoC는 R/W 프리미티브를 사용해 SYSTEM 토큰을 탈취하고 SYSTEM 셸을 실행합니다.

CVSS 4.0: AV:L/AC:H/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H (8.7, High).

익스플로잇 작동 방식

모든 것이 사용자 모드에서 드라이버의 물리 R/W IOCTL을 대상으로 실행됩니다. 페이지 테이블 워킹이나 CR3 레지스터는 사용되지 않으며, 두 프로세스 모두 물리 메모리를 직접 스캔하여 찾습니다:

  1. SYSTEM 찾기. ImageFileName이 System이고 UniqueProcessId가 4인 EPROCESS를 찾기 위해 물리 메모리를 스캔합니다. 스캔은 추측한 창(window)이 아니라 펌웨어의 HARDWARE\RESOURCEMAP\...\Physical Memory 레지스트리 키에서 읽은 실제로 사용 중인 RAM 범위로 제한되므로, MMIO 홀은 절대 건드리지 않으며 설치된 RAM 이상의 영역도 놓치지 않습니다.
  2. SYSTEM 토큰 읽기. 찾은 EPROCESS에서 Token 필드(EPROC_TOKEN)를 읽습니다.
  3. 자체 프로세스 찾기. 동일한 방식으로 물리 메모리를 스캔하여 PoC 자신의 EPROCESS를 찾습니다. 이미지 이름을 8바이트 패턴으로 매칭하고 PID로 확인합니다.
  4. 토큰 교체. SYSTEM 토큰 값을 우리 자신의 Token 슬롯에 씁니다. 토큰은 _EX_FAST_REF이므로 낮은 참조 카운트 비트는 기본적으로 마스킹됩니다(--mask가 이 동작을 선택합니다).
  5. 증명. cmd.exe를 실행합니다. whoami가 NT AUTHORITY\SYSTEM을 반환합니다.

오프셋(EPROC_TOKEN, EPROC_PID, EPROC_IMG_NAME 등)은 특정 빌드용이므로 대상 Windows 버전에서 dt nt!_EPROCESS 출력과 대조하여 확인해야 합니다.

실행 파일 이름이 중요합니다. 3단계는 물리 메모리에서 ImageFileName을 매칭하여 우리 자신의 프로세스를 찾으며, 해당 필드는 15자로 제한되고 스캔은 처음 8자만 매칭합니다. 컴파일된 이름을 짧고 고유하게 유지하세요. 바이너리의 이름을 바꾸는 경우에도 이 제한을 지켜야 하며, 그렇지 않으면 자체 스캔이 프로세스를 찾지 못합니다.

디바이스 이름은 공격자가 제어할 수 있음

이 드라이버는 고정된 디바이스 이름을 사용하지 않습니다. 디바이스 오브젝트 이름은 등록된 서비스 이름에서 파생되며, 디스크의 파일 이름은 중요하지 않습니다. 바이너리를 서비스 TRIXX로 등록하면 디스크의 파일 이름이 무엇이든 \\.\TRIXX가 생성됩니다.

따라서 \Device\ThrottleStop 또는 ThrottleStop.sys에 기반한 모든 탐지는 쉽게 우회됩니다. 탐지는 파일 해시 또는 서명 인증서를 기반으로 해야 합니다:

root@kitploit:~
SHA256:     16F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
Thumbprint: 524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Subject:    CN=TechPowerUp LLC, O=TechPowerUp LLC, L=Spokane, S=Washington, C=US

소스의 DEVICE_NAMES 목록은 알려진 제품 설치를 찾기 위한 프로브일 뿐입니다. 직접 등록한 서비스를 대상으로 하려면 디바이스 이름을 인수로 전달하세요.

관련 TechPowerUp 드라이버

CVE드라이버
CVE-2019-7245GPU-Z.sys
CVE-2025-5324GPU-Z.sys
CVE-2025-7771ThrottleStop.sys (이 저장소)

드라이버는 포함되어 있지 않음

이 저장소에는 바이너리가 포함되어 있지 않습니다. 모든 복사본은 위의 SHA256으로 검증하세요. 샘플은 LOLDrivers에 등재되어 있습니다.

빌드

root@kitploit:~
cl /nologo /EHsc /W4 /O2 src\ThrottleStop.cpp /Fe:myLittleLpe.exe /link advapi32.lib

사용법

랩 사용 전용입니다. 롤백할 스냅샷이 있는 격리된 VM에서 실행하세요.

root@kitploit:~
sc.exe create <name> type= kernel binPath= C:\path\to\ThrottleStop.sys
sc.exe start <name>

myLittleLpe.exe

sc.exe stop <name>
sc.exe delete <name>

바이너리는 인수를 받지 않습니다. 물리 메모리 맵을 출력하고 SYSTEM 및 로컬 EPROCESS를 스캔한 다음 토큰을 교체하고 NT AUTHORITY\SYSTEM 권한으로 실행되는 cmd.exe를 생성합니다.

데모

myLittleLpe.exe 실행 화면: 물리 메모리 맵, EPROCESS 스캔, 토큰 교체 및 SYSTEM 셸

기타 PoC 및 선행 작업

비교를 위해 동일 드라이버에 대한 다른 공개 작업물:

  • Demoo1337/ThrottleStop — 동일한 IOCTL에 대한 초기 PoC
  • xM0kht4r/CVE-2025-7771 — Superfetch를 통한 물리 R/W 및 VA-to-PA 변환
  • AmrHuss/throttlestop-exploit-rw — Superfetch 주소 변환을 이용한 물리 R/W
  • v31l0x1/ThrottleStopPPL — PPL 보호 우회
  • Yuri08loveElaina/CVE-2025-7771 — 또 다른 구현

크레딧

  • LOLDrivers — 취약 드라이버 카탈로그 제공

면책 조항

방어 연구 및 탐지 엔지니어링을 위해 공개되었습니다. 이 취약점은 이미 CVE-2025-7771로 공개되어 있습니다. 여기에 포함된 모든 내용은 작성자가 소유한 시스템에서 테스트되었습니다. 소유하지 않았거나 테스트 권한이 없는 시스템에 대해 이를 실행하지 마십시오.

도구 다운로드