-
[Pwnable] RTL (Return-To-Libc)Notepad/Pwnable 2021. 7. 14. 16:07
[Pwnable] RTL (Return-To-Libc)
NX bit를 우회할 수 있는 기법이다.
NX bit : 메모리에 쓰기 권한과 실행 권한을 동시에 부여하지 않는 보호 기법
- Shell code를 스택에 넣고 실행할 수 없음
RTL은 RET를 라이브러리 내에 있는 함수를 실행하는 공격 기법이다.
보통 exploit에 system함수를 많이 사용하는데 (인자가 하나이기 때문에) 이를 이용해서 쉘을 실행시킨다.
- system("/bin/sh")
RTL 공격으로 system("/bin/sh") 을 호출하기 위해서는 3가지 조건이 필요하다.
● 입력으로부터 RET까지의 거리
● system 함수의 주소
● "/bin/sh"의 주소
[32bit] 이 세가지를 통해 payload를 짤 수 있는데 RET까지의 거리를 20Byte라고 했을 때
"A"*24 + (system 함수의 주소) + "BBBB" + ("/bin/sh"의 주소)
함수를 실행할 때 인자는 [ebp+8]에서 가져오기 때문에 system과 "/bin/sh"사이에 dummy(4Byte)를 넣어준다.
dummy(4Byte) 자리는 system 함수가 종료할 때 돌아갈 주소인데 system("/bin/sh")이 목적이기 때문에
dummy값을 넣어도 상관없다.
'Notepad > Pwnable' 카테고리의 다른 글
[Pwnable] Generate shellcode with gdb-peda (0) 2021.08.18 [Pwnable] RET Sled (0) 2021.07.15 [Pwnable] ASLR & PIE (0) 2021.07.05 [Pwnable] pwntools 설치 ( pip 설치가 안될 때 ) (2) 2021.07.01 [Pwnable] Nop Sled (0) 2021.05.22