CVE-2020-12928은 AMD Ryzen Master의 특정 버전에서 발견된 권한 상승 취약점이다.
공부를 위해 다음 게시물을 참조했다. 또한 IDA와 Ghidra를 번갈아 가며 사용해서 각각의 함수마다 더 분석하기 쉬운 도구를 취사선택했다.
https://hackyboiz.github.io/2021/07/14/l0ch/windows-driver-part2/
hackyboiz
hack & life
hackyboiz.github.io
DriverEntry를 확인하게 되면 DriverObject와 RegistryPath를 인자로 가져오게 된다.
DriverObject가 설정되지 않는 경우 함수 sub_14000440C를 실행하는 것을 볼 수 있다.
해당 함수에서 인자를 가지고 WDM을 이용하여 드라이버 설정을 초기화 하기 위해 함수를 호출 하는 것을 볼 수 있다.
이후 포인터로 함수의 주소를 저장되는 함수를 확인 해 보면
해당 함수 내에서 디스패치 루틴을 등록하는것을 예측할 수 있다.
여기에서 해당 취약점에서 권한 상승을 위해 사용된 함수인 MmMapIoSpace를 찾게되면
여기서 MmMapIoSpace는
PhysicalAddress부터 NumberOfBytes만큼을 쓰기 가능하도록 할당하는 커널함수이다.
이를 토대로 위의 sub_140007144함수를 통해 커널영역 메모리 쓰기가 가능하다. 그리고 이 sub_140007144는
다음과 같이 IOCTL코드가 0x81112F0C일때 해당 함수를 호출한다.