[ v8 ] v8 Exploit 기본 개념 및 *CTF oob 문제 해설 포스팅 썸네일 이미지

Pwnable/Browser exploit

[ v8 ] v8 Exploit 기본 개념 및 *CTF oob 문제 해설

1. 환경 세팅 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=`pwd`/depot_tools:"$PATH" fetch v8 cd v8 ./build/install-build-deps.sh git checkout gclient sync git apply ./tools/dev/v8gen.py x64.release ninja -C ./out.gn/x64.release ----------------------------------- 환경세팅 특이사항 - ubuntu20.04가 안정적이다. - 설치중에 뭐가 뜨는데 skip해주기 - x64.debug모드 말고 x64.release모드로 해야함.(debug..

2022.01.05 게시됨

Pwnable/Kernel exploit

[ Kernel ] Kernel 대표적인 보호기법

1. KASLR : 커널의 메모리주소를 랜덤하게 맵핑. ASLR보다 엔트로피가 작아 브루트포싱 공격에 조금 더 약하다. 2. SMEP : 커널 공간 --> 유저공간의 코드 실행을 제한 3. SMAP : 커널 공간 --> 유저공간의 읽기/쓰기 권한 제한 4. KADR : 루트권한 사용자 빼고 커널의 맵핑된 심볼을 볼 수 없도록 한다. 5. SSP : Canary 보호기법과 동일, 스택쿠키 6. KPTI : 커널공간과 유저공간의 전환이 일어날 때, 각각의 페이지 테이블을 사용 보호기법 체크하는법 1. checksec 2. /proc/cpuinfo와 /etc/default/grub 확인 3. qemu script를 확인한다.

2021.12.28 게시됨

[ Browser ] v8 exploit 공부를 위한 자료들 포스팅 썸네일 이미지

Pwnable/Browser exploit

[ Browser ] v8 exploit 공부를 위한 자료들

Kernel exploit에 비해 v8 exploit 자료(한국어로 된) 찾기가 매우 힘들다. 몇 개 찾아놓은 자료들을 적어가면서 공부해보겠다. 1. https://blog.jsec.xyz/browser/2019/10/15/JS-Engine-Basic.html JS Engine Basic 목차 blog.jsec.xyz 2. https://kimvabel.tistory.com/161 [Write Up] 2019 *CTF - oob v8 개요 Defenit 브라우저 스터디에서 v8을 공부하게 되면서 처음 경험해본 v8 문제입니다. 주로 Exploiting v8: *CTF 2019 oob-v8 이 라업을 참고해서 공부했습니다. Build $ git clone https://chromium.googlesour...

2021.12.25 게시됨

[ bsides CTF 2021 ] khop 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[ bsides CTF 2021 ] khop

문제소스 보호기법 KPTI : YES SMEP : YES KASLR : NO 문제 분석 및 페이로드 모듈 파일을 open하면 "message"라는 전역변수에 kmalloc을 할당해준다. 또한 일반적인 strlen함수와 다르게 \x00이 아닌 \n을 만날 때까지 문자열 길이를 세어준다. close(fd)를 해주면 kmalloc된 영역 free되어지고 message 전역 변수가 0을 가르킨다. read함수는 strlen을 통해 글자수를 세고 이것을 커널영역 --> 유저영역 변수로 복사해준다. 익스플로잇 순서는 이렇다. 1. 카나리 릭 -->strlen 취약점 2. 스택 피보팅 3. KPTI bypass 1. 카나리 릭 open()함수를 2번 해주고 close()함수로 하나를 닫어주면 message변수는 0을..

2021.08.11 게시됨

[ Bsides CTF 2021 ] suscall 포스팅 썸네일 이미지

Pwnable/Kernel exploit

[ Bsides CTF 2021 ] suscall

문제소스 #include #include #include MODULE_LICENSE("GPL"); #ifndef __NR_SUSCALL #define __NR_SUSCALL 546 #endif SYSCALL_DEFINE1(suscall, unsigned long int, addr) { void (*fp)(void); fp = addr; fp(); } SYSCALL_DEFINE1 매크로를 통해 syscall을 만들고 있다. https://holeeman.github.io/linux/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%BD%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0-1/ http://egloos.zum.com/rousalome..

2021.08.10 게시됨

[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 게시됨