Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-62215-POC — CVE-2025-62215 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, यह विंडोज कर्नेल में SepTokenSidSharingEnabled में एक Use-After-Free कमजोरी है। इसमें रेस कंडीशन विश्लेषण के लिए एक कर्नेल ड्राइवर और यूज़र-मोड एक्सप्लॉइट शामिल है। | Kitploit
उपकरण/GitHubGitHub/gowonisgood/cve-2025-62215-poc
भेद्यता विश्लेषणशोषणCTFलर्निंग और शिक्षाबाइनरी शोषण
GitHubgowonisgood/cve-2025-62215-poc

CVE-2025-62215-POC

CVE-2025-62215 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, यह विंडोज कर्नेल में SepTokenSidSharingEnabled में एक Use-After-Free कमजोरी है। इसमें रेस कंडीशन विश्लेषण के लिए एक कर्नेल ड्राइवर और यूज़र-मोड एक्सप्लॉइट शामिल है।

रिपॉजिटरी देखें
101154 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2025-62215 — Windows Token UAF (SepTokenSidSharingEnabled रेस स्थिति)

यह रिपॉजिटरी केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए है।

अवलोकन

Windows कर्नेल के SepTokenSidSharingEnabled ऑप्टिमाइज़ेशन पथ में होने वाली Use-After-Free भेद्यता का PoC।

  • जब NtDuplicateToken SID Values Block के RefCount को 1→2 बढ़ाता है, तब एक रेसिंग कर्नेल थ्रेड ExFreePoolWithTag के माध्यम से ब्लॉक को मुक्त कर देता है।
  • बाद में, SepDereferenceSidValuesBlock मुक्त किए गए ब्लॉक तक पहुँचता है → UAF / Double Free।
root@kitploit:~
[User]  IOCTL_REPLACE_SID_BLOCK  →  TOKEN+0x468 पर एक स्वतंत्र ब्लॉक (RefCount=1) रखें
[User]  IOCTL_TRIGGER_FREE       →  कर्नेल थ्रेड बनाएँ (RefCount==2 होने तक प्रतीक्षा करें)
[User]  NtDuplicateToken         →  आंतरिक रूप से RefCount 1→2 बढ़ाता है
[Kernel Thread] RefCount==2 का पता चला → ExFreePoolWithTag(pBlock)  ← UAF बिंदु

फ़ाइल संरचना

पथविवरण
exploit/exploitWithDriv/exploitWithDriv.cppउपयोगकर्ता-मोड एक्सप्लॉइट (कंसोल ऐप)
tokendriv/tokendrv/tokendrv/tokendrv.cppकर्नेल ड्राइवर (IOCTL इंटरफ़ेस प्रदान करता है)

निर्माण निर्देश (Visual Studio)

पूर्वापेक्षाएँ

  • Visual Studio 2022 (MSVC)
  • Windows Driver Kit (WDK) — tokendriv निर्माण के लिए आवश्यक
  • SDK 10.0.26100.x या बाद का संस्करण

1. tokendriv.sys — कर्नेल ड्राइवर

  1. tokendriv/tokendrv/tokendrv.slnx खोलें
  2. कॉन्फ़िगरेशन: Release / x64
  3. निर्माण → tokendriv/tokendrv/x64/Release/tokendrv.sys उत्पन्न होता है
  4. स्टैंडअलोन तैनाती: केवल .sys फ़ाइल को VM पर कॉपी करें

WDK स्थापित करने के बाद, Project Properties → Driver Settings → Target OS Version सत्यापित करें

2. exploitWithDriv.exe — उपयोगकर्ता-मोड एक्सप्लॉइट

  1. exploit/exploitWithDriv.slnx खोलें
  2. कॉन्फ़िगरेशन: Release / x64
  3. Project Properties → Linker → System → SubSystem: Console
  4. निर्माण → exploit/x64/Release/exploitWithDriv.exe उत्पन्न होता है
  5. स्टैंडअलोन तैनाती के लिए (Visual C++ Redistributable की आवश्यकता नहीं):
    • C/C++ → Code Generation → Runtime Library: Multi-threaded (/MT)

VM पर चलाना

पूर्वापेक्षाएँ

  • VM RAM: 2 GB या उससे कम (SepTokenSidSharingEnabled सक्रिय करने के लिए आवश्यक)
  • परीक्षण खाता: test / 1234 (स्थानीय खाता, व्यवस्थापक अधिकारों की आवश्यकता नहीं)
  • कर्नेल डिबगिंग कनेक्शन (वैकल्पिक, विश्लेषण के लिए आवश्यक)
  • व्यवस्थापक cmd

ड्राइवर लोड करें

root@kitploit:~
sc create tokendriv type= kernel binpath= "C:\path\to\tokendrv.sys"
sc start tokendriv

सत्यापित करें कि ड्राइवर चल रहा है:

root@kitploit:~
sc query tokendriv

स्थिति RUNNING होनी चाहिए।

एक्सप्लॉइट चलाएँ

root@kitploit:~
exploitWithDriv.exe

निष्पादन प्रवाह:

  1. FullNumberOfPhysicalPages जाँचें (0x83400 से कम या बराबर होना चाहिए)
  2. LogonUser("test", ".", "1234") → hSource प्राप्त करें
  3. रेस लूप शुरू करने के लिए Enter दबाएँ (100,000 पुनरावृत्तियाँ)
  4. प्रत्येक पुनरावृत्ति: REPLACE → TRIGGER → NtDuplicateToken → Sleep(1)

रेस स्थिति विश्लेषण (WinDbg KD)

1. लक्ष्य प्रक्रिया पता प्राप्त करें

root@kitploit:~
0: kd> !process 0 0 exploitWithDriv.exe

उदाहरण आउटपुट:

root@kitploit:~
PROCESS ffffa88f5e61e080
    SessionId: 1  Cid: 1234    Peb: ...  ParentCid: ...
    Image: exploitWithDriv.exe

ffffa88f5e61e080 EPROCESS पता है।

2. ब्रेकपॉइंट सेट करें

नीचे दिए गए पते पर्यावरण के अनुसार भिन्न हो सकते हैं — वास्तविक कर्नेल प्रतीकों से पुष्टि करें।

A. SID Block RefCount वृद्धि (रेस विंडो प्रारंभ)

root@kitploit:~
0: kd> bp fffff800`725c6114 ".if (@$proc == 0xffffa88f5e61e080) { .echo A_REFCNT_INCR; dq poi(@rsi+0x468)+8 L1; gc } .else { gc }"
  • TOKEN+0x468 पर SID Values Block के RefCount (+0x8) को प्रिंट करता है
  • जिस क्षण मान 1 → 2 में बदलता है, वह रेस विंडो है

B. UAF पठन बिंदु

root@kitploit:~
0: kd> bp fffff800`726f51fb ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_READ; r rax,rdx; gc } .else { gc }"
  • वह बिंदु जहाँ मुक्त किए गए ब्लॉक को पढ़ा जाता है
  • rax, rdx मान जाँचें

C. UAF लेखन बिंदु

root@kitploit:~
0: kd> bp fffff800`726f5208 ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_WRITE; r rcx,rdx,rax; gc } .else { gc }"
  • वह बिंदु जहाँ मुक्त किए गए ब्लॉक को लिखा जाता है
  • भ्रष्टाचार के लिए rcx, rdx, rax जाँचें

3. रेस समय प्रवाह

root@kitploit:~
NtDuplicateToken प्रविष्टि
    └─ SeTokenCanImpersonate
        └─ SID Block RefCount: 1 → 2        ← bp A (A_REFCNT_INCR)
                                              ← कर्नेल थ्रेड: ExFreePoolWithTag(pBlock)
    └─ SepDereferenceSidValuesBlock
        └─ pBlock को डीरेफरेंस (पढ़ना)    ← bp B (REAL_UAF_READ)
        └─ pBlock को डीरेफरेंस (लिखना)    ← bp C (REAL_UAF_WRITE)

4. विश्लेषण युक्तियाँ

  • यदि A_REFCNT_INCR प्रिंट होने के तुरंत बाद RefCount 2 है, तो रेस विंडो सफलतापूर्वक प्रविष्ट हुई
  • यदि REAL_UAF_READ / REAL_UAF_WRITE दिखाई देते हैं, तो वास्तविक UAF की पुष्टि होती है
  • पूल टैग 'kcoB' के साथ आवंटित ब्लॉक ट्रैक करें: !pool <addr> या !poolused

मुख्य ऑफ़सेट (Windows 11 24H2)

संरचनाऑफ़सेटफ़ील्ड
_TOKEN+0x468SepSidValues (SID Values Block पॉइंटर)
SID Values Block+0x000Length (ULONG)
SID Values Block+0x008ReferenceCount (LONGLONG)

ड्राइवर अनलोड करें

root@kitploit:~
sc stop tokendriv
sc delete tokendriv


CVE-2025-62215 — Windows Token UAF (SepTokenSidSharingEnabled 레이스 컨디션)

개요

Windows 커널의 SepTokenSidSharingEnabled 최적화 경로에서 발생하는 Use-After-Free 취약점 PoC.

  • NtDuplicateToken 내부에서 SID Values Block의 RefCount가 1→2로 증가하는 순간, 레이스를 걸어 커널 스레드가 해당 블록을 ExFreePoolWithTag로 해제한다.
  • 이후 SepDereferenceSidValuesBlock이 해제된 블록에 다시 접근 → UAF / Double Free.
root@kitploit:~
[User]  IOCTL_REPLACE_SID_BLOCK  →  TOKEN+0x468 에 RefCount=1 독립 블록 배치
[User]  IOCTL_TRIGGER_FREE       →  커널 스레드 시작 (RefCount==2 폴링 대기)
[User]  NtDuplicateToken         →  내부에서 RefCount 1→2
[Kernel Thread] RefCount==2 감지 → ExFreePoolWithTag(pBlock)  ← UAF 지점

구성 파일

경로설명
exploit/exploitWithDriv/exploitWithDriv.cpp유저모드 익스플로잇 (콘솔 앱)
tokendriv/tokendrv/tokendrv/tokendrv.cpp커널 드라이버 (IOCTL 인터페이스 제공)

빌드 방법 (Visual Studio)

공통 사전 조건

  • Visual Studio 2022 (MSVC)
  • Windows Driver Kit (WDK) — tokendriv 빌드 시 필요
  • SDK 10.0.26100.x 이상

1. tokendriv.sys — 커널 드라이버

  1. tokendriv/tokendrv/tokendrv.slnx 열기
  2. 구성: Release / x64
  3. 빌드 → tokendriv/tokendrv/x64/Release/tokendrv.sys 생성
  4. 독립 실행 배포: .sys 파일 하나만 VM으로 복사하면 됨

WDK 설치 후 프로젝트 속성 → Driver Settings → Target OS Version 확인

2. exploitWithDriv.exe — 유저모드 익스플로잇

  1. exploit/exploitWithDriv.slnx 열기
  2. 구성: Release / x64
  3. 프로젝트 속성 → Linker → System → SubSystem: Console
  4. 빌드 → exploit/x64/Release/exploitWithDriv.exe 생성
  5. 독립 실행 배포: Visual C++ Redistributable 없이 동작하도록
    • C/C++ → Code Generation → Runtime Library: Multi-threaded (/MT) 으로 설정

VM 실행 방법

사전 조건

  • VM RAM: 2 GB 이하 (SepTokenSidSharingEnabled 활성화 조건)
  • 테스트 계정: test / 1234 (로컬 계정, 관리자 권한 불필요)
  • Kernel Debugging 연결 (선택, 분석 시 필요)
  • 관리자 권한 cmd

드라이버 로드

root@kitploit:~
sc create tokendriv type= kernel binpath= "C:\path\to\tokendrv.sys"
sc start tokendriv

드라이버 로드 확인:

root@kitploit:~
sc query tokendriv

RUNNING 상태이면 정상.

익스플로잇 실행

root@kitploit:~
exploitWithDriv.exe

실행 흐름:

  1. FullNumberOfPhysicalPages 체크 (0x83400 이하여야 진행)
  2. LogonUser("test", ".", "1234") → hSource 획득
  3. Enter 입력 시 레이스 루프 100,000회 시작
  4. 각 이터레이션: REPLACE → TRIGGER → NtDuplicateToken → Sleep(1)

Race Condition 분석 (WinDbg KD)

1. 분석 대상 프로세스 주소 확인

root@kitploit:~
0: kd> !process 0 0 exploitWithDriv.exe

출력 예시:

root@kitploit:~
PROCESS ffffa88f5e61e080
    SessionId: 1  Cid: 1234    Peb: ...  ParentCid: ...
    Image: exploitWithDriv.exe

ffffa88f5e61e080 부분이 EPROCESS 주소.

2. 브레이크포인트 설정

아래 주소는 환경마다 다를 수 있으므로 실제 커널 심볼로 확인 후 사용.

A. SID Block RefCount 증가 지점 (레이스 윈도우 시작)

root@kitploit:~
0: kd> bp fffff800`725c6114 ".if (@$proc == 0xffffa88f5e61e080) { .echo A_REFCNT_INCR; dq poi(@rsi+0x468)+8 L1; gc } .else { gc }"
  • TOKEN+0x468 에 있는 SID Values Block의 RefCount(+0x8)를 출력
  • 값이 1 → 2로 바뀌는 순간이 레이스 윈도우

B. UAF Read 지점

root@kitploit:~
0: kd> bp fffff800`726f51fb ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_READ; r rax,rdx; gc } .else { gc }"
  • 해제된 블록을 읽는 지점
  • rax, rdx 값 확인

C. UAF Write 지점

root@kitploit:~
0: kd> bp fffff800`726f5208 ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_WRITE; r rcx,rdx,rax; gc } .else { gc }"
  • 해제된 블록에 쓰는 지점
  • rcx, rdx, rax 값으로 오염 여부 확인

3. 레이스 타이밍 흐름

root@kitploit:~
NtDuplicateToken 진입
    └─ SeTokenCanImpersonate
        └─ SID Block RefCount: 1 → 2        ← bp A (A_REFCNT_INCR)
                                              ← 커널 스레드: ExFreePoolWithTag(pBlock)
    └─ SepDereferenceSidValuesBlock
        └─ pBlock 역참조 (읽기)              ← bp B (REAL_UAF_READ)
        └─ pBlock 역참조 (쓰기)              ← bp C (REAL_UAF_WRITE)

4. 분석 팁

  • A_REFCNT_INCR 출력 직후 RefCount가 2이면 레이스 윈도우 진입 성공
  • REAL_UAF_READ / REAL_UAF_WRITE 이 출력되면 실제 UAF 발생 확인
  • Pool tag 'kcoB' 로 할당된 블록 추적: !pool <addr> 또는 !poolused

주요 오프셋 (Windows 11 24H2 기준)

구조체오프셋필드
_TOKEN+0x468SepSidValues (SID Values Block 포인터)
SID Values Block+0x000Length (ULONG)
SID Values Block+0x008ReferenceCount (LONGLONG)

드라이버 제거

root@kitploit:~
sc stop tokendriv
sc delete tokendriv
टूल डाउनलोड करें