가끔 문제들을 보면 file descriptor를 싹 닫는 경우가 있다.
이런 경우 socket을 통해 새로운 file descriptor를 생성해주면 된다.
sys_mprotect
를 사용해 실행 권한을 할당 해 reverse shellcode를 실행 시키는게 대표적이며, sys_socket
, sys_connect
를 사용한 srop로 직접 리버스 커넥트를 맺을 수 있다.
Reverse Connect를 맺게 되면 dup2 처리를 해 stdin / stdout을 제공해준다.
x86-x64
기준
sys_socket :
rax - 0x29
rdx - 0x0
rsi - 0x1
rdi - 0x2
sys_connect :
rax - 0x2a
rdx - 0x10
rsi - ptr (ip/port)
rdi - fd (socket)
x86
0x66(sys_socketcall)로 socket / connect를 다 할 수 있다. 인자는 x86-x64
와 동일
'# technic > - pwnable' 카테고리의 다른 글
메모리 접근 시간을 이용한 메모리 릭 (0) | 2024.04.10 |
---|---|
Windows용 AFL(American Fuzzer Lop) - winafl (0) | 2018.10.20 |
SCP 명령어로 바이너리를 옮기는 방법 (0) | 2018.09.30 |
Heap Exploitation 번역 (0) | 2017.06.08 |
[ubuntu] qira 설치 에러 (0) | 2016.12.14 |