Linux Kernel

· Kernel
1. 소개저번 장엔 커널 공간에서 Heap Based BOF가 일어날 경우 생기는 일에 대해서 알아 보았다.이번엔 커널 공간에서 일어나는 U-A-F와 이를 악용한 Exploit에 대해서 공부 해보자. 2. Example예제는 ptr-yudai님의 Holestein v3 module을 가지고 실습 할것이다.https://pawnyable.cafe/linux-kernel/LK01/distfiles/LK01-3.tar.gz 3. VulnerabilityCode먼저 모듈의 시작 부분을 보자.static int module_open(struct inode *inode, struct file *file){ printk(KERN_INFO "module_open called\n"); g_buf = kzalloc(B..
· Kernel
1. 소개저번 장에선 커널 스택 오버플로우를 통해 KROP와 KPTI의 우회 등에 대해서 알아 보았다. 이번 글에선 간단하게 Kernel의 힙을 담당하는 Slab Allocator를 알아보고 Heap Overflow를 통한 익스플로잇을 배워보자. Main TopicSlab AllocatorKASLR BypassKernel Heap Spray 2. Slab Allocator유저 공간의 힙을 할당해주는 allocator는 ptmalloc2 가 존재한다. 이를 통해서 힙을 할당받고 해제된 힙을 관리하는데, 이를 담당하는 커널의 allocator가 Slab Allocator이다. Slab Allocator에는 크게 3가지 종류의 얼로케이터가 존재한다. Allocator에 대해서 자세히 짚고 넘어가기엔 양이 너무..
· 1-Day
1. 소개리눅스 커널 1-day를 시작하는 사람이라면 한 번씩 하게 되는 cve-2016-0728에 관한 1-day Analysis 및 PoC를 작성해 보는 글이다. 본 글은 qemu setting 부터 루트커즈분석 및 PoC를 포함하고 있다. Main Topicqemu-img & kernel buildLinux Kernel Heap U-A-FLocal Privilege Escalation 2. CVE CodeCVE-2016-0728Linux Kernel 4.4.1 이전 버전에서 join_session_keyring 함수에서 integer overflow로 인해 커널 상의 free된 객체를 참조할 수 있어 LPE, DoS 공격을 일으킬 수 있는 취약점 3. CVE 관련 정보Referencehttps://..
· 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이란? 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에 들..
· Kernel
1. 소개 이번 글에서는 커널의 대표적인 보호 기법인 SMEP, SMAP, KASLR, KPTI 등에 대해 알아본다. 기본적인 보호 기법은 사용자 공간에서와 비슷하며 커널 공간 특유의 취약점을 보호하는 기법도 존재한다. 이 글에서는 보호 기법에 대해서만 알아보고 Exploit Tech는 다른 글에서 다룰 예정이다. 2. SMEP SMEP(Supervisor Mode Execution Prevention) SMEP은 커널의 대표적인 보호 기법으로, 사용자 공간의 NX(No Execute)와 비슷한 역할의 보호기법이다. 커널 공간에서 코드를 실행할 때, 실행할 코드가 유저 공간의 코드 혹은 유저 공간에서 접근 가능한 코드라면 실행을 못하게 막는 보호 기법이다. SMEP은 하드웨어 차원의 보안 기법으로 CR4..
igunis
'Linux Kernel' 태그의 글 목록