[Kernel] QWB CTF 2018 - core (ret2usr) 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[Kernel] QWB CTF 2018 - core (ret2usr)

문제소스 https://github.com/ctf-wiki/ctf-challenges/tree/master/pwn/kernel/QWB2018-core 보호기법 Canary : Yes KASLR : Yes 문제 분석 및 페이로드 일단 이 문제는 KASLR 보호기법만 걸려있기 때문에 ret2usr로 익스플로잇이 가능하다. ret2usr에서 기본적인 순서는 이렇다. 1. commit_creds(prepare_kernel_cred(0))을 호출 (함수의 주소는 /tmp/kallsyms파일을 읽어서 위치를 알 수 있다) --> init파일을 보면 일반 유저도 우회하여 kallsyms를 읽을 수 있게 해두었다. 2. trap_frame구성 3. iretq을 통해 유저모드의 코드를 실행 커널 문제는 포너블 문제처럼 ..

2021.07.25 게시됨

[Kernel] Kernel공부를 위한 커널문제 모음 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[Kernel] Kernel공부를 위한 커널문제 모음

문제소스 ㅎㅎ커널공부 3일차..인프런 강의 다 듣고 첫 커널 문제들 클리어했다. 커널 공부할 때 처음에 모듈 소스들도 이해 못 했었는데 인프런 강의 듣고 정말 괜찮아졌다. 인프런 강의 정말 굳 공부할 때도움 많이 된거 같았다.. 이제 자신감도 얻었으니 본격적으로 CTF랑 워게임들에 나오는 커널문제들을 난이도순으로 차근차근 풀어나갈 것이다. 커널 문제들이 구하기 어려워 이 페이지에 구해놓고 문제들을 하나하나 풀어보겠다. + 팁 https://applemasterz17.tistory.com/231?category=1058137 1. Definit CTF 2020 - input test driver https://github.com/V4bel/2020_defenit_ctf 2. QWB CTF 2018 - co..

2021.07.22 게시됨

[Kernel] 커널에서 외워야할 명령어들 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[Kernel] 커널에서 외워야할 명령어들

명령어 1. CTF에서 xxx.sh BzImage rootfs.cpio 3가지 파일이 주어진다. --> vmlinux추출해야된다. --> vmlinux 추출법 /usr/src/linux-headers-$(uname -r)/scripts/extract-vmlinux bzImage > vmlinux 2. Exploit파일을 파일 시스템에 넣고 실행하는법 - 커널을 부팅하면 링커와 gcc등이 없기 때문에 정적링킹으로 컴파일하여 파일 시스템에 넣어줘야 한다. gcc -static -o my_ex my_ex.c -no-pie -파일 시스템에 넣는 방법 --> rootfs.cpio를 압축해제하고 Exploit파일을 포함시켜 다시 재압축한다. - 압축 해제 mkdir rootfs mv ./rootfs.cpio ./r..

2021.07.21 게시됨

[Kernel] ret2usr 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[Kernel] ret2usr

Ret2usr 조건 : SMEP, SMAP 보호기법이 걸려있지 않을 때 사용가능하다. Kernel Space에서 LPE를 일으켜 권한을 상승한 뒤 --> User Space에 있는 /bin/sh를 실행하는 코드 영역으로 쫨프하는 것 페이로드 1. commit_creds(prepare_kernel_cred(0)) --> 권한 상승 2. swapgs 3. rsp를 유저공간 스택으로 전환 4. iretq 주의할점 : 페이로드를 보내기 전에 backup_rv()함수를 통해 현재 레지스터 레이아웃 저장해놓기. 즉, 현재 스택이랑 레지스터 정보를 저장해놔야 권한 상승후 돌아올 주소를 알 수 있다.

2021.07.20 게시됨

[ Kernel Exploit] Kernel 공부를 위한 C언어 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[ Kernel Exploit] Kernel 공부를 위한 C언어

예제 코드 __attribute__((속성)) 1. __attribute__((packed)) struct register_val{ uint64_t user_rip; uint64_t user_cs; uint64_t user_rflags; uint64_t user_rsp; uint64_t user_ss; }__attribute__((packed)); 위의 코드는 구조체로 padding이 끼지 않은 구조체를 만들고 이진코드로 만들어준다. --> C언어 시간에 배운 구조체 크기를 sizeof해보면 실제 예상하던 크기와 다를 수 있다는게 이말이었다. --> 1학년 때 왜 그랬던거지? 이렇게 넘겼던게 이어지는 느낌이 든다. https://unipro.tistory.com/197 2. __attribute__((r..

2021.07.20 게시됨

[ Kernel Exploit] Kernel 공부를 위한 자료들 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[ Kernel Exploit] Kernel 공부를 위한 자료들

URL 및 공부 자료들 개인적으로 공부할 때 도움을 받을 수 있을만한 자료들을 정리하고자 한다. 포너블 처음 시작할 때처럼 어떤 자료라도 모든지 참고해서 내용을 다 흡수해서 내것으로 만들었으면 좋겠다. 1. https://www.inflearn.com/course/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%BB%A4%EB%84%90-%ED%95%B4%ED%82%B9 리눅스 커널 해킹. A부터 Z까지 - 인프런 | 강의 리눅스 커널의 각종 보호 기법과 그에 대한 우회 방안, 다양한 취약점들을 분석해보는 강의이며 강의별로 실습 예제가 제공 됩니다., [사진] 💡 강의 특징 이 강의는 리눅스 커널 해킹에 대한 www.inflearn.com 2. https://jiravvit.tistory.com..

2021.07.20 게시됨