diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..00eebf3ac --- /dev/null +++ b/.gitattributes @@ -0,0 +1,13 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Text files and source code +*.txt text +*.sh text +*.md text + +# Binary image formats +*.png binary + +# Standard to msysgit +*.odt binary \ No newline at end of file diff --git a/.gitignore b/.gitignore index 0793c2ce1..f698b7780 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ .Trashes ehthumbs.db Thumbs.db +desktop.ini +.dropbox* .idea \ No newline at end of file diff --git a/LICENSE b/LICENSE index 94a9ed024..20d40b6bc 100644 --- a/LICENSE +++ b/LICENSE @@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. \ No newline at end of file diff --git a/README.md b/README.md index 315b2f120..eccb0d698 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ #airgeddon This is a multi-use bash script for Linux systems to audit wireless networks.
- + #Features - Interface mode switcher (Monitor-Managed).
@@ -33,14 +33,20 @@ Tested on these compatible Linux distros:
*-Gentoo 20160514*
*-Fedora 24*
*-Red Hat 7 (Maipo)*
+*-Arch 4.6.2-1*
+*-Raspbian 7 (Wheezy) and 8 (Jessie)*

-It's already available in some repositories like ArchStrike used by some distros (Arch Linux).
+It's already available in ArchStrike repositories used by some distros based on Arch Linux.
+Repositories versions will have auto-update feature disabled in order to avoid breaking dependencies. There is a var at the beginning of the file, *"auto_update"* can be set to 0 to turn off the auto-update feature.
+
+Anyway, can be used with any Linux distro if you have installed the tools what script needs. The script checks for them at the beginning.

-Anyway, can be used with any Linux distro if you have installed the tools what script needs. The script checks for them at the beginning.

Essential tools: <- *the script doesn't work if you don't have installed all of them*
-`iwconfig iw awk airmon-ng airodump-ng aircrack-ng xterm`

+`iwconfig iw awk airmon-ng airodump-ng aircrack-ng xterm`
+
Optional tools: <- *not necessary to work, only needed for some features*
-`wpaclean crunch aireplay-ng mdk3 hashcat`

+`wpaclean crunch aireplay-ng mdk3 hashcat`
+
Update tools: <- *not necessary to work, only used for auto-update*
`curl`

@@ -61,7 +67,7 @@ Under Wifislax Linux and others, it can be launched using bash or sh. Example `s If you launch the script using sh and a *"Syntax error"* appears, launch it with bash instead of sh.
#Supported Languages -English, Spanish, French and Catalan.
+English, Spanish, French, Catalan and Portuguese.
#Project Collaboration You can join the project:
@@ -89,6 +95,7 @@ See /dev/null; then - echo -e ${red_color}" Error\r"${normal_color} - update_toolsok=0 - else - echo -e ${green_color}" Ok\r"${normal_color} - fi - done + if [ ${auto_update} -eq 1 ]; then + + echo + language_strings ${language} 226 "blue" + + for i in "${update_tools[@]}"; do + echo -ne "$i" + time_loop + if ! hash ${i} 2> /dev/null; then + echo -e ${red_color}" Error\r"${normal_color} + update_toolsok=0 + else + echo -e ${green_color}" Ok\r"${normal_color} + fi + done + fi if [ ${essential_toolsok} -eq 0 ]; then echo @@ -3828,18 +4168,21 @@ function check_bash_version() { language_strings ${language} 221 "yellow" else language_strings ${language} 222 "yellow" + exit_code=1 exit_script_option fi } function check_update_tools() { - if [ ${update_toolsok} -eq 1 ]; then - autoupdate_check - else - echo - language_strings ${language} 225 "yellow" - language_strings ${language} 115 "read" + if [ ${auto_update} -eq 1 ]; then + if [ ${update_toolsok} -eq 1 ]; then + autoupdate_check + else + echo + language_strings ${language} 225 "yellow" + language_strings ${language} 115 "read" + fi fi } @@ -3916,15 +4259,19 @@ function initialize_script_settings() { exit_code=0 check_kill_needed=0 airmon_fix + autochanged_language=0 } function welcome() { clear current_menu="pre_main_menu" - autodetect_language initialize_script_settings + if [ ${auto_change_language} -eq 1 ]; then + autodetect_language + fi + if [ ${debug_mode} -eq 0 ]; then language_strings ${language} 86 "titlered" language_strings ${language} 6 "blue" @@ -3951,6 +4298,7 @@ function welcome() { detect_distro_main language_strings ${language} 115 "read" + airmonzc_security_check check_update_tools fi @@ -3959,6 +4307,20 @@ function welcome() { main_menu } +function airmonzc_security_check() { + + if [ "$airmon" = "airmon-zc" ]; then + if ! hash ethtool 2> /dev/null; then + echo + language_strings ${language} 247 "yellow" + echo + language_strings ${language} 115 "read" + exit_code=1 + exit_script_option + fi + fi +} + function compare_floats_greater_than() { awk -v n1=$1 -v n2=$2 'BEGIN{ if (n1>n2) exit 0; exit 1}' @@ -4027,7 +4389,6 @@ function autoupdate_check() { function autodetect_language() { - autochanged_language=0 [[ $(locale | grep LANG) =~ ^(.*)=\"?([a-zA-Z]+)_(.*)$ ]] && lang="${BASH_REMATCH[2]}" for lgkey in "${!lang_association[@]}"; do @@ -4057,6 +4418,9 @@ function check_pending_of_translation() { elif [[ "$1" =~ ^$escaped_hintvar[[:space:]](\\033\[[0-9];[0-9]{1,2}m)?($escaped_pending_of_translation)[[:space:]](.*) ]]; then text=${cyan_color}"$pending_of_translation "${brown_color}"$hintvar "${pink_color}"${BASH_REMATCH[3]}" return 1 + elif [[ "$1" =~ ^(\*+)[[:space:]]$escaped_pending_of_translation[[:space:]]([^\*]+)(\*+)$ ]]; then + text=${2}"${BASH_REMATCH[1]}"${cyan_color}" $pending_of_translation "${2}"${BASH_REMATCH[2]}${BASH_REMATCH[3]}" + return 1 fi return 0 diff --git a/airgeddon_translations.ods b/airgeddon_translations.ods index ba2388d5d..64b2a6d37 100644 Binary files a/airgeddon_translations.ods and b/airgeddon_translations.ods differ diff --git a/changelog.txt b/changelog.txt index ab550303e..f8faf01cf 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,11 @@ +3.42 +Compatibility extended to Arch Linux +Compatibility extended to Raspbian Linux for Raspberry Pi +Additional check for systems which use airmon-zc, now checks for ethtool to avoid errors +Portuguese language translation added +Auto-update can be disabled using a var (useful for repositories versions) +Auto change language feature can be disabled using a var + 3.41 Show network cards chipset while selecting interface Some language strings changed diff --git a/airgeddon_banner.png b/imgs/airgeddon_banner.png similarity index 100% rename from airgeddon_banner.png rename to imgs/airgeddon_banner.png diff --git a/imgs/airgeddon_icon.png b/imgs/airgeddon_icon.png new file mode 100644 index 000000000..5ffc0d05c Binary files /dev/null and b/imgs/airgeddon_icon.png differ