[Kernel] ret2usr

sangjun

·

2021. 7. 20. 23:19

 

Ret2usr

조건 : SMEP, SMAP 보호기법이 걸려있지 않을 때 사용가능하다.

Kernel Space에서 LPE를 일으켜 권한을 상승한 뒤 --> User Space에 있는 /bin/sh를 실행하는 코드 영역으로 쫨프하는 것

 

 

페이로드

1. commit_creds(prepare_kernel_cred(0))

--> 권한 상승

2. swapgs

3. rsp를 유저공간 스택으로 전환

4. iretq

 

 

주의할점 : 페이로드를 보내기 전에 backup_rv()함수를 통해 현재 레지스터 레이아웃 저장해놓기.

             즉, 현재 스택이랑 레지스터 정보를 저장해놔야 권한 상승후 돌아올 주소를 알 수 있다.