일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시스템
- 시그널
- 리눅스
- write up
- css
- Leviathan
- Bandit
- Pwnable.kr
- kernel
- px4
- 취약점
- 커널
- 시스템프로그래밍
- radare2
- 시스템 프로그래밍
- pwn.college
- 워게임
- 드론
- 프로그래밍
- wargame
- 리버싱
- C++
- 어셈블리어
- 시스템해킹
- C언어
- pwncollege
- 리눅스커널
- 알고리즘
- 리눅스 커널
- 컴퓨터구조
- Today
- Total
목록정보보안 (179)
Computer Security
ret2usr(return to user) SMEP 보호 기법이 걸려 있지 않을 경우, 커널 공간에서 유저 공간의 코드를 실행할 수 있다는 것을 이용해서 권한 상승을 일으키는 기법이다. 대부분의 커널 공격 테크닉의 기본이 되는 기법이므로 완벽히 이해하여 자유자재로 사용할 줄 알아야 한다. 우리는 아래의 파일들로 실습 할 것이다. start.sh : qemu script test.c : 간단한 취약점이 터지는 디바이스 드라이버 예제 exp.c : ret2usr 기법을 이용해 권한 상승을 일으키는 exploit code 1. start.sh 를 살펴보자. KASLR : 적용 X SMEP : 적용 X SMAP : 적용 X 2. 커널의 흐름을 원하는 대로 조작할 수 있는 디바이스 드라이버 예제인 test.c 파..
KPTI(Kernel Page Table Isolation) 커널 공간과 유저 공간의 전환이 일어날 때, 각각의 페이지 테이블을 사용하여 유저 공간 페이지 테이블에 최소한의 커널 주소만 포함하도록 하는 보호 기법이다. Meltdown 취약점에 대한 보안 패치 커널 공간 -> 유저 공간으로 전환할 때 호출되는 어셈블리 함수를 이용해서 우회할 수 있다. 우리는 아래의 파일들로 실습 할 것이다. start.sh : qemu script test.c : 간단한 취약점이 터지는 디바이스 드라이버 예제 exp.c : KPTI를 우회하여 권한 상승을 일으키는 exploit code 1. start.sh 를 살펴보자. -cpu kvm64 : KPTI 적용 -cpu qemu64 : KPTI 미적용 2.BOF 취약점을 이..
SSP(Stack Smashing Protector) make 과정에서 사용되는 gcc의 옵션으로써, stack based buffer overflow를 방지하는 보호 기법이다. 스택에 랜덤한 canary값을 배치하여, 이 canary가 오염될 경우 overflow가 발생한 것으로 판단하여 커널 패닉이 발생한다. gcc의 옵션으로써 자동으로 활성화 되기 때문에, 유저 공간의 SSP와 동일한 보호 기법이다. 우리는 아래의 파일들로 실습 할 것이다. start.sh : qemu script test.c : 간단한 취약점이 터지는 디바이스 드라이버 예제 exp.c : 취약점을 이용해 권한 상승을 일으키는 exploit code 1. BOF 취약점을 이용해 커널의 흐름을 원하는 대로 조작할 수 있는 디바이스 드..
KADR(Kernel Address Display Restriction) 커널의 내부 정보와 관련된 파일들을 root 권한으로만 확인할 수 있도록 하는 보호 기법이다. 이를 user 권한에서 우회할 수 있다면 커널의 모든 심볼들의 주소를 확인할 수 있겠지만, 보통 이렇게 우회하지는 않고, 로컬 환경에서 root권한으로 변경한 후 심볼들의 주소를 확인하여 디버깅에 참고한다. KADR 우회보단 KADR이 걸려있는 환경에서 디버깅하는 팁에 관해 알아보자. 우리는 아래의 파일들로 실습 할 것이다. start.sh : qemu script 1. ./start.sh 실행한뒤, cat proc/kallsyms | grep printk 를 이용해 살펴보자. /proc/kallsyms 파일은 커널의 모든 심볼들의 주소를..