
📟 CVE-2023-38817을 사용하여 커널 모드 읽기/쓰기를 수행하는 초소형 코드입니다.

이 코드는 서명된 취약한 드라이버를 이용해 사용자 모드에서 커널 모드 메모리를 읽고 쓸 수 있는 기능을 제공합니다. 커널 모드에서 문서화되지 않았지만 가장 흔한 API 중 하나인 MmCopyVirtualMemory를 사용하여, 메모리 페이지의 보호 속성에 신경 쓸 필요 없이 모든 사용자 모드 메모리를 읽고 쓸 수 있습니다. 그 외에도 주어진 pid의 프로세스 핸들을 얻는 부가 기능이 있습니다. 핸들 생성이 커널 모드에서 수행되므로 표준 접근 검사와 콜백은 작동하지 않을 것이라고 생각합니다.
이 프로젝트는 학습 목적으로 만들어졌으며, 가상 머신 밖에서 사용하는 것은 권장되지 않습니다.
uc forum에서 이 특정 드라이버에 권한 상승 취약점이 있다는 것을 보았습니다. 그래서 직접 드라이버를 리버싱하기 시작했고, 실제로 이 드라이버는 강력한 ioctl에 대한 접근 제어가 없었습니다.
이 프로젝트는 CVE-2023-38817로 보고된 취약점을 활용합니다. https://www.loldrivers.io/drivers/afb8bb46-1d13-407d-9866-1daa7c82ca63/
제대로 구현하기엔 너무 게을러서 모든 것을 포함하고 컴파일만 하면 됩니다. 모든 기능은 kur_t 클래스에 캡슐화되어 있습니다.
https://github.com/pseuxide/kur/blob/cd3da42b8a146af3ca83d5f95970b030bd55585f/kur/kur.h#L5-L14