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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-1732 — CVE-2021-1732에 대한 기술 분석 및 개념 증명 익스플로잇으로, win32kfull의 Windows 커널 권한 상승 취약점을 tagWND 조작을 통해 악용하는 방법을 시연합니다. | Kitploit
도구/GitHubGitHub/beneficialcode/cve-2021-1732
Privilege EscalationVulnerability AnalysisExploitationBinary Exploitation
GitHubbeneficialcode/cve-2021-1732

CVE-2021-1732

CVE-2021-1732에 대한 기술 분석 및 개념 증명 익스플로잇으로, win32kfull의 Windows 커널 권한 상승 취약점을 tagWND 조작을 통해 악용하는 방법을 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-1732

  • 취약점은 Windows 그래픽 드라이버 win32kfull!NtUserCreateWindowEx 함수에서 커널 콜백 시 사용자 모드 메모리 할당과 tagWND->flag 속성 설정 간 동기화 문제로 인해 발생합니다. 이를 통해 tagWND->offset 값을 위조하여 메모리 경계를 초과 접근할 수 있습니다.
  • 드라이버 win32kfull.sys가 NtUserCreateWindowEx를 호출하여 창을 생성할 때 tagWND->cbWndExtra(창 인스턴스의 추가 할당 메모리 크기)를 확인합니다. 이 값이 비어 있지 않으면 win32kfull!xxxClientAllocWindowClassExtraBytes 함수를 호출하여 사용자 계층 user32.dll!__xxxClientAllocWindowClassExtraBytes로 콜백하여 공간을 할당합니다. 할당된 주소는 NtCallbackReturn 함수로 스택을 수정한 후 커널 계층으로 반환되어 저장되고 계속 실행됩니다. 그러나 tagWND->flag 값에 0x800 속성이 포함되면 저장된 값이 offset으로 변환됩니다.
  • 공격자는 user32.dll!_xxxClientAllocWindowClassExtraBytes 함수를 후킹하여 NtUserConsoleControl을 호출하고 tagWND->flag에 0x800 속성 값을 포함시킨 후 NtCallbackReturn을 사용하여 사용자 정의 값을 커널의 tagWND->offset에 반환할 수 있습니다.
  1. 취약점은 Windows 그래픽 드라이버 win32kfull!NtUserCreateWindowEx에서 발생합니다.
  2. 드라이버 win32kfull.sys가 NtUserCreateWindowEx를 호출하여 창을 생성할 때 tagWND->cbWndExtra(창 인스턴스의 추가 할당 메모리 크기)를 확인합니다. 이 값이 비어 있지 않으면 win32kfull!xxxClientAllocWindowClassExtraBytes 함수를 호출하여 사용자 계층 user32.dll!__xxxClientAllocWindowClassExtraBytes로 콜백하여 메모리를 생성합니다. 할당된 주소는 NtCallbackReturn 함수로 스택을 수정한 후 커널 계층으로 반환되어 저장되고 계속 실행됩니다. 그러나 tagWND->flag 값에 0x800 속성이 포함되면 해당 값이 offset으로 처리됩니다.
  3. NtUserConsoleControl을 사용하여 flag에 0x800 속성을 포함시킵니다.

17763:[[gpKernelHandleTable] + 0x18 * ((hwnd->cx * [gSharedInfo+0x10]) >> 5)]

NtUserConsoleControl을 호출하면 tagWND->offset과 tagWND->flag 값에 0x800 속성이 다시 설정된다고 언급되어 있습니다. flag 값에 0x800 속성이 포함되면 offset으로 주소를 지정합니다. 현재 NtUserConsoleControl을 호출하는 목적은 tagWND->flag 값에 0x800 속성을 포함시키는 것이며, 그런 다음 NtCallbackReturn 함수를 호출하여 지정된 값을 반환함으로써 tagWND->offset을 다시 수정하는 것입니다. 왜냐하면 win32kfull!xxxClientAllocWindowClassExtraBytes는 반환 값을 tagWND->offset에 넣기 때문입니다.

+0x058 KernelCallbackTable : 0x00007ffb0e9d1070 Void

00007ffb0e9d1448`

도구 다운로드