kernel exploit / NahamCon 2025 CTF - The jumps
·
Kernel Exploit/Exercise
1. intro얼마전 열렸던 nahamcon에서 kernel exploit 문제가 나왔다.그냥 쫄아서 던졌는데, 아무래도 열받아서 커널 익스 공부를 통채로 다시 해버림. 2. code 및 분석2.1. code2.1.1. proc_readssize_t proc_read(file *file,char *buf,size_t count,loff_t *ppos){ long lVar1; int iVar2; long in_GS_OFFSET; char tmp [32]; lVar1 = *(long *)(in_GS_OFFSET + 0x28); if (0x400 값을 user에게 전달한다.tmp size가 32이나, 0x400 이하로는 모두 복사해주기 때문에 이를 이용해 leak이 가능하다. 2.1.2. pr..
kernel exploit payload - krop
·
Kernel Exploit/Exercise
서론커널 영역에서 실행권한이 없는 경우에 rop을 통해 exploit이 가능하다.이를 위한 기본 페이로드이다.특이사항으로 gadget을 찾을 때 ropgadget을 이용하는 경우 intel 문법으로 나온다는 것이다. 즉,mov rax, rdi가 아닌mov rdi, raxgadget을 찾아야한다. Payload#include #include #include #include #include int kbuf_size = 0x400;int global_fd;void open_dev(){ global_fd = open("/dev/holstein", O_RDWR); if (global_fd
kernel exploit payload - kaslr
·
Kernel Exploit/Exercise
서론[ Holstein v1 (LK01) - Pawnyable ] 기준으로 작성하였다.주소 랜덤화 시 read를 통한 필요 주소 leak 후 offset을 계산하여 이를 적용한다.즉, 우선 kaslr을 적용하지 않고 leak, offset을 계산하고 이를 반영하면 된다. Payload#include #include #include #include #include int kbuf_size = 0x400;int global_fd;void open_dev(){ global_fd = open("/dev/holstein", O_RDWR); if (global_fd
kernel exploit payload - no mitigation
·
Kernel Exploit/Exercise
서론[ Holstein v1 (LK01) - Pawnyable ] 기준으로 작성하였다.아무 보호기법도 없고, 주소도 랜덤화하지 않을 때 쓸 수 있는 payload이다.사실 leak 부분도 필요 없지만, 기본 template로 만들어보았다. Payload#include #include #include #include #include int kbuf_size = 0x400;int global_fd;void open_dev(){ global_fd = open("/dev/holstein", O_RDWR); if (global_fd
Kernel exploit 기본 setting
·
Kernel Exploit/Exercise
서론오랜만에 공부를 다시 시작하며, 죄다 까먹어서 정리를 위해 글을 쓴다. System settingQemu 설치sudo apt install qemu-utils qemu-system-x86Kerner debugging tool 설치gef addon을 통해 커널 디버깅을 원활히 하자.wget -q https://raw.githubusercontent.com/bata24/gef/dev/install-uv.sh -O- | sudo shhttps://github.com/bata24/gef GitHub - bata24/gef: GEF - GDB Enhanced Features for exploit devs & reversersGEF - GDB Enhanced Features for exploit devs & r..