일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래밍
- pwncollege
- 리버싱
- 워게임
- 어셈블리어
- 리눅스 커널
- 시스템프로그래밍
- 취약점
- C++
- px4
- 커널
- 리눅스
- write up
- 시그널
- Pwnable.kr
- radare2
- 컴퓨터구조
- Leviathan
- 알고리즘
- 드론
- Bandit
- 시스템
- C언어
- css
- 시스템 프로그래밍
- kernel
- wargame
- 시스템해킹
- 리눅스커널
- pwn.college
- Today
- Total
목록리눅스 커널 해킹 (28)
Computer Security

KASLR(Kernel Address Space Layout Randomization) 커널이 무작위 주소에 매핑되도록 만들어, 커널 익스플로잇을 어렵게 하는 보호기법이다. 유저 공간의 ASLR(1) 과 비슷한 개념이다. 주로 커널이 실행되기 전 단계인 부트로더에서 셋팅된다. 우회하기 위해 kernel memory address leak 과정이 필요하다. (1) ASLR(address Space Layout Randomization) 스택, 힙, 라이브러리 등의 주소를 랜덤한 영역에 배치하여, 공격에 필요한 target address를 예측하기 어렵게 만든다. 프로그램이 실행될 때마다 각 주소들이 변경된다. (2) kernel memory address leak 커널의 취약점을 이용해서, 커널의 메모리 ..

리눅스 커널 보호 기법 리눅스 커널에는 공격자로부터 커널을 보호하기 위한 다양한 메모리 보호 기법들이 있다. 특정 보호 기법들은 아키텍쳐 별로 구현 및 명칭이 조금씩 다르다. 수 많은 보호 기법들이 있지만, x86_64 아키텍쳐의 KASLR,SMEP,SMAP,KADR,SSP,KPTI 보호기법을 다룰 것 이다. KASLR : 커널의 메모리 주소를 랜덤화. similar to ASLR SMEP : 커널 공간에서 유저 공간의 실행 권한을 제한 SMAP : 커널 공간에서 유저 공간의 읽기/쓰기 권한도 제한 KADR : 로컬 유저가 커널의 심볼을 볼 수 없도록 제한 SSP : 유저 공간의 canary와 동일. Makefile에서 사용되는 gcc의 옵션(스택 오버플로우 방지 보호기법) KPTI : 커널 공간과 유저..

리얼 월드 셋팅과의 차이점 CTF 문제에서는 커널 이미지와 파일 시스템을 제공해 주기 때문에 따로 빌드할 필요가 없다. 보통 커널 이미지중 bzImage는 제공해주지만, 디버깅에 유용한 vmlinux는 제공해주지 않는다. extract-vmlinux 스크립트를 이용해 bzImage에서 vmlinux를 추출해야한다. boot.sh : qemu의 실행 옵션이 들어있는 qemu script bzImage : 빌드된 커널 이미지 파일 rootfs.cpio : 빌드된 파일 시스템. 내부에 문제 드라이버가 들어 있다. CTF에서는 보통 gdb_remote.sh 를 빼고 위의 3가지를 제공해 준다. 위의 3개의 파일중에는 vmlinux는 없기 때문에, /usr/src/linux-headers-$(uname-r)/sc..

qemu 리눅스에서 사용하는 에뮬레이터이며, KVM(1)을 추가하여 가상 머신으로 사용할 수 있다. qemu-kvm 에서 Hypervisor를 지원한다. qemu의 다양한 옵션들을 이용해 script를 작성해서 커널을 부팅할 수 있다. (1) :KVM(Kernel-based Virtual Machine: 커널 기반 가상 머신)은 Linux®에 구축되는 오픈소스 가상화 기술이다. 구체적으로 말해서, KVM을 사용하면 Linux를 하이퍼바이저로 전환하여 호스트 머신에서 게스트 또는 VM(가상 머신) 등 격리된 가상 환경 여러 개가 실행되도록 할 수 있습니다. 1. 리눅스의경우 기본적으로 qemu가 설치되어있으며, qemu-kvm 을 apt-get install qemu-kvm 명령어를 통해 설치 해주자. 2..