absinthe

메모리 보호 기법 해제


스택 실행권한 해제(Non-executable stack)

cat /proc/self/maps 에서 확인

실행권한을 주기 위해서 컴파일 시 -z execstack 옵션 추가

cat /proc/PID/maps로 왁인


ASLR(Address Space Layout Randomization/랜덤 스택)

ldd명령어로 라이브러리 베이스 주소 확인

sysctl -w kernel.randomize_va_space=0 명령어 (0이 해제)

stack만 랜덤화하기 위해서

sysctl -w kernel.randomize_va_space=1

stack/heap

sysctl -w kernel.randomize_va_space=2


echo 0 > /proc/sys/kernel/randomize_va_space -> 안될 시 ulimit -s unlimited



32bit 컴파일 : gcc -o 파일 명 파일 명 -m32


스택 실행권한 해제

sysctl-w kernel.exec-shield=0 (반대는 1)


execstack -s 파일 명: nx-bit해제



-fno-builtin : 표준 라이브러리와 링크되지 말고 단독으로 링크하라는 의미


STACK GUARD

해제 컴파일 옵션

-fno-stack-protector

dummy값 고정

-mpreferred-stack-boundary=2


/etc/sysctl.conf에 저장되어있음




환경 설정 

자동 설정 : 커널 2.6 부터 제공 (Default 값은 1)

# sysctl -w kernel.randomize_va_space=0 (해제)

# sysctl -w kernel.randomize_va_space=1 (랜덤 스택 & 라이브러리)

# sysctl -w kernel.randomize_va_space=2 (랜럼 스택 & 라이브러리 & 힙)

# sysctl -w kernel.exec-shield=0 (스택 실행권한 해제)

# sysctl -w kernel.exec-shield=1 (스택 실행권한 설정)


시스템 시작할때 자동으로 설정하기

위에 설정 명령을 /etc/sysctl.conf 안에 쓴 후 reboot




-출처 http://jjoon.net/tc/192?category=0
-출처 http://egloos.zum.com/studyfoss/v/5279959


'System' 카테고리의 다른 글

PEDA 설치하기  (0) 2017.02.18