inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Kernel Stack Pivoting 질문 (SMAP bypass)

해결된 질문

2085

n1net4il

작성한 질문수 1

0

안녕하세요!

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

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

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

감사합니다.

모의해킹 linux 시스템 해킹

답변 2

0

n1net4il

좋은 답변 감사합니다 :)

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

0

김현우

안녕하세요.

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

간단히 예시를 들자면,

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

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

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

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

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

감사합니다.

강의 들으며 정리한 글을 블로그에 공개로 올려도 될까요?

0

68

2

cred 구조체에 __randomize_layout이 적용된건가요?

0

79

1

ppt자료 문의

0

104

2

빌드환경 및 커널소스의 버전

0

131

1

Stack based BOF 강의에서 질문입니다.

0

175

2

kaslr 우회 기법에서 commit_creds, prepare_kernel_cred의 offset을 구하는 과정 질문

0

211

1

CTF 참가 시 전문 분야

0

312

1

SMAP 우회에서 궁금한게 하나 있습니다.

0

402

2

KADR 우회에서 init파일이 없는 경우는 어떻게 하나요?

0

461

1

KADR 우회에서 init파일이 없는 경우는 어떻게 하나요

0

310

1

여전히 해결책 없는 build_result

0

423

1

KASLR 강의에서 주어진 환경에서는 /proc/kallsyms 확인 못하는 것이 맞나요?

0

602

1

build_result가 안보입니다

0

285

1

kernel stack pivoting에서 gadget 관련 질문드립니다.

0

501

1

안녕하세요 수강중 궁금한 것이 있습니다.

0

570

2

pwndbg가 커널에 attach는 되는데 디스어셈코드나 레지스터 표시가 안됩니다.

0

579

1

가젯에 대해 이해가 잘 안됩니다.

0

604

1

Kernel KPTI 적용시 영향?

0

652

1

qemu 스크립트 실행시 Kernel panic이 발생합니다.

0

878

2

Kernel UAF

0

646

1

디버깅 방법

0

929

3

강의 자료 문의

0

374

1

boot.sh 실행시

0

360

1

Kernel Debugging

0

409

1