pwnable

· Kernel
1. 소개 커널의 보호기법 중 SMEP이 걸려있는 경우 유저 공간의 코드를 실행하는 것이 불가능해진다. 유저랜드의 NX 보호기법을 우회하기 위해서 RTL, ROP 가 존재 하듯, SMEP을 우회하기 위해서는 KROP(Kernel ROP)라고 불리는 기법이 필요하다. 기법은 유저랜드의 ROP와 크게 다르지 않으며 유저랜드 ROP와 크게 다르지 않기 때문에 잡다한 설명은 생략하고 진행할 예정이다. Main Topic SMEP, SMAP KROP KPTI 2. Extract-Vmlinux ROP gadget을 찾기 위해선 커널 공간의 이미지가 필요하다. ROPgadget 명령을 이용해서 바이너리의 가젯을 찾았듯이 커널의 바이너리가 필요한 것이다. 이것은 다행히도 extract-vmlinux라는 이름의 스크립트..
· Kernel
1. 소개 저번 글에서 Holstein 모듈에 대해서 소스코드 분석과 취약점을 알아보았다. Stack Buffer Overflow를 통해 RIP를 조작할 수 있다는 것을 알았으니 이제 이를 활용하여 권한 상승 공격을 실습 해볼것이다. Main Topic commit_creds ret2usr 2. commit_creds commit_creds 함수 가장 기본적인 권한 상승 방법으로는 commit_creds 함수와 init_cred 구조체를 사용한 권한 상승이 있다. cred 구조체는 각 프로세스에서 권한 정보를 가지고 있는 구조체로 task_cred 라는 구조체에서 이를 관리한다. 이중에서 commit_creds 함수는 프로세스의 권한 정보를 바꿔주는 함수로 소스코드와 함께 알아보자 int commit_c..
· Kernel
1. 소개 Holstein이란? Holstein Module은 앞서 qemu를 이용한 환경 세팅 글에서 설치한 LK01 예제에 포함된 간단한 취약점을 가진 커널 모듈로 open, write, read 등의 기능을 포함하고 있다. Main Topic Module Stack Buffer Overflow Kernel read, write 2. 환경 설정 기본적인 환경 세팅은 아래 글과 같다. https://igunix-s.tistory.com/entry/Kernel-qemu%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%ED%99%98%EA%B2%BD-%EC%84%B8%ED%8C%85 [Kernel] qemu를 사용한 환경 세팅 1. 소개 본격적인 Kernel exploit tech에 들..
· Pwnable
1. 소개 Pwn 분야를 처음 접하게 되면 가장 많이 어렵다고 느끼는 부분인 Pwnable의 꽃 ROP에 대해서 알아보자 선행 학습 요소 Calling Convention Buffer Overflow Stack Memory Cumputer Architecture ROP란? Return Oriented Programming(이하 ROP)은 가젯이라고 불리는 코드 조각들을 사용하여 공격자가 임의의 코드를 실행하고 프로그램의 흐름을 바꾸는 기초 기법이다. 말그대로 공격자가 원하는 대로 실행 흐름을 바꿀 수 있기 때문에 공격이 가능할 경우 엄청난 피해를 일으킬 수 있다. How to use? 필요한 프로그램들로는 gdb(pwndbg, peda, gef), pwntools, python 등의 프로그램이 사용된다...
· Pwnable
Asm 명령어 중에 Syscall 이라는 명령어가 있다. Syscall 명령어는 x86-64 아키텍처 기준으로, rax, rdi, rsi, rdx 총 4가지 레지스터의 정보를 통해 여러 함수를 실행한다. (몇몇의 syscall 명령어는 더 많은 레지스터를 사용하기도 한다.) 우선적으로, rax 레지스터의 값으로 어떤 함수를 실행할지 결정하게 되는데, 각 값에 따른 함수의 종류는 아래 링크에 정리되어 있다. https://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.md Chromium OS Docs - Linux System Call TableLinux System Call Table These are the system c..
igunis
'pwnable' 태그의 글 목록