Kernel UAF
안녕하세요!
kernel uaf 강의를 듣고 궁금한 점이 있는데요,
kernel uaf 예제 취약점을 공격할 때, kmalloc에 별다른 크기 조정을 안하고 드라이버에 지정된 0x90크기로 heap을 할당하고 해제하는 것으로 cred 구조체가 해제된 자리를 사용해서 dangling pointer가 그 영역을 가리킬 수 있었던 것은 cred 구조체의 크기가 0x90 이거나 그보다 작아서 인가요??
그리고 추가적으로 혹시 cred 구조체의 크기를 구할 수 있는 방법이 있을까요??
좋은 강의 감사합니다!!
Answer 1
1
안녕하세요.
cred overwrite 기법을 사용할 수 있는 커널 버전에서는, cred와 동일한 크기에 속하는 kmalloc-N 슬랩 캐시의 객체를 이용해 UAF를 트리거할 수 있습니다.
또, 커널 구조체의 크기는 커널 버전마다 다르기 때문에 이를 확인하려면 pahole을 사용해야 합니다.
https://manpages.ubuntu.com/manpages/impish/man1/pahole.1.html
위의 설명대로 pahole을 이용해 cred 구조체의 크기를 구할 수 있습니다.
감사합니다.
강의 들으며 정리한 글을 블로그에 공개로 올려도 될까요?
0
73
2
cred 구조체에 __randomize_layout이 적용된건가요?
0
81
1
ppt자료 문의
0
106
2
빌드환경 및 커널소스의 버전
0
134
1
Stack based BOF 강의에서 질문입니다.
0
178
2
kaslr 우회 기법에서 commit_creds, prepare_kernel_cred의 offset을 구하는 과정 질문
0
215
1
CTF 참가 시 전문 분야
0
314
1
SMAP 우회에서 궁금한게 하나 있습니다.
0
404
2
KADR 우회에서 init파일이 없는 경우는 어떻게 하나요?
0
463
1
KADR 우회에서 init파일이 없는 경우는 어떻게 하나요
0
312
1
여전히 해결책 없는 build_result
0
426
1
KASLR 강의에서 주어진 환경에서는 /proc/kallsyms 확인 못하는 것이 맞나요?
0
605
1
build_result가 안보입니다
0
287
1
kernel stack pivoting에서 gadget 관련 질문드립니다.
0
504
1
안녕하세요 수강중 궁금한 것이 있습니다.
0
572
2
pwndbg가 커널에 attach는 되는데 디스어셈코드나 레지스터 표시가 안됩니다.
0
581
1
가젯에 대해 이해가 잘 안됩니다.
0
606
1
Kernel KPTI 적용시 영향?
0
655
1
qemu 스크립트 실행시 Kernel panic이 발생합니다.
0
880
2
디버깅 방법
0
931
3
강의 자료 문의
0
377
1
boot.sh 실행시
0
363
1
Kernel Debugging
0
412
1
./boot_sh를 통해 qemu-script 실행 시 커널 실행이 안됩니다.
0
375
3

