카테고리 없음

드라이버 CVE 분석

eulb 2024. 12. 6. 04:19

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일때 해당 함수를 호출한다.