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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-29923 — CVE-2026-29923에 대한 개념 증명 코드로, pstrip64.sys 커널 드라이버에서의 로컬 권한 상승 취약점입니다. IOCTL을 통해 물리적 메모리 읽기/쓰기 프리미티브를 사용하여 권한이 없는 사용자에서 NT AUTHORITY\SYSTEM으로 권한을 상승시키는 방법을 보여줍니다 (Windows). | Kitploit
도구/GitHubGitHub/mein-0/cve-2026-29923
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationBinary Exploitation
GitHubmein-0/cve-2026-29923

cve-2026-29923

CVE-2026-29923에 대한 개념 증명 코드로, pstrip64.sys 커널 드라이버에서의 로컬 권한 상승 취약점입니다. IOCTL을 통해 물리적 메모리 읽기/쓰기 프리미티브를 사용하여 권한이 없는 사용자에서 NT AUTHORITY\SYSTEM으로 권한을 상승시키는 방법을 보여줍니다 (Windows).

저장소 보기
2개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-29923 — pstrip64.sys 로컬 권한 상승

pstrip64.sys 커널 드라이버(EnTech Taiwan PowerStrip ≤ 3.90.736)의 취약점인 CVE-2026-29923에 대한 최소 개념 증명 코드로, 권한이 없는 사용자 모드 프로세스가 NT AUTHORITY\SYSTEM으로 권한을 상승시킬 수 있습니다.


버그

pstrip64.sys는 IOCTL(0x80002008)을 노출하며, 이 IOCTL은 사용자가 제공한 물리적 주소를 받아 \Device\PhysicalMemory를 열고 현재 프로세스 핸들로 ZwMapViewOfSection을 호출하여 호출 프로세스의 가상 주소 공간에 직접 매핑합니다. 권한 검사가 없고, HalTranslateBusAddress가 적용하는 것 이상의 주소 검증이 없으며, 심볼릭 링크 \\.\PSTRIP64에 대한 접근 제어도 없습니다.

결과적으로 권한이 없는 프로세스에서 제한 없는 물리적 메모리 읽기/쓰기 프리미티브가 발생합니다.


익스플로잇

임의의 물리적 읽기/쓰기가 가능해지면, 익스플로잇은 다음 네 단계를 따릅니다.

1. EPROCESS 구조체 스캔

물리적 RAM은 2 MB 청크 단위로 탐색됩니다. 각 청크는 커널 풀 태그 Proc(0x636F7250)을 스캔하는데, 이 태그는 프로세스의 _EPROCESS 구조체를 포함하는 풀 할당을 표시합니다. 후보 히트는 PID를 신뢰하기 전에 세 가지 경량 휴리스틱으로 검증됩니다.

  • PriorityClass == 0x2 — 모든 활성 프로세스는 Normal 우선순위로 실행됨
  • ProcessLock == 0x0 — 안정적인 프로세스의 잠금 필드는 비어 있음
  • ImageFileName[0]이 출력 가능한 ASCII — 가비지 메모리는 이를 거의 충족하지 않음

2. 두 토큰 포인터 위치 확인

두 개의 대상이 필요합니다.

  • 우리 프로세스의 _EPROCESS 내 Token 필드의 물리적 주소
  • 시스템 프로세스(PID 4) _EPROCESS에 저장된 토큰 값

3. 토큰 덮어쓰기

Token 필드를 포함하는 4 KB 페이지가 매핑되고 필드가 시스템 토큰 값으로 덮어쓰여집니다. 이 시점부터 Windows 커널은 우리 프로세스를 NT AUTHORITY\SYSTEM으로 취급합니다.

4. 셸 실행

CreateProcessA를 통해 cmd.exe가 실행됩니다. 자식 프로세스는 부모의 토큰을 상속하므로 결과 셸은 SYSTEM으로 실행됩니다.


MMIO 주의 사항

x86 시스템에서 3GB – 4GB 물리적 주소 범위는 MMIO용으로 예약되어 있습니다. 이 범위의 페이지를 매핑하려고 하면 드라이버가 오류 74(HalTranslateBusAddress 실패)를 반환합니다. 스캔은 이 창을 건너뛰고 0x100000000에서 재개하여 Windows가 4GB 이상에 배치하는 커널 구조체를 포착합니다.


32비트 요구 사항

드라이버의 맵 핸들러는 반환된 가상 주소를 DWORD 필드(LowPart)에 기록하여 64비트 VA를 32비트로 자릅니다. 64비트 빌드는 손상된 포인터를 받고 즉시 충돌합니다. x86으로 컴파일하십시오.


영향을 받는 소프트웨어

소프트웨어버전
EnTech Taiwan PowerStrip≤ 3.90.736

드라이버 해시(SHA-256):

root@kitploit:~
ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e

EPROCESS 오프셋

하드코딩된 오프셋은 Windows 10 22H2 x64를 대상으로 합니다. 다른 빌드에서는 업데이트된 값이 필요합니다 — WinDbg에서 dt nt!_EPROCESS를 사용하여 확인하십시오.


빌드

Visual Studio x86 개발자 명령 프롬프트를 열고 다음을 실행하십시오:

root@kitploit:~
cl /EHsc /O2 exploit.c /Fe:poc.exe

또는 Visual Studio에서 플랫폼 대상을 x86으로 설정하고 Release 모드로 빌드하십시오. 바이너리는 Windows SDK 외부 종속성이 없습니다.


사용법

먼저 pstrip64.sys를 로드하십시오(드라이버를 로드하려면 관리자 권한이 필요하지만, 일단 로드된 후에는 익스플로잇 자체를 실행하는 데 필요하지 않음). 그런 다음:

root@kitploit:~
poc.exe

NT AUTHORITY\SYSTEM으로 실행되는 새 cmd.exe 창이 열립니다.


완화

드라이버 로드 차단(권장)

  • 위 드라이버 해시를 조직의 차단 목록에 추가
  • WDAC를 통해 Microsoft의 취약 드라이버 차단 목록 활성화
  • Hypervisor-보호 코드 무결성(HVCI) 활성화

익스플로잇 실행 중 탐지

  • 알 수 없는 드라이버 바이너리에 대한 새로운 커널 모드 서비스 설치에 대한 경고
  • 낮은/중간 무결성 프로세스가 SYSTEM 수준 자식 프로세스를 생성하는지 모니터링
  • 합법적인 인증 이벤트 외부에서 토큰이 NT AUTHORITY\SYSTEM으로 변경된 프로세스 플래그 지정

면책 조항

이 코드는 교육 및 방어 연구 목적으로만 게시되었습니다. 소유한 시스템이나 명시적 서면 허가를 받은 시스템에서만 사용하십시오. 저자는 오용에 대한 책임을 지지 않습니다.


참고 자료

  • Microsoft 취약 드라이버 차단 목록
  • WDAC 개요
  • Windows EPROCESS 내부 구조
  • HalTranslateBusAddress — MSDN
  • ZwMapViewOfSection — MSDN
도구 다운로드
필드오프셋
PriorityClass0x5B7
ProcessLock0x438
UniqueProcessId0x440
ImageFileName0x5A8
Token0x4B8