티스토리 뷰
리눅스(CentOS 기준)에는 BOF 대비해서 메모리 보호 기법이 적용되어 있다.
NX(Not Executable)
[root@centos ~]# sysctl kernel.exec-shield
kernel.exec-shield = 1
현재는 기본값으로 라이브러리가 저장된 영역과 코드가 실행 될 수 있는 스택 영역의 실행 권한을 삭제한다.
[root@centos /]# cat /proc/self/maps
00664000-00665000 r-xp 00664000 00:00 0 [vdso]
00bda000-00bf5000 r-xp 00000000 08:03 4587558 /lib/ld-2.5.so
00bf5000-00bf6000 r-xp 0001a000 08:03 4587558 /lib/ld-2.5.so
00bf6000-00bf7000 rwxp 0001b000 08:03 4587558 /lib/ld-2.5.so
00bf9000-00d50000 r-xp 00000000 08:03 4587560 /lib/libc-2.5.so
00d50000-00d52000 r-xp 00157000 08:03 4587560 /lib/libc-2.5.so
00d52000-00d53000 rwxp 00159000 08:03 4587560 /lib/libc-2.5.so
00d53000-00d56000 rwxp 00d53000 00:00 0
08048000-0804d000 r-xp 00000000 08:03 753708 /bin/cat
0804d000-0804e000 rw-p 00004000 08:03 753708 /bin/cat
08555000-08576000 rw-p 08555000 00:00 0 [heap]
b7c9b000-b7dc8000 r--p 02fab000 08:03 727548 /usr/lib/locale/locale-archive
b7dc8000-b7fc8000 r--p 00000000 08:03 727548 /usr/lib/locale/locale-archive
b7fc8000-b7fca000 rw-p b7fc8000 00:00 0
bfa92000-bfaa7000 rw-p bffe9000 00:00 0 [stack]
해당 기능을 해제할 때는
sysctl -w kernel.exec-shield=0
ASLR(Address Space Layout Randomization)
[root@centos /]# sysctl kernel.randomize_va_space
kernel.randomize_va_space = 1
라이브러리와 스택 주소가 랜덤
sysctl -w kernel.randomize_va_space=2
라이브러리, 스택 뿐만 아니라 힙 주소까지 랜덤
메모리 주소를 랜덤하게 할당하도록 해 놓으면
/proc/self/maps 내 주소가 랜덤하게 바뀌는 것을 확인할 수 있다.
[root@centos /]# cat /proc/self/maps
00110000-00267000 r-xp 00000000 08:03 4587560 /lib/libc-2.5.so
00267000-00269000 r-xp 00157000 08:03 4587560 /lib/libc-2.5.so
00269000-0026a000 rwxp 00159000 08:03 4587560 /lib/libc-2.5.so
0026a000-0026d000 rwxp 0026a000 00:00 0
00bda000-00bf5000 r-xp 00000000 08:03 4587558 /lib/ld-2.5.so
00bf5000-00bf6000 r-xp 0001a000 08:03 4587558 /lib/ld-2.5.so
00bf6000-00bf7000 rwxp 0001b000 08:03 4587558 /lib/ld-2.5.so
00c01000-00c02000 r-xp 00c01000 00:00 0 [vdso]
08048000-0804d000 r-xp 00000000 08:03 753708 /bin/cat
0804d000-0804e000 rw-p 00004000 08:03 753708 /bin/cat
08f4c000-08f6d000 rw-p 08f4c000 00:00 0 [heap]
b7bf4000-b7d21000 r--p 02fab000 08:03 727548 /usr/lib/locale/locale-archive
b7d21000-b7f21000 r--p 00000000 08:03 727548 /usr/lib/locale/locale-archive
b7f21000-b7f23000 rw-p b7f21000 00:00 0
bfda2000-bfdb7000 rw-p bffe9000 00:00 0 [stack]
[root@centos /]# cat /proc/self/maps
00bda000-00bf5000 r-xp 00000000 08:03 4587558 /lib/ld-2.5.so
00bf5000-00bf6000 r-xp 0001a000 08:03 4587558 /lib/ld-2.5.so
00bf6000-00bf7000 rwxp 0001b000 08:03 4587558 /lib/ld-2.5.so
00bf9000-00d50000 r-xp 00000000 08:03 4587560 /lib/libc-2.5.so
00d50000-00d52000 r-xp 00157000 08:03 4587560 /lib/libc-2.5.so
00d52000-00d53000 rwxp 00159000 08:03 4587560 /lib/libc-2.5.so
00d53000-00d56000 rwxp 00d53000 00:00 0
00d59000-00d5a000 r-xp 00d59000 00:00 0 [vdso]
08048000-0804d000 r-xp 00000000 08:03 753708 /bin/cat
0804d000-0804e000 rwxp 00004000 08:03 753708 /bin/cat
0821f000-08240000 rwxp 0821f000 00:00 0 [heap]
b7c42000-b7d6f000 r-xp 02fab000 08:03 727548 /usr/lib/locale/locale-archive
b7d6f000-b7f6f000 r-xp 00000000 08:03 727548 /usr/lib/locale/locale-archive
b7f6f000-b7f71000 rwxp b7f6f000 00:00 0
bfc77000-bfc8c000 rwxp bffe9000 00:00 0 [stack]
설정을 해제할 때는
sysctl -w kernel.randomize_va_space=0
BOF 테스트 할 때는 꼭 해제하고 하는게 실습에 도움이 될 것 같다.
메모리 보호 우회 기법을 테스트할 때는 그대로 두어도 무방.
'Study > System' 카테고리의 다른 글
[Solaris]솔라리스 서비스 관리 (0) | 2014.02.10 |
---|---|
[Ubuntu]Security Onion 12.04 Update (0) | 2014.02.03 |
시스템 정보 확인 - dmidecode (0) | 2013.11.19 |
openssl을 통한 인증서 발급 (0) | 2013.11.14 |
syslog-ng on Centos 6.4 (0) | 2013.11.14 |
- Total
- Today
- Yesterday
- MySQL csv
- 윈도우 패스워드 복구
- oracle 11gr2
- dvwa_bruteforce
- bash parameter
- bash modification
- history timestamp
- text2pcap
- pcapng
- capinfos
- dvwa_command
- mergecap
- NX ASLR
- filesystem check
- excel_aton
- 리눅스 버전
- dvwa
- webhack
- docker_dvwa
- 도커
- metasploitable3
- ssl decrypt
- editcap
- tcpdstat
- megacli
- docker
- recovery file on linux
- tshark
- cisco ssh
- ${1##*.}
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |