감자 텃밭

RTL이란? 본문

System/Tips

RTL이란?

g2h 2021. 5. 29. 00:48

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