hevd는 windows7과 windows 10 x64에서 테스트 가능하며,
나는 windows7로 진행하였다.
분석을 위해 커널 메시지가 출력되도록 설정
kd> ed nt!Kd_Default_Mask 8
kd> g
mincore\com\oleaut32\dispatch\ups.cpp(2128)\OLEAUT32.dll!75685072: (caller: 7568FE4F) ReturnHr(1) tid(d14) 8002801D 라이브러리가 등록되지 않았습니다.
디버기에서도 dbgprint 툴을 이용하여 커널 메시지를 출력할 수 있도록 설정
Capture - Capture Kernel
github - HEVD에서 드라이버를 다운로드 받은 뒤, 서비스에 등록 및 시작
(혹은 HEVD 빌드시 주의사항의 설정을 참고하여 직접 드라이버를 빌드해도 된다.)
C:\WINDOWS\system32>sc create HEVD type= kernel binpath= "C:\Users\j\Downloads\HEVD.3.00\driver\vulnerable\x86\HEVD.sys"
[SC] CreateService 성공
C:\WINDOWS\system32>sc start HEVD
로드된 모듈에서 HEVD 드라이버 확인
kd> lm m H*
Browse full module list
start end module name
...
...
c35b0000 c35fa000 HEVD (deferred)
symbols를 로드한 후에, HEVD의 함수 목록 출력해보기
!sym noisy
.reload
x HEVD!*
exploit이 제대로 동작하는지 확인해본다.
HEVD의 exploiter를 실행
현재 권한 확인
C:\Users\j\Downloads\HEVD.1.20\exploit>whoami
desktop-tnpvi0r\j
Pool Overflow
옵션으로 exploit를 실행
관리자 권한의 cmd가 실행되었음
소스를 받아서 직접 빌드할 때
다음과 같은 프로젝트 설정이 필요하다.
C/C++]
Warining Level : Level3 (/W3)
Treat warning : No (/WX-)
Disable Security Check : (/GS-)
Linker]
Treat warning : No (/WX-)
Driver Sigining]
Test Certificate : create certificate
이후 반드시 저장