인프런 커뮤니티 질문&답변

n1net4il님의 프로필 이미지
n1net4il

작성한 질문수

리눅스 커널 해킹. A부터 Z까지

Kernel Stack Pivoting 질문 (SMAP bypass)

해결된 질문

작성

·

2K

0

안녕하세요!

우선 좋은 강의 감사드리며, 잘 듣고 있습니다 :)

다름이 아니라 Kernel Stack Pivoting 강의에서 SMEP만 적용되어 있는 환경에서는 가젯을 사용하여 유저 공간으로 rsp를 이동시킨 뒤 해당 주소에 fake stack을 생성하여 Kernel ROP를 통해 권한 상승을 일으킬 수 있지만, SMAP가 적용되어 커널 모드에서 유저 공간으로의 접근이 아예 차단되어 있는 환경에서는 위 방법이 아닌 조금 더 복잡한 방법을 사용해야 한다고 하셨습니다.

이 부분에서 SMAP이 적용되어 있는 환경에서는 Kernel Stack Pivoting을 어떤 방법으로 사용하여 권한 상승을 일으키는지 궁금하게 되어 이렇게 질문을 남기게 되었습니다. 

감사합니다.

답변 2

0

n1net4il님의 프로필 이미지
n1net4il
질문자

좋은 답변 감사합니다 :)

해당 부분 더 공부해보도록 하겠습니다.

0

김현우님의 프로필 이미지
김현우
지식공유자

안녕하세요.

사실 smap에서의 피봇팅은 특정한 테크닉이 따로 있다기 보단, 주어진 상황에서 발생하는 '여러 개'의 취약점들을 체이닝해서 우회가 가능합니다.

간단히 예시를 들자면,

1) 슬랩 객체의 FP를 덮을 수 있고,

2) 원하는 주소로 피봇팅할 수 있는 가젯 혹은 함수를 찾았고,

3) 컨트롤이 가능한 '커널 공간'에 ROP payload를 쓸 수 있을 때 ex) 물리메모리 관련 영역

컨트롤이 가능한 공간에 ROP payload를 쌓고, 해당 영역으로 피봇팅을 진행하면, ROP payload가 있는 공간은 '커널 공간' 이기 때문에 smap의 영향을 받지 않고 피봇팅이 가능합니다.

더 구체적인 내용은  따로 찾아보시면서 공부해보시길 추천드립니다.

감사합니다.

n1net4il님의 프로필 이미지
n1net4il

작성한 질문수

질문하기