diff --git a/README.md b/README.md index 8ec9f1fbd..19ce601b9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ #airgeddon -Version 2.01
+Version 2.02
This is a DoS (Denial of Service) bash script for wireless networks.
#Requirements @@ -48,4 +48,9 @@ Traps managing feature

2.01
Multilanguage support feature included
-English and Spanish languages added
\ No newline at end of file +English and Spanish languages added
+
+2.02
+Menu titles improvement
+Converted to UTF-8 enconding. Special spanish chars bug fixed
+Some minor code improvements
\ No newline at end of file diff --git a/airgeddon.sh b/airgeddon.sh index 57451a415..d54168ccf 100644 --- a/airgeddon.sh +++ b/airgeddon.sh @@ -1,18 +1,20 @@ #!/bin/bash -version="2.01" +version="2.02" -trap killing_script INT - -#change this line to select another default language +#Change these lines to select another default language language="english" #language="spanish" +#General vars +urlgithub="https://github.com/v1s1t0r1sh3r3/airgeddon" +mail="v1s1t0r.1sh3r3@gmail.com" + 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["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" @@ -21,7 +23,7 @@ function language_strings() { 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["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..." @@ -29,35 +31,35 @@ function language_strings() { 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",6]="Welcome to airgeddon script v$version" + arr["spanish",6]="Bienvenido al airgeddon script v$version" 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["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",8]="Supported distros for this script: Kali and Wifislax" + arr["spanish",8]="Distros soportadas por este script: Kali 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["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["spanish",11]="Saliendo de airgeddon script - 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["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["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["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" @@ -69,13 +71,13 @@ function language_strings() { 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["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["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" @@ -84,7 +86,7 @@ function language_strings() { 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["spanish",24]="Selecciona un interfaz para trabajar con él :" arr["english",25]="Set channel (1-14) :" arr["spanish",25]="Selecciona un canal (1-14) :" @@ -108,19 +110,19 @@ function language_strings() { arr["spanish",31]="ESSID elegido ${essid}" arr["english",32]="All parameters set" - arr["spanish",32]="Todos los parámetros están listos" + 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["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["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["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)" @@ -135,7 +137,7 @@ function language_strings() { 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["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" @@ -153,7 +155,7 @@ function language_strings() { arr["spanish",46]="ESSID seleccionado: $essid" arr["english",47]="Select an option from menu :" - arr["spanish",47]="Selecciona una opción del menú :" + 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" @@ -174,7 +176,7 @@ function language_strings() { 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["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" @@ -189,10 +191,10 @@ function language_strings() { 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["spanish",59]="8. Volver al menú principal" arr["english",60]="9. About & Credits" - arr["spanish",60]="9. Acerca de & Créditos" + arr["spanish",60]="9. Acerca de & Créditos" arr["english",61]="11. Exit script" arr["spanish",61]="11. Salir del script" @@ -207,10 +209,10 @@ function language_strings() { 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["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["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..." @@ -222,52 +224,118 @@ function language_strings() { 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["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["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["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",75]="Thanks to the \"Spanish pen testing crew\" and \"Wifislax Staff\" for beta testing and support received" + arr["spanish",75]="Gracias al \"Spanish pen testing crew\" y al \"Wifislax Staff\" 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["spanish",76]="Opción del menú no válida" arr["english",77]="Invalid interface was chosen" - arr["spanish",77]="Interfaz no válida" + 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["spanish",79]="1. Inglés" arr["english",80]="2. Spanish" - arr["spanish",80]="2. Español" + 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["spanish",82]="Idioma no válido" arr["english",83]="Language changed to English" - arr["spanish",83]="Idioma cambiado a Inglés" + arr["spanish",83]="Idioma cambiado a Inglés" arr["english",84]="Language changed to Spanish" - arr["spanish",84]="Idioma cambiado a Español" + arr["spanish",84]="Idioma cambiado a Español" + + arr["english",85]="Send me bugs or suggestions to $mail" + arr["spanish",85]="Enviadme errores o sugerencias a $mail" + + arr["english",86]="Welcome" + arr["spanish",86]="Bienvenid@" + + arr["english",87]="Change language" + arr["spanish",87]="Cambiar idioma" + + arr["english",88]="Interface selection" + arr["spanish",88]="Selección de interfaz" + + arr["english",89]="Mdk3 amok action" + arr["spanish",89]="Acción mdk3 amok" + + arr["english",90]="Aireplay deauth action" + arr["spanish",90]="Acción aireplay deauth" + + arr["english",91]="WIDS / WIPS / WDS confusion action" + arr["spanish",91]="Acción WIDS / WIPS / WDS confusion" + + arr["english",92]="Beacon flood action" + arr["spanish",92]="Acción Beacon flood" + + arr["english",93]="Auth DoS action" + arr["spanish",93]="Acción Auth DoS" + + arr["english",94]="Michael Shutdown action" + arr["spanish",94]="Acción Michael Shutdown" + + arr["english",95]="Mdk3 amok parameters" + arr["spanish",95]="Parámetros Mdk3 amok" + + arr["english",96]="Aireplay deauth parameters" + arr["spanish",96]="Parámetros Aireplay deauth" + + arr["english",97]="WIDS / WIPS / WDS parameters" + arr["spanish",97]="Parámetros WIDS / WIPS / WDS" + + arr["english",98]="Beacon flood parameters" + arr["spanish",98]="Parámetros Beacon flood" - 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" + arr["english",99]="Auth DoS parameters" + arr["spanish",99]="Parámetros Auth DoS" + + arr["english",100]="Michael Shutdown parameters" + arr["spanish",100]="Parámetros Michael Shutdown" + + arr["english",101]="Airgeddon script menu" + arr["spanish",101]="Menú airgeddon script" + + arr["english",102]="Old attacks menu" + arr["spanish",102]="Menú ataques antiguos" + + arr["english",103]="Exploring Neighbourhood" + arr["spanish",103]="Explorar vecindario" + + arr["english",104]="Select target" + arr["spanish",104]="Seleccionar objetivo" + + arr["english",105]="About & Credits" + arr["spanish",105]="Acerca de & Créditos" + + arr["english",106]="Exiting" + arr["spanish",106]="Saliendo" + + arr["english",107]="Join the project at $urlgithub" + arr["spanish",107]="Únete al proyecto en $urlgithub" case "$3" in "yellow") @@ -277,7 +345,26 @@ function language_strings() { echo_blue "${arr[$1,$2]}" ;; "red") - echo_red "${arr[$1,$2]}" + 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" ;; "green") echo_green "${arr[$1,$2]}" @@ -391,7 +478,7 @@ function disable_rfkill() { rfkill unblock 0 for i in {0..5}; do - rfkill unblock $i + rfkill unblock $i done } @@ -506,7 +593,7 @@ function check_interface_mode() { function language_option() { clear - echo_red "*******************************Change language**********************************" + language_strings $language 87 "red" language_strings $language 81 "green" echo language_strings $language 79 @@ -533,7 +620,7 @@ function language_option() { function select_interface() { clear - echo_red "*****************************Interface selection********************************" + language_strings $language 88 "red" language_strings $language 24 "green" echo ifaces=`ifconfig -a|grep HWaddr|cut -d ' ' -f 1` @@ -619,7 +706,7 @@ function ask_essid() { function exec_mdk3deauth() { echo - echo_red "******************************Mdk3 amok action**********************************" + language_strings $language 89 "red" language_strings $language 32 "green" rm -rf /tmp/bl.txt > /dev/null 2>&1 @@ -634,7 +721,7 @@ function exec_mdk3deauth() { function exec_aireplaydeauth() { echo - echo_red "***************************Aireplay deauth action*******************************" + language_strings $language 90 "red" language_strings $language 32 "green" airmon-ng start $interface $channel > /dev/null 2>&1 @@ -648,7 +735,7 @@ function exec_aireplaydeauth() { function exec_wdsconfusion() { echo - echo_red "*********************WIDS / WIPS / WDS confusion action*************************" + language_strings $language 91 "red" language_strings $language 32 "green" echo @@ -660,7 +747,7 @@ function exec_wdsconfusion() { function exec_beaconflood() { echo - echo_red "****************************Beacon flood action*********************************" + language_strings $language 92 "red" language_strings $language 32 "green" echo @@ -672,7 +759,7 @@ function exec_beaconflood() { function exec_authdos() { echo - echo_red "******************************Auth DoS action***********************************" + language_strings $language 93 "red" language_strings $language 32 "green" echo @@ -684,7 +771,7 @@ function exec_authdos() { function exec_michaelshutdown() { echo - echo_red "**************************Michael Shutdown action*******************************" + language_strings $language 94 "red" language_strings $language 32 "green" echo @@ -696,7 +783,7 @@ function exec_michaelshutdown() { function mdk3_deauth_option() { echo - echo_red "****************************Mdk3 amok parameters********************************" + language_strings $language 95 "red" language_strings $language 35 "green" check_monitor_enabled @@ -715,7 +802,7 @@ function mdk3_deauth_option() { function aireplay_deauth_option() { echo - echo_red "*************************Aireplay deauth parameters*****************************" + language_strings $language 96 "red" language_strings $language 36 "green" check_monitor_enabled @@ -734,7 +821,7 @@ function aireplay_deauth_option() { function wds_confusion_option() { echo - echo_red "************************WIDS / WIPS / WDS parameters****************************" + language_strings $language 97 "red" language_strings $language 37 "green" check_monitor_enabled @@ -753,7 +840,7 @@ function wds_confusion_option() { function beacon_flood_option() { echo - echo_red "***************************Beacon flood parameters******************************" + language_strings $language 98 "red" language_strings $language 38 "green" check_monitor_enabled @@ -772,7 +859,7 @@ function beacon_flood_option() { function auth_dos_option() { echo - echo_red "*****************************Auth DoS parameters********************************" + language_strings $language 99 "red" language_strings $language 39 "green" check_monitor_enabled @@ -790,7 +877,7 @@ function auth_dos_option() { function michael_shutdown_option() { echo - echo_red "************************Michael Shutdown parameters*****************************" + language_strings $language 100 "red" language_strings $language 40 "green" check_monitor_enabled @@ -830,14 +917,13 @@ function print_selections() { language_strings $language 46 "blue" fi fi - fi } function menu_options() { clear - echo_red "*****************************airgeddon script menu********************************" + language_strings $language 101 "red" current_menu="main" print_selections echo @@ -905,7 +991,7 @@ function menu_options() { function old_attacks_menu() { clear - echo_red "*******************************Old attacks menu*********************************" + language_strings $language 102 "red" current_menu="old" print_selections echo @@ -972,7 +1058,7 @@ function old_attacks_menu() { function explore_neighbourhood_option() { echo - echo_red "***************************Exploring Neighbourhood******************************" + language_strings $language 103 "red" language_strings $language 65 "green" check_monitor_enabled @@ -1040,7 +1126,7 @@ function explore_neighbourhood_option() { function select_target() { clear - echo_red "*******************************Select target************************************" + language_strings $language 104 "red" language_strings $language 69 echo_blue "-------------------------------------------------------" i=0 @@ -1113,7 +1199,7 @@ function select_target() { function credits_option() { clear - echo_red "******************************About & Credits***********************************" + language_strings $language 105 "red" language_strings $language 73 "green" echo " ____ ____ __ _______" echo "___ _/_ | _____/_ |/ |_ \ _ \_______" @@ -1134,7 +1220,9 @@ function credits_option() { echo language_strings $language 74 "blue" language_strings $language 75 "blue" - language_strings $language 85 "blue" + echo + language_strings $language 85 "green" + language_strings $language 107 "green" do_read } @@ -1183,7 +1271,7 @@ function killing_script() { function exit_script_option() { echo - echo_red "************************************Exit****************************************" + language_strings $language 106 "red" language_strings $language 11 "blue" echo exit @@ -1196,7 +1284,7 @@ function detect_distro() { language_strings $language 2 "yellow" distro="Kali" distro_language="english" - if [ "$distro_language" != "$language" ];then + if [ "$distro_language" != "$language" ]; then echo language=$distro_language language_strings $language 3 "yellow" @@ -1210,7 +1298,7 @@ function detect_distro() { language_strings $language 4 "yellow" distro="Wifislax" distro_language="spanish" - if [ "$distro_language" != "$language" ];then + if [ "$distro_language" != "$language" ]; then echo language=$distro_language language_strings $language 3 "yellow" @@ -1227,7 +1315,7 @@ function welcome() { clear current_menu="main" - echo_red "***********************************Welcome**************************************" + language_strings $language 86 "red" language_strings $language 6 "blue" echo language_strings $language 7 "green" @@ -1270,4 +1358,5 @@ function echo_red() { tput sgr0 } +trap killing_script INT welcome \ No newline at end of file