love09010224.log
로그인
love09010224.log
로그인
NX & ASLR...
Fransis__
·
2023년 5월 11일
팔로우
0
pwn
pwn
목록 보기
3/5
ASLR (
Address Space Layout Randomization
)
바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 보호 기법
커널에서 지원하는 보호기법이며,
cat /proc/sys/kernel/randomize_va_space
로 확인할 수 있음
0 : No ASLR
1 : Conservative Randomization (stack, heap. lib, vdso, etc....)
2 : Conservative Rand. + brk (1 + brk allocated space)
특징
코드 영역의 메인 함수를 제외한 다른 영역의 주소들이 바이너리 실헹될 때마다 변경됨
libc_base 주소 하위 12비트, printf 주소 하위 12비트 값은 변경 x
ASLR 적용시 리눅스에선 파일을 페이지 단위(12비트)로 임의 주소 매핑
12비트 이하로는 주소 변경 x
libc_base와 printf의 offset은 항상 같음 (라이브러리 파일을 그대로 매핑함)
NX (No-eXecute)
실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리하는 보호 기법
코드 영역에 쓰기 권한이 있으면 공격자가 코드 수정 가능
스택, 데이터 영역에 실행 권한이 있으면 r2s 공격 시도 가능
NX가 적용된 바이너리엔 코드 영역 외에 실행 권한이 없고 꼭 필요한 권한만 부여
Fransis__
_DM_S_1W_ | KH2P / U_S_S2_ | OC5
팔로우
이전 포스트
링크와 PLT, GOT
다음 포스트
Stack Buffer Overflow...
0개의 댓글
댓글 작성