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

2021 plan (7월~12월) 포스팅 썸네일 이미지

Memo

2021 plan (7월~12월)

오늘이 내가 포너블 시작한지 딱 반 년 되는날이다. 지금까지 월별로 무엇을 할지 정했었는데 학교 다니면서 시험공부도 하고 이것저것 바빠서 제대로 지키기가 어렵고 스트레스만 받았다. 하루하루 어떤 일이 있고 어떤 문제가 풀고 싶은지도 달라져서 계획을 바꾸고자 한다. 이제 반년단위로 크게크게 계획을 세우고자 한다. 일단 계획을 세우기 전에 지금까지 무엇을 했었는지 정리해보겠다. 1월달에 시작했을 때는 아무것도 몰랐는데 이제 CTF에서도 절반정도 푸는정도 실력이 만들어진거 같다. ASC라는 학교 보안 동아리도 들어가게 되었는데 종강하고 2주동안 여기 문제들이랑 노느라 힘들었다. 문제가 다 영어로 되어있고 영어를 이해하지 못 하면 문제를 못 푸는 babymem문제들... baby race, baby auto, ..

2021.07.18 게시됨

[Network] STUN이란 포스팅 썸네일 이미지

프로그래밍

[Network] STUN이란

STUN이란 VoIP (보이스톡, 화상통화..)등등 실시간 통신을 위한 프로토콜이다. P2P통신시에 NAT를 탐색하기 위해 사용한다. P2P방식에서는 public ip를 사용해야 하는데 NAT를 사용한다면 P2P통신 시에 상대방의 public IP를 알지 못해 STUN프로토콜을 이용해 public IP와 port번호를 알아낸다. UDP, TCP, TLS등 다양한게 이용한다. 참고문헌 및 힘들었던 부분 1. https://velog.io/@doontagi/STUN%EC%9D%B4%EB%9E%80 2. https://ko.wikipedia.org/wiki/STUN 3. https://gh402.tistory.com/45

2021.07.08 게시됨