diff --git a/README.md b/README.md index edd0b8710..8ec9f1fbd 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ #airgeddon -Version 2.0
+Version 2.01
This is a DoS (Denial of Service) bash script for wireless networks.
#Requirements @@ -15,6 +15,12 @@ This script is under GPLv2 (or later) License.
Under Kali linux must be used with bash (no sh). Example "bash /path/airgeddon.sh"
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
+ #Changelog 1.0
Initial commit
@@ -38,4 +44,8 @@ Code improvements
Code restructuration
WIDS confusion attack added
Old attacks menu included
-Traps managing feature
\ No newline at end of file +Traps managing feature
+
+2.01
+Multilanguage support feature included
+English and Spanish languages added
\ No newline at end of file diff --git a/airgeddon.sh b/airgeddon.sh index 8b036fe7d..57451a415 100644 --- a/airgeddon.sh +++ b/airgeddon.sh @@ -1,23 +1,352 @@ #!/bin/bash -version="2.0" +version="2.01" trap killing_script INT +#change this line to select another default language +language="english" +#language="spanish" + +function language_strings() { + + declare -A arr + arr["english",0]="This interface $interface is already in managed mode" + arr["spanish",0]="Este interfaz $interface ya está en modo managed" + + arr["english",1]="This interface $interface is not a wifi card. It doesn't support managed mode" + arr["spanish",1]="Este interfaz $interface no es una tarjeta wifi. No soporta modo managed" + + arr["english",2]="Kali Linux distro detected. Script can continue..." + arr["spanish",2]="Distro Kali Linux detectada. El script puede continuar..." + + arr["english",3]="Script language changed automatically to english" + arr["spanish",3]="Cambio automático del idioma del script a español" + + arr["english",4]="Wifislax Linux distro detected. Script can continue..." + arr["spanish",4]="Distro Wifislax Linux detectada. El script puede continuar..." + + arr["english",5]="No compatible distro detected" + arr["spanish",5]="No se ha detectado una distro compatible" + + arr["english",6]="Welcome to airgeddon script" + arr["spanish",6]="Bienvenido al airgeddon script" + + arr["english",7]="This script is only for educational purposes. Be good boyz&girlz" + arr["spanish",7]="Este script se ha hecho sólo con fines educativos. Sed buen@s chic@s" + + arr["english",8]="This script is only working on Kali Linux and Wifislax" + arr["spanish",8]="Este script sólo funciona en Kali Linux y Wifislax" + + arr["english",9]="Detecting distro..." + arr["spanish",9]="Detectando distro..." + + arr["english",10]="This interface $interface is already in monitor mode" + arr["spanish",10]="Este interfaz $interface ya está en modo monitor" + + arr["english",11]="Exiting airgeddon script - 2016 - See you soon! :)" + arr["spanish",11]="Saliendo del airgeddon scr1pt - 2016 - Nos vemos pronto! :)" + + arr["english",12]="Please, exit properly using menu option" + arr["spanish",12]="Por favor, sal del script correctamente utilizando la opción del menú" + + arr["english",13]="This interface $interface is not a wifi card. It doesn't support monitor mode" + arr["spanish",13]="Este interfaz $interface no es una tarjeta wifi. No soporta modo monitor" + + arr["english",14]="This interface $interface is not in monitor mode" + arr["spanish",14]="Este interfaz $interface no está en modo monitor" + + arr["english",15]="The interface changed its name while putting in managed mode. Autoselected" + arr["spanish",15]="Este interfaz ha cambiado su nombre al ponerlo en modo managed. Se ha seleccionado automáticamente" + + arr["english",16]="Managed mode now is set on $interface" + arr["spanish",16]="Se ha puesto el modo managed en $interface" + + arr["english",17]="Putting your interface in managed mode..." + arr["spanish",17]="Poniendo el interfaz en modo managed..." + + arr["english",18]="Putting your interface in monitor mode..." + arr["spanish",18]="Poniendo el interfaz en modo monitor..." + + arr["english",19]="Please be patient. Maybe killing some conflicting processes..." + arr["spanish",19]="Por favor ten paciencia. Puede que esté matando algunos procesos que podrían causar conflicto..." + + arr["english",20]="This interface $interface doesn't support monitor mode" + arr["spanish",20]="Este interfaz $interface no soporta modo monitor" + + arr["english",21]="The interface changed its name while putting in monitor mode. Autoselected" + arr["spanish",21]="Este interfaz ha cambiado su nombre al ponerlo en modo monitor. Se ha seleccionado automáticamente" + + arr["english",22]="Monitor mode now is set on $interface" + arr["spanish",22]="Se ha puesto el modo monitor en $interface" + + arr["english",23]="There is a problem with the interface selected. Redirecting you to script exit" + arr["spanish",23]="Hay un problema con el interfaz seleccionado. Redirigiendo a la salida del script" + + arr["english",24]="Select an interface to work with :" + arr["spanish",24]="Selecciona un interfaz para trabajar con él :" + + arr["english",25]="Set channel (1-14) :" + arr["spanish",25]="Selecciona un canal (1-14) :" + + arr["english",26]="Channel set to ${channel}" + arr["spanish",26]="Canal elegido ${channel}" + + arr["english",27]="Type target BSSID (example: 00:11:22:33:44:55) :" + arr["spanish",27]="Escribe el BSSID objetivo (ejemplo: 00:11:22:33:44:55) :" + + arr["english",28]="BSSID set to ${bssid}" + arr["spanish",28]="BSSID elegido ${bssid}" + + arr["english",29]="Type target ESSID :" + arr["spanish",29]="Escribe el ESSID objetivo :" + + arr["english",30]="You have selected a hidden network ESSID. Can't be used. Select another one or perform a BSSID based attack instead of this" + arr["spanish",30]="Has seleccionado un ESSID de red oculta. No se puede usar. Selecciona otro o ejecuta un ataque basado en BSSID en lugar de este" + + arr["english",31]="ESSID set to ${essid}" + arr["spanish",31]="ESSID elegido ${essid}" + + arr["english",32]="All parameters set" + arr["spanish",32]="Todos los parámetros están listos" + + arr["english",33]="Starting attack. When started, press Ctrl+C to stop..." + arr["spanish",33]="Comenzando ataque. Una vez empezado, pulse Ctrl+C para pararlo..." + + arr["english",34]="Selected interface $interface is in monitor mode. Attack can be performed" + arr["spanish",34]="El interfaz seleccionado $interfaz está en modo monitor. El ataque se puede realizar" + + 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["english",36]="Deauthentication aireplay attack chosen (monitor mode needed)" + arr["spanish",36]="Elegido ataque de Desautenticación aireplay (modo monitor requerido)" + + arr["english",37]="WIDS / WIPS / WDS Confusion attack chosen (monitor mode needed)" + arr["spanish",37]="Elegido ataque Confusion WIDS / WIPS / WDS (modo monitor requerido)" + + arr["english",38]="Beacon flood attack chosen (monitor mode needed)" + arr["spanish",38]="Elegido ataque Beacon flood (modo monitor requerido)" + + arr["english",39]="Auth DoS attack chosen (monitor mode needed)" + arr["spanish",39]="Elegido ataque Auth DoS (modo monitor requerido)" + + arr["english",40]="Michael Shutdown (TKIP) attack chosen (monitor mode needed)" + arr["spanish",40]="Elegido ataque Michael Shutdown (TKIP) (modo monitor requerido)" + + arr["english",41]="No interface selected. You'll be redirected to select one" + arr["spanish",41]="No hay interfaz seleccionado. Serás redirigido para seleccionar uno" + + arr["english",42]="Interface $interface selected. Mode: $ifacemode" + arr["spanish",42]="Interfaz $interface seleccionado. Modo: $ifacemode" + + arr["english",43]="Selected BSSID: $bssid" + arr["spanish",43]="BSSID seleccionado: $bssid" + + arr["english",44]="Selected channel: $channel" + arr["spanish",44]="Canal seleccionado: $channel" + + arr["english",45]="Selected ESSID: $essid <- can't be used" + arr["spanish",45]="ESSID seleccionado: $essid <- no se puede usar" + + arr["english",46]="Selected ESSID: $essid" + arr["spanish",46]="ESSID seleccionado: $essid" + + arr["english",47]="Select an option from menu :" + arr["spanish",47]="Selecciona una opción del menú :" + + arr["english",48]="1. Select another network interface" + arr["spanish",48]="1. Selecciona otro interfaz de red" + + arr["english",49]="2. Explore neighbourhood for targets (monitor mode needed)" + arr["spanish",49]="2. Explorar el vecindario para buscar objetivos (modo monitor requerido)" + + arr["english",50]="---------(monitor mode needed for attacks)---------" + arr["spanish",50]="--------(modo monitor requerido en ataques)--------" + + arr["english",51]="3. Deauth / disassoc amok mdk3 attack" + arr["spanish",51]="3. Ataque Deauth / Disassoc amok mdk3" + + arr["english",52]="4. Deauth aireplay attack" + arr["spanish",52]="4. Ataque Deauth aireplay" + + arr["english",53]="5. WIDS / WIPS / WDS Confusion attack" + arr["spanish",53]="5. Ataque WIDS / WIPS / WDS Confusion" + + arr["english",54]="6. Old \"obsolete/non very effective\" attacks menu" + arr["spanish",54]="6. Menú de antiguos ataques \"obsoletos/no muy efectivos\"" + + arr["english",55]="7. Put interface in monitor mode" + arr["spanish",55]="7. Poner el interfaz en modo monitor" + + arr["english",56]="8. Put interface in managed mode" + arr["spanish",56]="8. Poner el interfaz en modo managed" + + arr["english",57]="6. Put interface in monitor mode" + arr["spanish",57]="6. Poner el interfaz en modo monitor" + + arr["english",58]="7. Put interface in managed mode" + arr["spanish",58]="7. Poner el interfaz en modo managed" + + arr["english",59]="8. Return to main menu" + arr["spanish",59]="8. Volver al menú principal" + + arr["english",60]="9. About & Credits" + arr["spanish",60]="9. Acerca de & Créditos" + + arr["english",61]="11. Exit script" + arr["spanish",61]="11. Salir del script" + + arr["english",62]="3. Beacon flood attack" + arr["spanish",62]="3. Ataque Beacon flood" + + arr["english",63]="4. Auth DoS attack" + arr["spanish",63]="4. Ataque Auth DoS" + + arr["english",64]="5. Michael shutdown exploitation (TKIP) attack" + arr["spanish",64]="5. Ataque Michael shutdown exploitation (TKIP)" + + arr["english",65]="Exploring neighbourhood option chosen (monitor mode needed)" + arr["spanish",65]="Elegida opción de exploración del vecindario (modo monitor requerido)" + + arr["english",66]="Selected interface $interface is in monitor mode. Exploration can be performed" + arr["spanish",66]="El interfaz seleccionado $interfaz está en modo monitor. La exploración se puede realizar" + + arr["english",67]="When started, press Ctrl+C to stop..." + arr["spanish",67]="Una vez empezado, pulse Ctrl+C para pararlo..." + + arr["english",68]="No networks found" + arr["spanish",68]="No se encontraron redes" + + arr["english",69]=" N. BSSID CHANNEL PWR ESSID" + arr["spanish",69]=" N. BSSID CANAL PWR ESSID" + + arr["english",70]="Only one target detected. Autoselected" + arr["spanish",70]="Sólo un objetivo detectado. Se ha seleccionado automáticamente" + + arr["english",71]="(*) Network with clients" + arr["spanish",71]="(*) Red con clientes" + + arr["english",72]="Invalid target network was chosen" + arr["spanish",72]="Red objetivo elegida no válida" + + arr["english",73]="airgeddon script v$version developed by :" + arr["spanish",73]="airgeddon script v$version programado por :" + + arr["english",74]="This script is under GPLv2 (or later) License" + arr["spanish",74]="Este script está bajo Licencia GPLv2 (o posterior)" + + arr["english",75]="Thanks to the \"Spanish pen testing crew\" for beta testing and support received" + arr["spanish",75]="Gracias al \"Spanish pen testing crew\" por el beta testing y el apoyo recibido" + + arr["english",76]="Invalid menu option was chosen" + arr["spanish",76]="Opción del menú no válida" + + arr["english",77]="Invalid interface was chosen" + arr["spanish",77]="Interfaz no válida" + + arr["english",78]="10. Change language" + arr["spanish",78]="10. Cambiar idioma" + + arr["english",79]="1. English" + arr["spanish",79]="1. Inglés" + + arr["english",80]="2. Spanish" + arr["spanish",80]="2. Español" + + arr["english",81]="Select a language :" + arr["spanish",81]="Selecciona un idioma :" + + arr["english",82]="Invalid language was chosen" + arr["spanish",82]="Idioma no válido" + + arr["english",83]="Language changed to English" + arr["spanish",83]="Idioma cambiado a Inglés" + + arr["english",84]="Language changed to Spanish" + arr["spanish",84]="Idioma cambiado a Español" + + arr["english",85]="Send me bugs or suggestions to v1s1t0r.1sh3r3@gmail.com" + arr["spanish",85]="Enviadme errores o sugerencias a v1s1t0r.1sh3r3@gmail.com" + + case "$3" in + "yellow") + echo_yellow "${arr[$1,$2]}" + ;; + "blue") + echo_blue "${arr[$1,$2]}" + ;; + "red") + echo_red "${arr[$1,$2]}" + ;; + "green") + echo_green "${arr[$1,$2]}" + ;; + *) + echo "${arr[$1,$2]}" + ;; + esac +} + +function do_read() { + + 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 +} + +function do_select_target_read() { + + 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 +} + +function do_attack_read() { + + case "$language" in + "spanish") + read -p "Pulse la tecla [Enter] para comenzar el ataque..." + ;; + "english") + read -p "Press [Enter] key to start attack..." + ;; + *) + read -p "Press [Enter] key to start attack..." + ;; + esac +} + function check_to_set_managed() { check_interface_mode case "$ifacemode" in "Managed") echo - echo_yellow "This interface $interface is already in managed mode" - read -p "Press [Enter] key to continue..." + language_strings $language 0 "yellow" + do_read return 1 ;; "(Non wifi card)") echo - echo_yellow "This interface $interface is not a wifi card. It doesn't support managed mode" - read -p "Press [Enter] key to continue..." + language_strings $language 1 "yellow" + do_read return 1 ;; esac @@ -31,14 +360,14 @@ function check_to_set_monitor() { case "$ifacemode" in "Monitor") echo - echo_yellow "This interface $interface is already in monitor mode" - read -p "Press [Enter] key to continue..." + language_strings $language 10 "yellow" + do_read return 1 ;; "(Non wifi card)") echo - echo_yellow "This interface $interface is not a wifi card. It doesn't support monitor mode" - read -p "Press [Enter] key to continue..." + language_strings $language 13 "yellow" + do_read return 1 ;; esac @@ -51,8 +380,8 @@ function check_monitor_enabled() { if [[ $mode != "Monitor" ]]; then echo - echo_yellow "This interface $interface is not in monitor mode" - read -p "Press [Enter] key to continue..." + language_strings $language 14 "yellow" + do_read return 1 fi return 0 @@ -76,7 +405,7 @@ function managed_option() { disable_rfkill - echo_blue "Putting your interface in managed mode..." + language_strings $language 17 "blue" ifconfig $interface up if [ "$distro" = "Kali" ]; then @@ -88,13 +417,13 @@ function managed_option() { if [ "$interface" != "$new_interface" ]; then echo - echo_yellow "The interface changed its name while putting in managed mode. Autoselected" + language_strings $language 15 "yellow" interface=$new_interface fi echo - echo_yellow "Managed mode now is set on $interface" - read -p "Press [Enter] key to continue..." + language_strings $language 16 "yellow" + do_read } function monitor_option() { @@ -106,15 +435,15 @@ function monitor_option() { disable_rfkill - echo_blue "Putting your interface in monitor mode..." - echo_blue "Please be patient. Maybe killing some conflicting processes..." + language_strings $language 18 "blue" + language_strings $language 19 "blue" ifconfig $interface up iwconfig $interface rate 1M > /dev/null 2>&1 if [ "$?" != "0" ]; then echo - echo_yellow "This interface $interface doesn't support monitor mode" - read -p "Press [Enter] key to continue..." + language_strings $language 20 "yellow" + do_read return fi @@ -130,13 +459,13 @@ function monitor_option() { if [ "$interface" != "$new_interface" ]; then echo - echo_yellow "The interface changed its name while putting in monitor mode. Autoselected" + language_strings $language 21 "yellow" interface=$new_interface fi echo - echo_yellow "Monitor mode now is set on $interface" - read -p "Press [Enter] key to continue..." + language_strings $language 22 "yellow" + do_read } function check_interface_mode() { @@ -169,23 +498,50 @@ function check_interface_mode() { return 0 fi - echo_yellow "There is a problem with the interface selected. Redirecting you to exit script" - read -p "Press [Enter] key to continue..." + language_strings $language 23 "yellow" + do_read exit_script_option } +function language_option() { + + clear + echo_red "*******************************Change language**********************************" + language_strings $language 81 "green" + echo + language_strings $language 79 + language_strings $language 80 + + read language_selected + case $language_selected in + 1) + language="english" + language_strings $language 83 "yellow" + do_read + ;; + 2) + language="spanish" + language_strings $language 84 "yellow" + do_read + ;; + *) + invalid_language_selected + ;; + esac +} + function select_interface() { clear echo_red "*****************************Interface selection********************************" - echo_green "Select an interface to work with :" - echo + language_strings $language 24 "green" + echo ifaces=`ifconfig -a|grep HWaddr|cut -d ' ' -f 1` option_counter=0 for item in $ifaces do option_counter=$[option_counter + 1] - echo "$option_counter. $item" + echo "$option_counter. $item" done read iface if [ -z $iface ]; then @@ -209,7 +565,7 @@ function select_interface() { function read_channel() { echo - echo_green "Set channel (1-14) :" + language_strings $language 25 "green" read channel } @@ -219,13 +575,13 @@ function ask_channel() { read_channel done echo - echo_yellow "Channel set to ${channel}" + language_strings $language 26 "yellow" } function read_bssid() { echo - echo_green "Type target BSSID (example: 00:11:22:33:44:55) :" + language_strings $language 27 "green" read bssid } @@ -235,13 +591,13 @@ function ask_bssid() { read_bssid done echo - echo_yellow "BSSID set to ${bssid}" + language_strings $language 28 "yellow" } function read_essid() { echo - echo_green "Type target ESSID :" + language_strings $language 29 "green" read essid } @@ -251,27 +607,27 @@ function ask_essid() { read_essid else if [ "$essid" = "(Hidden Network)" ]; then echo - echo_yellow "You have selected a hidden network ESSID. Can't use it. Select another one or perform a BSSID based attack instead of this" + language_strings $language 30 "yellow" read_essid fi fi echo - echo_yellow "ESSID set to ${essid}" + language_strings $language 31 "yellow" } function exec_mdk3deauth() { echo echo_red "******************************Mdk3 amok action**********************************" - echo_green "All parameters set" + language_strings $language 32 "green" - rm /tmp/bl.txt > /dev/null 2>&1 + rm -rf /tmp/bl.txt > /dev/null 2>&1 echo $bssid > /tmp/bl.txt echo - echo_blue "Starting attack. When started, press Ctrl+C to stop..." - read -p "Press [Enter] key to start attack..." + language_strings $language 33 "blue" + do_attack_read xterm +j -sb -rightbar -geometry 119x35+350+350 -T "mdk3 amok attack" -e mdk3 $interface d -b /tmp/bl.txt -c $channel } @@ -279,13 +635,13 @@ function exec_aireplaydeauth() { echo echo_red "***************************Aireplay deauth action*******************************" - echo_green "All parameters set" + language_strings $language 32 "green" airmon-ng start $interface $channel > /dev/null 2>&1 echo - echo_blue "Starting attack. When started, press Ctrl+C to stop..." - read -p "Press [Enter] key to start attack..." + language_strings $language 33 "blue" + do_attack_read xterm +j -sb -rightbar -geometry 119x35+350+350 -T "aireplay deauth attack" -e aireplay-ng --deauth 0 -a $bssid --ignore-negative-one $interface } @@ -293,11 +649,11 @@ function exec_wdsconfusion() { echo echo_red "*********************WIDS / WIPS / WDS confusion action*************************" - echo_green "All parameters set" + language_strings $language 32 "green" echo - echo_blue "Starting attack. When started, press Ctrl+C to stop..." - read -p "Press [Enter] key to start attack..." + language_strings $language 33 "blue" + do_attack_read xterm +j -sb -rightbar -geometry 119x35+350+350 -T "wids / wips / wds confusion attack" -e mdk3 $interface w -e $essid -c $channel } @@ -305,11 +661,11 @@ function exec_beaconflood() { echo echo_red "****************************Beacon flood action*********************************" - echo_green "All parameters set" + language_strings $language 32 "green" echo - echo_blue "Starting attack. When started, press Ctrl+C to stop..." - read -p "Press [Enter] key to start attack..." + language_strings $language 33 "blue" + do_attack_read xterm +j -sb -rightbar -geometry 119x35+350+350 -T "beacon flood attack" -e mdk3 $interface b -n $essid -c $channel -s 1000 -h } @@ -317,11 +673,11 @@ function exec_authdos() { echo echo_red "******************************Auth DoS action***********************************" - echo_green "All parameters set" + language_strings $language 32 "green" echo - echo_blue "Starting attack. When started, press Ctrl+C to stop..." - read -p "Press [Enter] key to start attack..." + language_strings $language 33 "blue" + do_attack_read xterm +j -sb -rightbar -geometry 119x35+350+350 -T "auth dos attack" -e mdk3 $interface a -a $bssid -m -s 1024 } @@ -329,11 +685,11 @@ function exec_michaelshutdown() { echo echo_red "**************************Michael Shutdown action*******************************" - echo_green "All parameters set" + language_strings $language 32 "green" echo - echo_blue "Starting attack. When started, press Ctrl+C to stop..." - read -p "Press [Enter] key to start attack..." + language_strings $language 33 "blue" + do_attack_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 } @@ -341,7 +697,7 @@ function mdk3_deauth_option() { echo echo_red "****************************Mdk3 amok parameters********************************" - echo_green "Deauthentication / Dissasociation mdk3 attack chosen (monitor mode needed)" + language_strings $language 35 "green" check_monitor_enabled if [ "$?" != "0" ]; then @@ -349,7 +705,7 @@ function mdk3_deauth_option() { fi echo - echo_yellow "Selected interface $interface is in monitor mode. Attack can be performed" + language_strings $language 34 "yellow" ask_bssid ask_channel @@ -360,7 +716,7 @@ function aireplay_deauth_option() { echo echo_red "*************************Aireplay deauth parameters*****************************" - echo_green "Deauthentication aireplay attack chosen (monitor mode needed)" + language_strings $language 36 "green" check_monitor_enabled if [ "$?" != "0" ]; then @@ -368,7 +724,7 @@ function aireplay_deauth_option() { fi echo - echo_yellow "Selected interface $interface is in monitor mode. Attack can be performed" + language_strings $language 34 "yellow" ask_bssid ask_channel @@ -379,7 +735,7 @@ function wds_confusion_option() { echo echo_red "************************WIDS / WIPS / WDS parameters****************************" - echo_green "WIDS / WIPS / WDS confusion attack chosen (monitor mode needed)" + language_strings $language 37 "green" check_monitor_enabled if [ "$?" != "0" ]; then @@ -387,7 +743,7 @@ function wds_confusion_option() { fi echo - echo_yellow "Selected interface $interface is in monitor mode. Attack can be performed" + language_strings $language 34 "yellow" ask_essid ask_channel @@ -398,7 +754,7 @@ function beacon_flood_option() { echo echo_red "***************************Beacon flood parameters******************************" - echo_green "Beacon flood attack chosen (monitor mode needed)" + language_strings $language 38 "green" check_monitor_enabled if [ "$?" != "0" ]; then @@ -406,7 +762,7 @@ function beacon_flood_option() { fi echo - echo_yellow "Selected interface $interface is in monitor mode. Attack can be performed" + language_strings $language 34 "yellow" ask_essid ask_channel @@ -417,7 +773,7 @@ function auth_dos_option() { echo echo_red "*****************************Auth DoS parameters********************************" - echo_green "Auth DoS attack chosen (monitor mode needed)" + language_strings $language 39 "green" check_monitor_enabled if [ "$?" != "0" ]; then @@ -425,7 +781,7 @@ function auth_dos_option() { fi echo - echo_yellow "Selected interface $interface is in monitor mode. Attack can be performed" + language_strings $language 34 "yellow" ask_bssid exec_authdos @@ -435,7 +791,7 @@ function michael_shutdown_option() { echo echo_red "************************Michael Shutdown parameters*****************************" - echo_green "Michael Shutdown (TKIP) attack chosen (monitor mode needed)" + language_strings $language 40 "green" check_monitor_enabled if [ "$?" != "0" ]; then @@ -443,7 +799,7 @@ function michael_shutdown_option() { fi echo - echo_yellow "Selected interface $interface is in monitor mode. Attack can be performed" + language_strings $language 34 "yellow" ask_bssid exec_michaelshutdown @@ -452,26 +808,26 @@ function michael_shutdown_option() { function print_selections() { if [ -z "$interface" ]; then - echo_blue "No interface selected. You'll be redirected to select one" + language_strings $language 41 "blue" echo - read -p "Press [Enter] key to continue..." + do_read select_interface menu_options else check_interface_mode - echo_blue "Interface $interface selected. Mode: $ifacemode" + language_strings $language 42 "blue" fi if [ -n "$bssid" ]; then - echo_blue "Selected BSSID: $bssid" + language_strings $language 43 "blue" if [ -n "$channel" ]; then - echo_blue "Selected Channel: $channel" + language_strings $language 44 "blue" fi if [ -n "$essid" ]; then if [ "$essid" = "(Hidden Network)" ]; then - echo_blue "Selected ESSID: $essid <- can't be used" + language_strings $language 45 "blue" else - echo_blue "Selected ESSID: $essid" + language_strings $language 46 "blue" fi fi @@ -485,22 +841,23 @@ function menu_options() { current_menu="main" print_selections echo - echo_green "Select your option from menu :" - echo_blue "---------" - echo "1. Select another network interface" - echo "2. Explore neighbourhood (info window) for targets (monitor mode needed)" - echo_blue "---------(monitor mode needed for attacks)---------" - echo "3. Deauth / disassoc amok mdk3 attack" - echo "4. Deauth aireplay attack" - echo "5. WIDS / WIPS / WDS confusion attack" + language_strings $language 47 "green" + echo_blue "---------" + language_strings $language 48 + language_strings $language 49 + language_strings $language 50 "blue" + language_strings $language 51 + language_strings $language 52 + language_strings $language 53 echo_blue "---------" - echo "6. Old \"obsolete/non very effective\" attacks menu" + language_strings $language 54 echo_blue "---------" - echo "7. Put interface in monitor mode" - echo "8. Put interface in managed mode" + language_strings $language 55 + language_strings $language 56 echo_blue "---------" - echo "9. Credits & about" - echo "10. Exit script" + language_strings $language 60 + language_strings $language 78 + language_strings $language 61 read option case $option in @@ -532,6 +889,9 @@ function menu_options() { credits_option ;; 10) + language_option + ;; + 11) exit_script_option ;; *) @@ -549,21 +909,22 @@ function old_attacks_menu() { current_menu="old" print_selections echo - echo_green "Select your option from menu :" + language_strings $language 47 "green" echo_blue "---------" - echo "1. Select another network interface" - echo "2. Explore neighbourhood (info window) for targets (monitor mode needed)" - echo_blue "---------(monitor mode needed for attacks)---------" - echo "3. Beacon flood attack" - echo "4. Auth DoS attack" - echo "5. Michael shutdown exploitation (TKIP) attack" + language_strings $language 48 + language_strings $language 49 + language_strings $language 50 "blue" + language_strings $language 62 + language_strings $language 63 + language_strings $language 64 echo_blue "---------" - echo "6. Put interface in monitor mode" - echo "7. Put interface in managed mode" + language_strings $language 57 + language_strings $language 58 echo_blue "---------" - echo "8. Return to main menu" - echo "9. Credits & about" - echo "10. Exit script" + language_strings $language 59 + language_strings $language 60 + language_strings $language 78 + language_strings $language 61 read oldoption @@ -596,6 +957,9 @@ function old_attacks_menu() { credits_option ;; 10) + language_option + ;; + 11) exit_script_option ;; *) @@ -609,7 +973,7 @@ function explore_neighbourhood_option() { echo echo_red "***************************Exploring Neighbourhood******************************" - echo_green "Exploring Neighbourhood option chosen (monitor mode needed)" + language_strings $language 65 "green" check_monitor_enabled if [ "$?" != "0" ]; then @@ -617,13 +981,13 @@ function explore_neighbourhood_option() { fi echo - echo_yellow "Selected interface $interface is in monitor mode. Exploration can be performed" + language_strings $language 66 "yellow" echo - echo_blue "When started, press Ctrl+C to stop..." + language_strings $language 67 "yellow" + do_read - read -p "Press [Enter] key to continue..." - rm /tmp/nws* > /dev/null 2>&1 - rm /tmp/clts.csv > /dev/null 2>&1 + rm -rf /tmp/nws* > /dev/null 2>&1 + rm -rf /tmp/clts.csv > /dev/null 2>&1 xterm +j -sb -rightbar -geometry 119x35+350+350 -T "Exploring neighbourhood" -e airodump-ng -w /tmp/nws $interface targetline=`cat /tmp/nws-01.csv | egrep -a -n '(Station|Cliente)' | awk -F : '{print $1}'` targetline=`expr $targetline - 1` @@ -634,13 +998,13 @@ function explore_neighbourhood_option() { csvline=`wc -l /tmp/nws.csv | awk '{print $1}'` if [ $csvline -le 3 ]; then echo - echo_yellow "No networks found" - read -p "Press [Enter] key to continue..." + language_strings $language 68 "yellow" + do_read return fi - rm /tmp/nws.txt > /dev/null 2>&1 - rm /tmp/wnws.txt > /dev/null 2>&1 + rm -rf /tmp/nws.txt > /dev/null 2>&1 + rm -rf /tmp/wnws.txt > /dev/null 2>&1 i=0 while IFS=, read MAC FTS LTS CHANNEL SPEED PRIVACY CYPHER AUTH POWER BEACON IV LANIP IDLENGTH ESSID KEY; do @@ -677,7 +1041,7 @@ function select_target() { clear echo_red "*******************************Select target************************************" - echo " N. BSSID CHANNEL PWR ESSID" + language_strings $language 69 echo_blue "-------------------------------------------------------" i=0 while IFS=, read MAC CHANNEL POWER ESSID; do @@ -724,21 +1088,21 @@ function select_target() { done < "/tmp/wnws.txt" echo if [ $i -eq 1 ]; then - echo_yellow "Only one target detected. Autoselected" + language_strings $language 70 "yellow" select=1 - read -p "Press [Enter] key to continue..." + do_read else - echo "(*) Network with clients" + language_strings $language 71 echo_blue "-------------------------------------------------------" echo - read -p "Select target network : " select + do_select_target_read fi while [[ $select -lt 1 ]] || [[ $select -gt $i ]]; do echo - echo_yellow "Invalid target network was chosen" + language_strings $language 72 "yellow" echo - read -p "Select target network : " select + do_select_target_read done essid=${network_names[$select]} @@ -749,8 +1113,8 @@ function select_target() { function credits_option() { clear - echo_red "******************************Credits & about***********************************" - echo_blue "airgeddon script v$version developed by :" + echo_red "******************************About & Credits***********************************" + language_strings $language 73 "green" echo " ____ ____ __ _______" echo "___ _/_ | _____/_ |/ |_ \ _ \_______" echo "\ \/ /| |/ ___/| \ __\/ /_\ \_ __ \ " @@ -768,24 +1132,35 @@ function credits_option() { echo " '.__.'" echo " | |" echo - echo_blue "This script is under GPLv2 (or later) License." - echo_blue "Thanks to the \"Spanish pen testing crew\" for beta testing and support received." - read -p "Press [Enter] key to continue..." + language_strings $language 74 "blue" + language_strings $language 75 "blue" + language_strings $language 85 "blue" + do_read +} + +function invalid_language_selected() { + + echo + language_strings $language 82 "yellow" + echo + do_read + echo + language_option } function invalid_menu_option() { echo - echo_yellow "Invalid menu option was chosen" - read -p "Press [Enter] key to continue..." + language_strings $language 76 "yellow" + do_read } function invalid_iface_selected() { echo - echo_yellow "Invalid interface was chosen" + language_strings $language 77 "yellow" echo - read -p "Press [Enter] key to continue..." + do_read echo select_interface } @@ -794,9 +1169,9 @@ function killing_script() { echo echo - echo_yellow "Please, exit properly using menu option" + language_strings $language 12 "yellow" echo - read -p "Press [Enter] key to continue..." + do_read if [ "$current_menu" = "main" ]; then menu_options @@ -809,7 +1184,7 @@ function exit_script_option() { echo echo_red "************************************Exit****************************************" - echo_blue "Exiting airgeddon script - 2016 - See you soon! :)" + language_strings $language 11 "blue" echo exit } @@ -818,21 +1193,33 @@ function detect_distro() { uname -a | grep kali > /dev/null if [ "$?" = "0" ]; then - echo_yellow "Kali Linux distro detected. Script can continue..." + language_strings $language 2 "yellow" distro="Kali" + distro_language="english" + if [ "$distro_language" != "$language" ];then + echo + language=$distro_language + language_strings $language 3 "yellow" + fi echo return fi uname -a | grep wifislax > /dev/null if [ "$?" = "0" ]; then - echo_yellow "Wifislax Linux distro detected. Script can continue..." + language_strings $language 4 "yellow" distro="Wifislax" + distro_language="spanish" + if [ "$distro_language" != "$language" ];then + echo + language=$distro_language + language_strings $language 3 "yellow" + fi echo return fi - echo_yellow "No compatible distro detected" + language_strings $language 5 "yellow" exit_script_option } @@ -841,15 +1228,15 @@ function welcome() { clear current_menu="main" echo_red "***********************************Welcome**************************************" - echo_blue "Welcome to airgeddon script" + language_strings $language 6 "blue" echo - echo_green "This script is only for educational purposes. Be good boyz&girlz" + language_strings $language 7 "green" echo - echo_blue "This script is only working on Kali Linux and Wifislax" - echo_blue "Detecting distro..." + language_strings $language 8 "blue" + language_strings $language 9 "blue" echo detect_distro - read -p "Press [Enter] key to continue..." + do_read select_interface menu_options @@ -883,4 +1270,4 @@ function echo_red() { tput sgr0 } -welcome +welcome \ No newline at end of file