윈도우

dll injection시 session 0 isolation우회

youngsouk 2019. 10. 29. 13:52

windows kernel버전이 6이상이면 시스템 프로세스는 seession id가 0으로 셋팅되고 user seesion id가 1부터 시작하게 된다. 그리고 CreateRemoteThread() 에서는 session 0의 프로그램을 대상으로 한다면 오류를 내뱉게 된다. 이것을 우회하기 위해서는 NtCreateThreadEx()를 이용하면 된다. 

 

p.s os 버전에 관한 정보는 GetVersionEx()함수를 이용하여 dwMajorVersion을 통해 커널 버전을 확인할 수 있다.