diff --git a/CHANGELOG.md b/CHANGELOG.md index b720aac88..b3cceeb18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +### 10.11 + - Fixed error on PMKID capturing due hcxdumptool different params for different versions + - Added feature to detect captured PMKID while capturing Handshake + - Integration of PMKID on Evil Twin Captive Portal + ### 10.10 - PMKID capture feature - PMKID offline decryption feature diff --git a/README.md b/README.md index fed92f305..e1ced84a9 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ All the needed info about how to "install | use | enjoy" `airgeddon` is present [Hat Tip To]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Hat%20Tip%20To [Inspiration]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Inspiration -[Version-shield]: https://img.shields.io/badge/version-10.10-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version" +[Version-shield]: https://img.shields.io/badge/version-10.11-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version" [Bash4.2-shield]: https://img.shields.io/badge/bash-4.2%2B-blue.svg?style=flat-square&colorA=273133&colorB=00db00 "Bash 4.2 or later" [License-shield]: https://img.shields.io/badge/license-GPL%20v3%2B-blue.svg?style=flat-square&colorA=273133&colorB=bd0000 "GPL v3+" [Docker-shield]: https://img.shields.io/docker/cloud/automated/v1s1t0r1sh3r3/airgeddon.svg?style=flat-square&colorA=273133&colorB=a9a9a9 "Docker rules!" diff --git a/airgeddon.sh b/airgeddon.sh index 036ea19e0..cb83ae6e4 100755 --- a/airgeddon.sh +++ b/airgeddon.sh @@ -2,7 +2,7 @@ #Title........: airgeddon.sh #Description..: This is a multi-use bash script for Linux systems to audit wireless networks. #Author.......: v1s1t0r -#Version......: 10.10 +#Version......: 10.11 #Usage........: bash airgeddon.sh #Bash Version.: 4.2 or later @@ -126,8 +126,8 @@ declare -A possible_alias_names=( ) #General vars -airgeddon_version="10.10" -language_strings_expected_version="10.10-1" +airgeddon_version="10.11" +language_strings_expected_version="10.11-1" standardhandshake_filename="handshake-01.cap" standardpmkid_filename="pmkid_hash.txt" timeout_capture_handshake="20" @@ -146,6 +146,7 @@ rc_file_name=".airgeddonrc" alternative_rc_file_name="airgeddonrc" language_strings_file="language_strings.sh" broadcast_mac="FF:FF:FF:FF:FF:FF" +minimum_hcxdumptool_filterap_version="6.0.0" #5Ghz vars ghz="Ghz" @@ -2857,7 +2858,7 @@ function handshake_capture_check() { local time_counter=0 while true; do sleep 5 - if check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "silent"; then + if check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "silent" "only_handshake"; then break fi @@ -6946,28 +6947,53 @@ function check_valid_file_to_clean() { return 0 } -#Check if a bssid is present on a capture file to know if there is a Handshake with that bssid +#Check if a bssid is present on a capture file to know if there is a Handshake/PMKID with that bssid function check_bssid_in_captured_file() { debug_print + local nets_from_file nets_from_file=$(echo "1" | aircrack-ng "${1}" 2> /dev/null | grep -E "WPA \([1-9][0-9]? handshake" | awk '{ saved = $1; $1 = ""; print substr($0, 2) }') + if [ "${3}" = "also_pmkid" ]; then + get_aircrack_version + if compare_floats_greater_or_equal "${aircrack_version}" "${aircrack_pmkid_version}"; then + local nets_from_file2 + nets_from_file2=$(echo "1" | aircrack-ng "${1}" 2> /dev/null | grep -E "handshake, with PMKID" | awk '{ saved = $1; $1 = ""; print substr($0, 2) }') + fi + fi + if [ "${2}" != "silent" ]; then - echo - if [ "${nets_from_file}" = "" ]; then - if [ ! -f "${1}" ]; then - language_strings "${language}" 161 "red" - language_strings "${language}" 115 "read" - else + if [ ! -f "${1}" ]; then + echo + language_strings "${language}" 161 "red" + language_strings "${language}" 115 "read" + return 1 + fi + + if [[ "${2}" = "showing_msgs_checking" ]] && [[ "${3}" = "only_handshake" ]]; then + if [ "${nets_from_file}" = "" ]; then + echo language_strings "${language}" 216 "red" language_strings "${language}" 115 "read" + return 1 + fi + fi + + if [[ "${2}" = "showing_msgs_checking" ]] && [[ "${3}" = "also_pmkid" ]]; then + if [[ "${nets_from_file}" = "" ]] && [[ "${nets_from_file2}" = "" ]]; then + echo + language_strings "${language}" 682 "red" + language_strings "${language}" 115 "read" + return 1 fi - return 1 fi fi declare -A bssids_detected + declare -A bssids_detected_pmkid + + local option_counter option_counter=0 for item in ${nets_from_file}; do if [[ ${item} =~ ^[0-9a-fA-F]{2}: ]]; then @@ -6976,20 +7002,67 @@ function check_bssid_in_captured_file() { fi done + if [[ "${3}" = "also_pmkid" ]] && [[ -n "${nets_from_file2}" ]]; then + option_counter=0 + for item in ${nets_from_file2}; do + if [[ ${item} =~ ^[0-9a-fA-F]{2}: ]]; then + option_counter=$((option_counter + 1)) + bssids_detected_pmkid[${option_counter}]=${item} + fi + done + fi + + local handshake_captured=0 + local pmkid_captured=0 + for targetbssid in "${bssids_detected[@]}"; do if [ "${bssid}" = "${targetbssid}" ]; then - if [ "${2}" != "silent" ]; then - language_strings "${language}" 322 "yellow" - fi - return 0 + handshake_captured=1 + break fi done - if [ "${2}" != "silent" ]; then - language_strings "${language}" 323 "red" - language_strings "${language}" 115 "read" + if [[ "${3}" = "also_pmkid" ]] && [[ -n "${nets_from_file2}" ]]; then + for targetbssid in "${bssids_detected_pmkid[@]}"; do + if [ "${bssid}" = "${targetbssid}" ]; then + pmkid_captured=1 + break + fi + done + fi + + if [[ "${handshake_captured}" = "1" ]] && [[ "${pmkid_captured}" = "0" ]]; then + if [[ "${2}" = "showing_msgs_checking" ]]; then + language_strings "${language}" 322 "yellow" + fi + return 0 + elif [[ "${handshake_captured}" = "0" ]] && [[ "${pmkid_captured}" = "1" ]]; then + if [[ "${2}" = "showing_msgs_capturing" ]] && [[ "${3}" = "also_pmkid" ]]; then + echo + language_strings "${language}" 680 "yellow" + fi + if [[ "${2}" = "showing_msgs_checking" ]] && [[ "${3}" = "also_pmkid" ]]; then + echo + language_strings "${language}" 683 "yellow" + fi + return 0 + elif [[ "${handshake_captured}" = "1" ]] && [[ "${pmkid_captured}" = "1" ]]; then + if [[ "${2}" = "showing_msgs_capturing" ]] && [[ "${3}" = "also_pmkid" ]]; then + echo + language_strings "${language}" 681 "yellow" + fi + if [[ "${2}" = "showing_msgs_checking" ]] && [[ "${3}" = "also_pmkid" ]]; then + echo + language_strings "${language}" 683 "yellow" + fi + return 0 + else + if [[ "${2}" = "showing_msgs_checking" ]] && [[ "${3}" = "only_handshake" ]]; then + language_strings "${language}" 323 "red" + language_strings "${language}" 115 "read" + fi + return 1 fi - return 1 } #Set the target vars to a bssid selecting them from a capture file which has a Handshake/PMKID @@ -7005,6 +7078,7 @@ function select_wpa_bssid_target_from_captured_file() { language_strings "${language}" 115 "read" fi + local nets_from_file if [ "${2}" = "only_handshake" ]; then nets_from_file=$(echo "1" | aircrack-ng "${1}" 2> /dev/null | grep -E "WPA \([1-9][0-9]? handshake" | awk '{ saved = $1; $1 = ""; print substr($0, 2) }') else @@ -11317,12 +11391,13 @@ function capture_handshake_evil_twin() { handshake_capture_check - if check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "silent"; then + if check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "showing_msgs_capturing" "also_pmkid"; then handshakepath="${default_save_path}" handshakefilename="handshake-${bssid}.cap" handshakepath="${handshakepath}${handshakefilename}" + echo language_strings "${language}" 162 "yellow" validpath=1 while [[ "${validpath}" != "0" ]]; do @@ -11373,6 +11448,7 @@ function capture_pmkid_handshake() { if [ "${1}" = "handshake" ]; then dos_handshake_menu else + get_hcxdumptool_version launch_pmkid_capture fi } @@ -11860,12 +11936,14 @@ function launch_handshake_capture() { fi handshake_capture_check - if check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "silent"; then + + if check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "showing_msgs_capturing" "also_pmkid"; then handshakepath="${default_save_path}" handshakefilename="handshake-${bssid}.cap" handshakepath="${handshakepath}${handshakefilename}" + echo language_strings "${language}" 162 "yellow" validpath=1 while [[ "${validpath}" != "0" ]]; do @@ -11924,16 +12002,23 @@ function launch_pmkid_capture() { echo language_strings "${language}" 325 "blue" + if compare_floats_greater_or_equal "${hcxdumptool_version}" "${minimum_hcxdumptool_filterap_version}"; then + hcxdumptool_filter="--filterlist_ap=" + else + hcxdumptool_filter="--filterlist=" + fi + rm -rf "${tmpdir}pmkid"* > /dev/null 2>&1 recalculate_windows_sizes - manage_output "+j -sb -rightbar -bg \"#000000\" -fg \"#FFC0CB\" -geometry ${g1_topright_window} -T \"Capturing PMKID\"" "timeout -s SIGTERM ${timeout_capture_pmkid} hcxdumptool -i ${interface} --enable_status=1 --filterlist=${tmpdir}target.txt --filtermode=2 -o ${tmpdir}pmkid.pcapng" "Capturing PMKID" "active" - wait_for_process "timeout -s SIGTERM ${timeout_capture_pmkid} hcxdumptool -i ${interface} --enable_status=1 --filterlist=${tmpdir}target.txt --filtermode=2 -o ${tmpdir}pmkid.pcapng" "Capturing PMKID" + manage_output "+j -sb -rightbar -bg \"#000000\" -fg \"#FFC0CB\" -geometry ${g1_topright_window} -T \"Capturing PMKID\"" "timeout -s SIGTERM ${timeout_capture_pmkid} hcxdumptool -i ${interface} --enable_status=1 ${hcxdumptool_filter}${tmpdir}target.txt --filtermode=2 -o ${tmpdir}pmkid.pcapng" "Capturing PMKID" "active" + wait_for_process "timeout -s SIGTERM ${timeout_capture_pmkid} hcxdumptool -i ${interface} --enable_status=1 ${hcxdumptool_filter}${tmpdir}target.txt --filtermode=2 -o ${tmpdir}pmkid.pcapng" "Capturing PMKID" if hcxpcaptool -z "${tmpdir}${standardpmkid_filename}" "${tmpdir}pmkid.pcapng" | grep -q "PMKID(s) written" 2> /dev/null; then pmkidpath="${default_save_path}" pmkidfilename="pmkid-${bssid}.txt" pmkidpath="${pmkidpath}${pmkidfilename}" + echo language_strings "${language}" 162 "yellow" validpath=1 while [[ "${validpath}" != "0" ]]; do @@ -12544,8 +12629,12 @@ function et_prerequisites() { ask_yesno 321 "no" fi + local msg_mode + msg_mode="showing_msgs_checking" + if [[ ${yesno} = "n" ]] || [[ ${retrying_handshake_capture} -eq 1 ]]; then capture_handshake_evil_twin + msg_mode="silent" case "$?" in "2") retry_handshake_capture=1 @@ -12562,7 +12651,7 @@ function et_prerequisites() { retry_handshake_capture=0 retrying_handshake_capture=0 - if ! check_bssid_in_captured_file "${et_handshake}"; then + if ! check_bssid_in_captured_file "${et_handshake}" "${msg_mode}" "also_pmkid"; then return_to_et_main_menu=1 return fi @@ -13247,6 +13336,14 @@ function get_hashcat_version() { hashcat_version=${hashcat_version#"v"} } +#Determine hcxdumptool version +function get_hcxdumptool_version() { + + debug_print + + hcxdumptool_version=$(hcxdumptool --version | awk '{print $2}') +} + #Determine beef version function get_beef_version() { diff --git a/binaries/arch/airgeddon-git-10.10-1-any.pkg.tar.xz b/binaries/arch/airgeddon-git-10.10-1-any.pkg.tar.xz deleted file mode 100644 index 568471a0e..000000000 Binary files a/binaries/arch/airgeddon-git-10.10-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/airgeddon-git-10.11-1-any.pkg.tar.xz b/binaries/arch/airgeddon-git-10.11-1-any.pkg.tar.xz new file mode 100644 index 000000000..c61c4cb68 Binary files /dev/null and b/binaries/arch/airgeddon-git-10.11-1-any.pkg.tar.xz differ diff --git a/binaries/kali/airgeddon_10.10-1_all.deb b/binaries/kali/airgeddon_10.10-1_all.deb deleted file mode 100644 index 17b1d54d9..000000000 Binary files a/binaries/kali/airgeddon_10.10-1_all.deb and /dev/null differ diff --git a/binaries/kali/airgeddon_10.11-1_all.deb b/binaries/kali/airgeddon_10.11-1_all.deb new file mode 100644 index 000000000..a4f577a42 Binary files /dev/null and b/binaries/kali/airgeddon_10.11-1_all.deb differ diff --git a/imgs/wiki/airgeddon_scrs1.png b/imgs/wiki/airgeddon_scrs1.png index 83f892bf7..aeb52bd53 100644 Binary files a/imgs/wiki/airgeddon_scrs1.png and b/imgs/wiki/airgeddon_scrs1.png differ diff --git a/language_strings.sh b/language_strings.sh index aa727c4e8..ceba7dcb7 100644 --- a/language_strings.sh +++ b/language_strings.sh @@ -10,7 +10,7 @@ function set_language_strings_version() { debug_print - language_strings_version="10.10-1" + language_strings_version="10.11-1" } #Set different language text strings @@ -2943,8 +2943,8 @@ function language_strings() { arr["GREEK",172]="1. (aircrack) Επίθεση με χρήση λεξικού σε αρχείο καταγραφής Handshake/PMKID" arr["ITALIAN",172]="1. (aircrack) Attacco dizionario sul file di cattura Handshake/PMKID" arr["POLISH",172]="1. (aircrack) Atak słownikowy na plik przechwytywania Handshake/PMKID" - arr["GERMAN",172]="${pending_of_translation} 1. (aircrack) Wörterbuchangriff auf der aufgenommene Handshake/PMKID Datei" - arr["TURKISH",172]="${pending_of_translation} 1. (aircrack) Yakalanan Handshake/PMKID dosyaya Dictionary saldırısı" + arr["GERMAN",172]="1. (aircrack) Wörterbuchangriff auf der aufgenommenen Handshake/PMKID Datei" + arr["TURKISH",172]="1. (aircrack) Yakalanan Handshake/PMKID dosyasına sözlük saldırısı" arr["ENGLISH",173]="Selected capture file: ${pink_color}${enteredpath}${normal_color}" arr["SPANISH",173]="Fichero de captura seleccionado: ${pink_color}${enteredpath}${normal_color}" @@ -4758,17 +4758,17 @@ function language_strings() { arr["GERMAN",323]="Ein Handshake des ausgewählten Netzwerks wurde in der Erfassungsdatei nicht gefunden" arr["TURKISH",323]="Yakalama dosyasında seçilen ağın bir Handshake'i yok" - arr["ENGLISH",324]="Handshake file generated successfully at [${normal_color}${et_handshake}${blue_color}]" - arr["SPANISH",324]="Fichero de Handshake generado con éxito en [${normal_color}${et_handshake}${blue_color}]" - arr["FRENCH",324]="Fichier Handshake généré avec succès dans [${normal_color}${et_handshake}${blue_color}]" - arr["CATALAN",324]="Fitxer de Handshake generat amb èxit a [${normal_color}${et_handshake}${blue_color}]" - arr["PORTUGUESE",324]="Arquivo Handshake gerado com sucesso [${normal_color}${et_handshake}${blue_color}]" - arr["RUSSIAN",324]="Файл рукопожатия успешно создан в [${normal_color}${et_handshake}${blue_color}]" - arr["GREEK",324]="Το αρχείο Χειραψίας δημιουργήθηκε επιτυχώς στο [${normal_color}${et_handshake}${blue_color}]" - arr["ITALIAN",324]="File di Handhake generato con successo in [${normal_color}${et_handshake}${blue_color}]" - arr["POLISH",324]="Plik Handshake został pomyślnie wygenerowany w [${normal_color}${et_handshake}${blue_color}]" - arr["GERMAN",324]="Handshake-Datei wurde erfolgreich in generiert [${normal_color}${et_handshake}${blue_color}]" - arr["TURKISH",324]="Handshake dosyası başarıyla oluşturuldu [${normal_color}${et_handshake}${blue_color}]" + arr["ENGLISH",324]="Capture file generated successfully at [${normal_color}${et_handshake}${blue_color}]" + arr["SPANISH",324]="Fichero de captura generado con éxito en [${normal_color}${et_handshake}${blue_color}]" + arr["FRENCH",324]="Fichier de capture généré avec succès dans [${normal_color}${et_handshake}${blue_color}]" + arr["CATALAN",324]="Fitxer de captura generat amb èxit a [${normal_color}${et_handshake}${blue_color}]" + arr["PORTUGUESE",324]="Arquivo de captura gerado com sucesso [${normal_color}${et_handshake}${blue_color}]" + arr["RUSSIAN",324]="${pending_of_translation} Захватить файл успешно создан в [${normal_color}${et_handshake}${blue_color}]" + arr["GREEK",324]="Το αρχείο καταγραφής δημιουργήθηκε επιτυχώς στο [${normal_color}${et_handshake}${blue_color}]" + arr["ITALIAN",324]="File di cattura generato con successo in [${normal_color}${et_handshake}${blue_color}]" + arr["POLISH",324]="${pending_of_translation} Plik przechwyć został pomyślnie wygenerowany w [${normal_color}${et_handshake}${blue_color}]" + arr["GERMAN",324]="Capture-Datei wurde erfolgreich in [${normal_color}${et_handshake}${blue_color}] generiert" + arr["TURKISH",324]="Akalama dosyası başarıyla oluşturuldu [${normal_color}${et_handshake}${blue_color}]" arr["ENGLISH",325]="Wait. Be patient..." arr["SPANISH",325]="Espera. Ten un poco de paciencia..." @@ -8092,7 +8092,7 @@ function language_strings() { arr["ITALIAN",601]="Il file selezionato non ha un hash valido in formato enterprise per hashcat" arr["POLISH",601]="Wybrany plik ma nieprawidłowy format hash korporacyjnego dla hashcat" arr["GERMAN",601]="Die ausgewählte Datei hat kein gültiges Enterprise-Hashformat für hashcat" - arr["TURKISH",601]="${pending_of_translation} Seçilen dosya hashcat için geçerli bir enterprise hashes biçimine sahip değil" + arr["TURKISH",601]="Seçilen dosya hashcat için geçerli bir enterprise hash biçimine sahip değil" arr["ENGLISH",602]="Selected file has a valid hashcat enterprise hashes format" arr["SPANISH",602]="El fichero seleccionado tiene un formato válido de hashes enterprise para hashcat" @@ -9030,6 +9030,54 @@ function language_strings() { arr["GERMAN",679]="Hashcat (v${hashcat_version}) ist installiert, jedoch nicht die erforderliche Version. Um den PMKID-Angriff mit Hashcat zu integrieren, müssen Sie mindestens die Version v${minimum_hashcat_pmkid_version} haben" arr["TURKISH",679]="Hashcat sisteminizde kurulu (v${hashcat_version}), ancak sürüm uygun değil. PMKID hashcat saldırısını gerçekleştirmek için minimum sürüm olan ${minimum_hashcat_pmkid_version} yüklenmeli" + arr["ENGLISH",680]="Although you were trying to capture a Handshake, it has been verified that a PMKID was successfully captured from the target network which is also valid" + arr["SPANISH",680]="Aunque estabas intentando capturar un Handshake, se ha comprobado que se capturado con éxito un PMKID de la red elegida como objetivo que también es válido" + arr["FRENCH",680]="Bien que vous essayiez de capturer une Handshake, il a été vérifié qu'un PMKID a été capturé avec succès à partir du réseau cible qui est également valide" + arr["CATALAN",680]="Encara que estaves intentant capturar un Handshake, s'ha comprovat que es capturat amb èxit un PMKID de la xarxa triada com a objectiu que també és vàlid" + arr["PORTUGUESE",680]="Embora você esteja tentando capturar um Handshake, você já possui um PMKID da rede capturado, o que também é válido" + arr["RUSSIAN",680]="${pending_of_translation} Хотя вы пытались захватить Handshake, было подтверждено, что PMKID был успешно получен из целевой сети, что также является действительным" + arr["GREEK",680]="Παρόλο που προσπαθούσατε να καταγράψετε κάποιο Handshake, επιβεβαιώθηκε πως ένα έγκυρο PMKID καταγράφηκε επιτυχώς από το δίκτυο-στόχος" + arr["ITALIAN",680]="Anche se stavi cercando di catturare un Handshake, è stato verificato che è stato catturato con successo un PMKID della rete scelta che è valido" + arr["POLISH",680]="${pending_of_translation} Chociaż próbujesz przechwycić Handshake, potwierdzono, że PMKID sieci docelowej został pomyślnie przechwycony, co jest również ważne" + arr["GERMAN",680]="Obwohl Sie versucht haben, einen Handshake zu erfassen, haben wir ein PMKID erfasst, was auch gültig ist" + arr["TURKISH",680]="Ir Handshake yakalamaya çalışmış olsanız da, hedef ağdan bir PMKID'nin başarılı bir şekilde yakalandığı doğrulandı" + + arr["ENGLISH",681]="In addition to capturing a Handshake, it has been verified that a PMKID from the target network has also been successfully captured" + arr["SPANISH",681]="Además de capturar un Handshake, se ha comprobado que se capturado con éxito también un PMKID de la red elegida como objetivo" + arr["FRENCH",681]="En plus de capturer une Handshake, il a été vérifié qu'un PMKID du réseau cible a été également capturé avec succès" + arr["CATALAN",681]="A més de capturar un Handshake, s'ha comprovat que es capturat amb èxit també un PMKID de la xarxa triada com a objectiu" + arr["PORTUGUESE",681]="Além de capturar um Handshake, um PMKID da rede também foi capturado com sucesso" + arr["RUSSIAN",681]="${pending_of_translation} В дополнение к захвату Handshake, было подтверждено, что PMKID из целевой сети также был успешно захвачен" + arr["GREEK",681]="Εκτός από την καταγραφή ενός Handshake, επιβεβαιώθηκε πως κάποιο PMKID από το δίκτυο-στόχος έχει επίσης καταγραφεί με επιτυχία" + arr["ITALIAN",681]="Oltre all'acquisizione di un Handshake, è stato verificato che anche un PMKID della rete scelta è stato catturato correttamente" + arr["POLISH",681]="${pending_of_translation} Oprócz przechwytywania Handshake potwierdzono, że PMKID z sieci docelowej również został pomyślnie przechwycony" + arr["GERMAN",681]="Neben der Erfassung eines Handshakes wurde überprüft, ob auch eine PMKID aus dem Zielnetzwerk erfolgreich erfasst wurde" + arr["TURKISH",681]="Bir Handshake yakalamanın yanı sıra, hedef ağdan bir PMKID değerinin de başarıyla yakalandığı doğrulandı" + + arr["ENGLISH",682]="No networks found with Handshake/PMKID captured on the selected file" + arr["SPANISH",682]="No se encontraron redes con Handshake/PMKID capturado en el fichero seleccionado" + arr["FRENCH",682]="Aucun réseau avec son Handshake/PMKID n'a été trouvé dans le fichier sélectionné" + arr["CATALAN",682]="No s'han trobat xarxes amb Handshake/PMKID capturat en el fitxer seleccionat" + arr["PORTUGUESE",682]="Nenhuma rede encontrada no arquivo Handshake/PMKID selecionado" + arr["RUSSIAN",682]="В выбранном файле сети с захваченным рукопожатием/PMKID не найдены" + arr["GREEK",682]="Δεν βρέθηκαν δίκτυα με Χειραψία/PMKID στο επιλεγμένο αρχείο" + arr["ITALIAN",682]="Nessuna rete trovata con Handshake/PMKID catturati nel file selezionato" + arr["POLISH",682]="Nie znaleziono sieci z przechwyconym Handshake/PMKID w wybranym pliku" + arr["GERMAN",682]="In der ausgewählten Datei wurden keine Netzwerke mit Handshake/PMKID gefunden" + arr["TURKISH",682]="Seçilen dosyada yakalanan Handshake/PMKID ile ağ bulunamadı" + + arr["ENGLISH",683]="It has been verified that capture file contains Handshake/PMKID of target network. Script can continue..." + arr["SPANISH",683]="Se ha comprobado que el fichero de captura contiene Handshake/PMKID de la red objetivo. El script puede continuar..." + arr["FRENCH",683]="Il a été vérifié que le fichier de capture contient une Handshake/PMKID du réseau cible. Le script peut continuer..." + arr["CATALAN",683]="S'ha comprovat que el fitxer de captura conté Handshake/PMKID de la xarxa objectiu. El script pot continuar..." + arr["PORTUGUESE",683]="Foi verificado que o arquivo de captura contém um Handshake/PMKID da rede. O script pode continuar..." + arr["RUSSIAN",683]="${pending_of_translation} Было проверено, что файл захвата содержит Handshake/PMKID целевой сети. Скрипт может продолжать..." + arr["GREEK",683]="Επιβεβαιώθηκε πως το αρχείο καταγραφής περιέχει το Handshake/PMKID του δικτύου-στόχος. Το script μπορεί να συνεχίσει... " + arr["ITALIAN",683]="È stato verificato che il file di cattura contiene Handshake/PMKID della rete obiettivo. Lo script può continuare..." + arr["POLISH",683]="${pending_of_translation} Plik przechwytywania został zweryfikowany jako zawierający Handshake/PMKID sieci docelowej. Skrypt może kontynuować..." + arr["GERMAN",683]="Es wurde überprüft, ob die Capture-Datei das Handshake/PMKID des Zielnetzwerks enthält. Das Skript kann fortfahren..." + arr["TURKISH",683]="Yakalama dosyasının hedef ağın El Handshake/PMKID değerini içerdiği doğrulandı. Yazılım devam edebilir..." + case "${3}" in "yellow") interrupt_checkpoint "${2}" "${3}"