본문 바로가기
# technic/- pwnable

syscall socket x86, x86-x64

by ddddh 2018. 9. 30.

가끔 문제들을 보면 file descriptor를 싹 닫는 경우가 있다.
이런 경우 socket을 통해 새로운 file descriptor를 생성해주면 된다.

sys_mprotect를 사용해 실행 권한을 할당 해 reverse shellcode를 실행 시키는게 대표적이며, sys_socketsys_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와 동일