RTL이란 RET 즉 리턴주소에 함수 공유 라이브러리에 있는 함수들 execv(), system()등의 함수를 불러와 사용할 수 있는 방법이다.
RTL방법은 NX메모리 보호기법을 우회할 수 있다. 여기서 NX란 쉽게 설명해서 권한을 없애는것
HEAP, STACK등 메모리상에서 쉘코드등을 이용한 공격코드를 실행하지 못하게 하는것이다.
PAYLOAD는 dummy+(ret위치(system()))+dummy(4byte)+/bin/sh
같이 쓰인다. 함수와 인자값 사이에 더미가 들어가는것이 이상하게 느껴질 수 있다.
이는 32bit환경에서 함수가 호출될 때 인자 값을 가지고오기위해 ebp+0x8의 주소에서 가져오기 때문이다.그러기때문에
ebp+0x8위치에 /bin/sh를 넣는다.
'System > Tips' 카테고리의 다른 글
프로그램 섹션 헤더 보는 명령어 (0) | 2021.11.14 |
---|---|
ASLR 적용시 우회법 (0) | 2021.11.11 |
메모리 보호 기법 해제 (0) | 2021.05.24 |
/bin/sh 문자열을 찾는 소스코드 (0) | 2021.05.24 |
core dump (0) | 2021.05.19 |