미친해커

[Windows] Windows 10 Kernel Debugging 환경 준비 본문

Windows/Windows Kernel Driver

[Windows] Windows 10 Kernel Debugging 환경 준비

미친해커 2022. 9. 20. 22:34
반응형

Install WinDbg

윈도우 커널 디버깅은 우리가 일반적으로 알고 있는 x64dbg와 같은 디버거로는 디버깅할 수 없다. 윈도우에서 제작한 WinDbg를 사용해 디버깅할 수 있다.

 

기본적으로 WinDbg는 두 종류가 있는데 하나는 SDK에서 설치할 수 있는 디버거와 Microsoft Store에서 다운로드할 수 있는 디버거이다. 본문에서는 Microsoft Store에 있는 WinDbg Preview를 기준으로 설명하겠다.

 

WinDbg Preview는 Microsoft Store에서 "Windbg" 키워드로 검색하면 바로 다운로드 받을 수 있다.

Set the symbol path and server

이제 디버거의 심볼 패스와 서버를 설정해야 한다. 윈도우 커널을 디버깅하면서 필요한 디버깅 심볼들이 필요하기 때문이다. 디버깅 심볼이 존재하지 않으면 그건 윈도우 자체를 아무것도 없이 리버싱하는 것과 마찬가지다.

[파일] -> [Settings] -> [Debugging settings] -> [Default symbol path]SRV*c:\dbgsymbols*http://msdl.microsoft.com/download/symbols로 설정하면 된다.

Set the Windows Debug Mode

이제 윈도우를 디버그 모드로 부팅할 수 있도록 설정해줘야 한다. 다음과 같은 절차를 따라오면 된다.

bcdedit /dbgsettings net hostip:192.168.64.135 port:50000 /* 포트는 자유이지만 대개 50000를 쓰는 듯 하다 */
bcdedit /set bootmenupolicy legacy
bcdedit /copy {current} /d "Windows 10 [Debug, F8]"
bcdedit /debug {GUID} on /* {GUID}는 위 명령어를 입력시 출력됨 */

IP, Port, Key를 WinDbg에 입력하고 [OK] 버튼을 클릭한다.

[OK] 버튼을 클릭하면 아래 사진과 같이 IPv4를 사용하여 커널 디버깅을 위해 클라이언트가 연결될 때까지 대기하는 것을 확인할 수 있다.

Windows Booting the Debug Mode

Windbg가 커널 디버깅을 위해 대기중이라면 디버그 모드를 설정했던 윈도우를 재부팅시켜준다. 그럼 이번엔 아래와 같은 부팅화면을 볼수 있다.

아래 우리가 새롭게 추가한 부팅 옵션을 선택하고 F8 키를 눌러준다. 여기에서 디버깅 모드를 선택하면 자동으로 디버깅 모드로 부팅된다.

모두 정상적으로 설정하였다면 디버깅 모드로 부팅을 선택한 후 대기하다보면 WinDbg가 연결되는 것을 확인할 수 있다.

Success Windows Kernel Debugging (Attack to Kernel)

 

반응형
Comments