오늘은 HEVD (HackSystems Extreme Vulnerable Driver) 풀이를 위해, 환경 세팅하는 과정을 적어두었다.
여러번의 환경 구축 시도 끝에, 현 시점(2023년) 가장 쉬운 환경 구축 방법을 알아내었으니, 다른 분들은 이 글을 보고 많은 도움을 얻길 바란다.
이 방법을 사용하면, Debugger VM과 Debuggee VM 두 개를 Clone해서 설치하지 않고 Host와 Debuggee VM만 있다면 원활한 커널 디버깅이 가능하게 된다. 굳이 HEVD를 분석하는 목적이 아니더라도, 기타 드라이버를 분석할 때 이 글에 적혀있는대로 환경 구성을 하면 쉽게 될 것이다...!
필요한 준비물은 다음과 같다.
- HEVD : https://github.com/hacksysteam/HackSysExtremeVulnerableDriver
- Host
- Debuggee VM (여기서는 Windows 7 x86 VM)
- VirtualKD-Redux : https://github.com/4d61726b/VirtualKD-Redux
- VMWare Workstation Pro
===
먼저, Debuggee VM을 잘 설치해준 뒤부터 이 글을 참고하면 되겠다.
VirtualKD-Redux를 다운로드 받고 압축을 해제하면, 다음과 같은 파일 구성을 볼 수 있다.

VirtualBox와 관련된 건 나와 해당되지 않으니 상관하지 않고, vmmon64.exe와 target 폴더에 대해 설명하겠다.
디버깅 하고 싶은 Debuggee VM이 32비트 일경우 target32 폴더를 해당 VM에 복사한다. 64비트라면, target64 폴더를 해당 VM에 복사한다.

복사하면 위와 같이 vminstall.exe 파일이 보인다. 이 파일을 실행한다.

Install을 눌러준다 (Windows 10 이상의 경우 체크박스 하나 더 체크해주어야 한다.)
재부팅 후, Boot option에서 VKD-Redux 가 표시된 옵션이 하나 추가된 것을 확인할 수 있다.
그 전에, vmx 패치를 위해 Host에서 vmxpatch64.exe를 실행한다.

원하는 VM의 번호를 입력하면 바로 패치가 된다.
이제 아래 화면으로 다시 돌아온다.

여기서 F8 단축키를 눌러 아래 화면에 진입한다.

'Disable Driver Signature Enforcement' 옵션으로 부팅한다. (엔터)

아마 이 화면에서 멈춰있을 텐데, 지극히 정상이다. 이제 vmmon64.exe를 실행할 시간이다.

커널 디버거가 제대로 붙었다. 이제 Go를 누르면 부팅이 될 것이다. 정말 간편한 커널 디버깅 환경이 아닐 수 없다.
한 번 설정시, 이렇게 계속 디버깅이 가능하다. 이제 Boot option에서 기존 Windows 7를 선택한 뒤, OSRLoader를 통해 HEVD를 설치한 후에 다시 이렇게 디버깅 세션으로 들어가주면 되는데, 이 과정은 다른 곳에서도 많이 나와있으니 생략하도록 하겠다.
다음 포스팅에서는 HEVD - 2. Stack Overflow (in Windows 7 x86) 을 포스팅하도록 하겠다.