ulimit
ulimit -s unlimited -> aslr ㄲㅓ짐
64bit binary나 , ubuntu 16.04같은 최신 리눅스는 안될 수 있음
ulimit -d 10(ulimit -d 0)
Malloc은 크기에 따라 heap이나 mmap을 이용해서 주소를 할당하는데 Ulimit –d 옵션은 heap에 할당하는 크기의 최댓값을 정의한다.
즉 mmap을 이용하면 malloc이 libc영역에 할당됨
ulimit -s unlimited와 같이 libc주소도 고정시켜버리면
malloc주소를 고정시킬 수 있음
ulimit -a해서 보이는 다양한 설정값들을 제한하거나 컨트롤할 수 있음
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 266
virtual memory (kbytes, -v) unlimited
file size도 local exploit에 가끔 쓰인다.
pwnable.kr의 문제중 하나에 있었던 것 같음
또 core size의 default는 0이고 이 크기 늘려주면 프로그램이 비정상종료될 떄 core파일이 생긴다
디버깅할때 유용함
'시스템 > 시스템 해킹' 카테고리의 다른 글
glibc heap exploit 치트시트 (0) | 2017.08.09 |
---|---|
magic_gadget 찾아주는 툴 (0) | 2017.03.21 |
glibc malloc.c의 free함수 분석 약간의 exploit관점(작성중) (0) | 2017.02.09 |
glibc malloc.c의 malloc함수 분석 약간의 exploit관점 (0) | 2017.02.09 |
버퍼오버플로우를 시작하며 (1) | 2017.02.05 |