오늘은 NX, ASLR과 그것을 우회하기위한 공격 기법인 RTL, ROP에 대해 개념적으로만 간단하게 살펴보겠습니다.
먼저 NX는 No-eXecute의 약자로 실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리하는 보호 기법입니다.
스택 오버플로우는 버퍼에 셸코드를 넣고, 리턴주소를 바꿔서 버퍼에 들어간 셸코드를 실행하는 방법인데, NX보호 기법은 데이터영역인 스택과 힙에 있는 바이트를 실행 못하게 막는 방지기법입니다.
다음은 ASLR은 프로세스가 사용하는 주요 메모리 영역의 시작 주소를 매번 무작위로 바꿔서 공격자가 특정 주소에 의존하는 익스플로잇을 어렵게 만드는 보호기법입니다.
보호기법의 적용 여부는 리눅스나 gdb에서 checksec 명령어를 통해 확인 가능합니다.

NX와 ASLR은 여태까지 공부했던 오버플로우를 발생기켜 셸코드를 버퍼에 삽입하는 공격을 보호할 순 있지만 코드 영역에는 실행권한과 고정된 주소가 부여되어있다는 취약점이 있습니다.
오늘 포스팅 내용이 엄청 짧은데 드림핵 문제를 풀면서 공부를 하면 포스팅 하나가 너무 길어질 것 같아 개념만 따로 짧게 작성하였습니다. 다음 포스팅 내용으로 NX를 우회하는 기법인 RTL과 ROP를 포스팅해보도록 하겠습니다
'취약점분석 > Pwnable' 카테고리의 다른 글
| [Pwnable] rop write-up (GOT Overwrite) (1) | 2025.10.03 |
|---|---|
| [Pwnable]Return to Library write-up (ROP) (0) | 2025.10.02 |
| [Pwnable] ssp_001 write up (0) | 2025.09.24 |
| [Pwnable] 스택 카나리 - 2 (Canary Leak) (0) | 2025.09.22 |
| [Pwnable] 스택 카나리 - 1 ( Stack Canary ) (1) | 2025.09.22 |