Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백도어
- kernel image
- CVE-2024-3094
- xz-utils
- Kernel
- kernel img
- liblzma
- rootfs
- newbie
- kernel build
- cwe-506
Archives
- Today
- Total
ZZoMb1E
[PWNABLE] ASLR 보호기법 본문
728x90
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※
바이너리가 실행될 때마다 코드 영역을 제외한 스택, 힙, 공유 라이브러리 영역의 주소를 랜덤하게 바꿔주는 보호기법이다.
실행할 때마다 주소가 바뀌는 것을 볼 수 있다.
위 실행 파일의 코드이다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *global = "whrd";
int main(){
char *heap = malloc(100);
char *stack[] = {"whrd"};
printf("[Heap] address: %p\n", heap);
printf("[Stack] address: %p\n", stack);
printf("[libc] address: %p\n",**(&stack + 3));
printf("[.data] address: %p\n",global);
gets(heap);
return 0;
}
현재 aslr 적용 상태이다.
cat /proc/sys/kernel/randomize_va_space
위 명령어를 사용하여 확인할 수 있다.
적용 상태는 0, 1, 2로 3가지가 존재한다.
먼저 0을 적용한 상태이다.
주소의 영역이 변경되지 않는 것을 볼 수 있다.
1을 적용한 상태이다.
stack과 libc의 영역만 바뀐다.
기본 값인 2를 적용한 상태이다.
모든 주소가 바뀌는 것을 볼 수 있다.
728x90
'STUDY > PWNABLE_AMD64' 카테고리의 다른 글
[PWNABLE] Shellcode & RTS (0) | 2023.10.22 |
---|---|
[PWNABLE] NX bit (0) | 2023.10.22 |
[PWNABLE] Canary_GOT Overwrite (0) | 2023.10.22 |
[PWNABLE] GOT Overwrite (0) | 2023.10.04 |
[PWNABLE] plt & got (1) | 2023.10.04 |