
dbutil_2_3.sys의 임의 커널 읽기/쓰기, nt authority/system으로의 로컬 권한 상승 개념 증명
시스템 cmd를 실행하여 LPE를 위한 CVE-2021-21551 악용 PoC
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-21551
서명된 Dell Windows 드라이버(dbutil_2_3.sys)에서 발견된 문제로, 전체 로컬 시스템이 손상될 수 있습니다. 드라이버의 ioctl 디스패치 루틴은 사용자 제공 버퍼에 대한 검증이 부족합니다.
누구든지 핸들을 생성하고 Windows 보안 모델을 위반하는 다음 ioctl 코드에 ioctl 요청을 보낼 수 있습니다:
이 PoC는 각각 임의의 커널 메모리 읽기/쓰기를 위해 0x9b0c1ec4/0x9b0c1ec8 ioctl 코드를 악용합니다. 먼저 커널에서 _PsInitialSystemProcess_를 찾아 시스템 토큰을 얻은 다음 이 토큰을 현재 프로세스 EPROCESS 구조체에 씁니다. 컴파일하기 전에 https://www.vergiliusproject.com/ 을 사용하여 EPROCESS 오프셋을 업데이트하여 BSOD를 방지하세요.
DWORD EPROCESS_ActiveProcessLinks = 0x2e8;
DWORD EPROCESS_Token = 0x348;
Visual Studio를 사용하여 컴파일합니다(Windows 헤더 필요). Ntdll SDK 헤더: https://github.com/mathisvickie/segy-software/blob/main/external/ntdll.h
다음에서 테스트됨:
성공적인 익스플로잇은 시스템 cmd를 실행합니다. 버그체크 _PAGE_FAULT_IN_NONPAGED_AREA_가 발생하면 오프셋이 잘못되었을 가능성이 높습니다. 샘플 출력:
