728x90
[ASLR]
스택, 힙, 라이브러리 등의 주소를 랜덤한 영역에 배치하여, 공격에 필요한 Target Address를 예측하기 힘들게 만드는 방법으로 프로그램이 실행될 때마다 각 주소들이 변경된다.
자세하게 설명하자면, libc base의 경우 뒤 3자리는 0x?????000으로 초기화하며(32bit) 이 3개의 자리는 페이지 단위를 의미하고 변동되지 않는다는 특징이 있다.
즉, pwnable을 할 때, libc leak을 성공하였을 경우 libc base의 주소를 알아내는 방법은 뒤 3개의 값을 알아내어 libc database search에 검색하여 알아내면 된다.
libc database search (nullbyte.cat)
libc database search
Query show all libs / start over
libc.nullbyte.cat
[NX bit]
Never eXecute bit로 프로세스 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU기술, NX특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용되며, 프로세스 명령어가 그곳에 상주하지 않음으로써 실행되지 않도록 한다.
즉, 더 이상 BOF와 같이 shellcode를 메모리에 삽입하여 실행시키는 공격은 불가능한 것이다.
728x90
'Systemhacking > Base info' 카테고리의 다른 글
Fastbin Double Free (0) | 2021.04.04 |
---|---|
Heap Base (0) | 2021.04.03 |
What is GOT & PLT (0) | 2021.01.24 |
Tools setting (0) | 2021.01.22 |
How to use pwntools (1) | 2021.01.20 |
댓글