일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리눅스
- 시스템
- 드론
- Bandit
- 컴퓨터구조
- css
- 프로그래밍
- 취약점
- 시스템해킹
- radare2
- C++
- kernel
- 리버싱
- px4
- 어셈블리어
- Leviathan
- 커널
- C언어
- 시스템 프로그래밍
- write up
- 리눅스 커널
- 워게임
- 시그널
- 리눅스커널
- wargame
- 알고리즘
- 시스템프로그래밍
- pwncollege
- pwn.college
- Pwnable.kr
- Today
- Total
목록리눅스 커널 해킹 (28)
Computer Security

우리는 아래의 파일들로 실습 할 것이다. start.sh : qemu script aaw_2.c : arbitrary_write 취약점이 터지는 디바이스 드라이버 예제 exp.c : 취약점을 이용해 권한 상승을 일으키는 exploit code 이전 1과 달리 2는 트래키한 취약점을 가지고 있다. 1. cat start.sh 를 이용해 적용된 보호기법을 살펴보자. KASLR : 적용 X SMEP : 적용 O SMAP : 적용 O KPTI : 적용 O rip control이 가능하더라도, kernel stack pivoting을 이용한 익스플로잇이 불가능하다. 2. arbitrary_write 취약점이 터지는 디바이스 드라이버 예제인 aaw_2.c를 살펴보자. 3. aaw_2.c 에서 aaw_init() 부..

Arbitrary Write Arbitrarty Write 취약점은 말 그대로 공격자가 원하는 위치에 원하는 값을 쓸 수 있는 여러 조건을 가진 취약점이다. 이전에 배웠던 대부분의 취약점들이 특정 영역이나 rip만 변조할 수 있는것과 달리, 이 취약점은 쓰기 권한이 있는 모든 메모리 영역에 원하는 데이터를 쓸 수 있는 차이점이 있다. 해당 취약점은 다양한 방식으로 발생할 수 있으며, 가장 기본적인 방식과 트리키한 방식을 하나씩 알아보자. 우리는 아래의 파일들로 실습 할 것이다. start.sh : qemu script aaw_1.c : arbitrary_write 취약점이 터지는 디바이스 드라이버 예제 exp.c : 취약점을 이용해 권한 상승을 일으키는 exploit code 1. cat start.sh..

Kernel Heap Overflow Heap Overflow 취약점은 할당된 heap 객체에서 buffer overflow가 발생해 인접한 heap 객체의 데이터를 변경할 수 있는 취약점이다. 이러한 취약점이 커널에서도 발생할 수 있다. 일반적으로 커널에서의 heap은, 슬랩 할당자를 통해 할당 받을 수 있는 슬랩 객체를 의미한다.(vmalloc 영역 제외) 슬랩 객체는 같은 크기(kmalloc-N)의 슬랩 객체끼리 인접해 있다는 점을 고려해서 힙 풍수(1)를 맞춰야 한다. (1) 힙 풍수(Heap Feng Shui) : Heap 영역에 할당된 Chunk 들의 Layout 을 조작해 exploit 하는 기법입니다. 우리는 아래의 파일들로 실습 할 것이다. start.sh : qemu script hof..

7. dangling pointer , dangling pointer생성과정 허상 포인터(dangling pointer) 컴퓨터 프로그래밍에서 적절한 타입의 유효한 객체를 가리키고 있지 않는 포인터를 말한다. dangling pointer 생성과정 먼저, 디바이스 드라이버의 전역 변수는 해당 드라이버가 close 되어도 메모리 상에서 사라지지 않는다. (rmmod로 커널에서 삭제해야만 메모리상에서 제거된다.) exp.c 코드에서 두 개의 uaf 드라이버를 open 후 하나의 드라이버를 close한다. 남은 하나의 드라이버에서 전역 변수 ptr에 접근할 수 있으며, 이 때 ptr은 해제된 슬랩 객체를 가리키고 있는 dangling pointer가 되어있다. 8. 포크함수를 호출해 danging pointe..