Skip to content

Commit f018a4d

Browse files
Merge pull request #91 from v1s1t0r1sh3r3/dev
Dev to master v7.01
2 parents d1df2d6 + fa8c4f1 commit f018a4d

7 files changed

+82
-19
lines changed

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
### 7.01
2+
- Fixed bug while changing interface mode if the destination interface name is in use
3+
- Removed util-linux dependency for rev use
4+
- The existing iptables rules before the launch of airgeddon are now restored upon exiting if modified
5+
- Fixed bug while checking for NetworkManager's version on some linux distributions
6+
- Tested compatibility with Kali Linux 2017.1 and Parrot 3.5
7+
- Dockerfile updated
8+
19
### 7.0
210
- New WEP attacks menu
311
- Added All-in-One WEP attack

Dockerfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,9 @@ COPY \
102102

103103
#airgeddon install method 2 (only one method can be used, other must be commented)
104104
#Install airgeddon (manual image build)
105-
#Uncomment one of the three to select branch (master->latest, dev->beta, docker->alpha)
105+
#Uncomment one of them to select branch (master->latest, dev->beta)
106106
#ENV BRANCH="master"
107107
#ENV BRANCH="dev"
108-
#ENV BRANCH="docker"
109108
#RUN \
110109
# git clone -b ${BRANCH} ${AIRGEDDON_URL}
111110

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ All the needed info about how to install|use|enjoy `airgeddon` is present at [Gi
7474
[Hat Tip To]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Hat%20Tip%20To
7575
[Inspiration]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Inspiration
7676

77-
[Version-shield]: https://img.shields.io/badge/version-7.0-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version"
77+
[Version-shield]: https://img.shields.io/badge/version-7.01-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version"
7878
[Bash4.2-shield]: https://img.shields.io/badge/bash-4.2%2B-blue.svg?style=flat-square&colorA=273133&colorB=00db00 "Bash 4.2 or later"
7979
[License-shield]: https://img.shields.io/badge/license-GPL%20v3%2B-blue.svg?style=flat-square&colorA=273133&colorB=bd0000 "GPL v3+"
8080
[Docker-shield]: https://img.shields.io/docker/automated/v1s1t0r1sh3r3/airgeddon.svg?style=flat-square&colorA=273133&colorB=f9ff5a "Docker rules!"

airgeddon.sh

+62-14
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
#Title........: airgeddon.sh
33
#Description..: This is a multi-use bash script for Linux systems to audit wireless networks.
44
#Author.......: v1s1t0r
5-
#Date.........: 20170505
6-
#Version......: 7.0
5+
#Date.........: 20170508
6+
#Version......: 7.01
77
#Usage........: bash airgeddon.sh
88
#Bash Version.: 4.2 or later
99

@@ -106,8 +106,8 @@ declare -A possible_alias_names=(
106106
)
107107

108108
#General vars
109-
airgeddon_version="7.0"
110-
language_strings_expected_version="7.0-1"
109+
airgeddon_version="7.01"
110+
language_strings_expected_version="7.01-1"
111111
standardhandshake_filename="handshake-01.cap"
112112
tmpdir="/tmp/"
113113
osversionfile_dir="/etc/"
@@ -751,7 +751,7 @@ function calculate_easybox_algorithm() {
751751
Z1=$((0x${hexi[2]} ^ hex_to_dec[3]))
752752
Z2=$((0x${hexi[3]} ^ hex_to_dec[2]))
753753

754-
easybox_pin=$(printf '%08d\n' "$((0x$X1$X2$Y1$Y2$Z1$Z2$X3))" | rev | cut -c -7 | rev)
754+
easybox_pin=$(printf '%08d\n' "$((0x$X1$X2$Y1$Y2$Z1$Z2$X3))" | awk '{for(i=length; i!=0; i--) x=x substr($0, i, 1);} END {print x}' | cut -c -7 | awk '{for(i=length; i!=0; i--) x=x substr($0, i, 1);} END {print x}')
755755
}
756756

757757
#Calculate the last digit on pin following the checksum rule
@@ -874,7 +874,7 @@ function prepare_et_interface() {
874874
et_initial_state=${ifacemode}
875875

876876
if [ "${ifacemode}" != "Managed" ]; then
877-
new_interface=$(${airmon} stop "${interface}" 2> /dev/null | grep station)
877+
new_interface=$(${airmon} stop "${interface}" 2> /dev/null | grep station | head -n 1)
878878
ifacemode="Managed"
879879
[[ ${new_interface} =~ \]?([A-Za-z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[1]}"
880880
if [ "${interface}" != "${new_interface}" ]; then
@@ -909,6 +909,14 @@ function restore_et_interface() {
909909
ifacemode="Managed"
910910
else
911911
new_interface=$(${airmon} start "${interface}" 2> /dev/null | grep monitor)
912+
desired_interface_name=""
913+
[[ ${new_interface} =~ ^You[[:space:]]already[[:space:]]have[[:space:]]a[[:space:]]([A-Za-z0-9]+)[[:space:]]device ]] && desired_interface_name="${BASH_REMATCH[1]}"
914+
if [ -n "${desired_interface_name}" ]; then
915+
echo
916+
language_strings "${language}" 435 "red"
917+
language_strings "${language}" 115 "read"
918+
return
919+
fi
912920
ifacemode="Monitor"
913921
[[ ${new_interface} =~ \]?([A-Za-z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[1]}"
914922
if [ "${interface}" != "${new_interface}" ]; then
@@ -943,7 +951,7 @@ function managed_option() {
943951
language_strings "${language}" 17 "blue"
944952
ifconfig "${interface}" up
945953

946-
new_interface=$(${airmon} stop "${interface}" 2> /dev/null | grep station)
954+
new_interface=$(${airmon} stop "${interface}" 2> /dev/null | grep station | head -n 1)
947955
ifacemode="Managed"
948956
[[ ${new_interface} =~ \]?([A-Za-z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[1]}"
949957

@@ -993,6 +1001,16 @@ function monitor_option() {
9931001
fi
9941002

9951003
new_interface=$(${airmon} start "${interface}" 2> /dev/null | grep monitor)
1004+
1005+
desired_interface_name=""
1006+
[[ ${new_interface} =~ ^You[[:space:]]already[[:space:]]have[[:space:]]a[[:space:]]([A-Za-z0-9]+)[[:space:]]device ]] && desired_interface_name="${BASH_REMATCH[1]}"
1007+
if [ -n "${desired_interface_name}" ]; then
1008+
echo
1009+
language_strings "${language}" 435 "red"
1010+
language_strings "${language}" 115 "read"
1011+
return
1012+
fi
1013+
9961014
ifacemode="Monitor"
9971015
[[ ${new_interface} =~ \]?([A-Za-z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[1]}"
9981016

@@ -2855,7 +2873,30 @@ function clean_routing_rules() {
28552873
echo "${original_routing_state}" > /proc/sys/net/ipv4/ip_forward
28562874
fi
28572875

2858-
clean_iptables
2876+
if [ "${iptables_saved}" -eq 1 ]; then
2877+
restore_iptables
2878+
else
2879+
clean_iptables
2880+
fi
2881+
}
2882+
2883+
#Save iptables rules
2884+
function save_iptables() {
2885+
2886+
debug_print
2887+
2888+
iptables-save > "${tmpdir}ag.iptables" 2> /dev/null
2889+
if [ "$?" = "0" ]; then
2890+
iptables_saved=1
2891+
fi
2892+
}
2893+
2894+
#Restore iptables rules
2895+
function restore_iptables() {
2896+
2897+
debug_print
2898+
2899+
iptables-restore < "${tmpdir}ag.iptables" 2> /dev/null
28592900
}
28602901

28612902
#Clean iptables rules
@@ -4705,9 +4746,13 @@ function set_std_internet_routing_rules() {
47054746

47064747
debug_print
47074748

4708-
routing_toclean=1
4709-
original_routing_state=$(cat /proc/sys/net/ipv4/ip_forward)
4749+
if [ "${routing_modified}" -eq 0 ]; then
4750+
original_routing_state=$(cat /proc/sys/net/ipv4/ip_forward)
4751+
save_iptables
4752+
fi
4753+
47104754
ifconfig "${interface}" ${et_ip_router} netmask ${std_c_mask} > /dev/null 2>&1
4755+
routing_modified=1
47114756

47124757
clean_iptables
47134758

@@ -7747,7 +7792,7 @@ function exit_script_option() {
77477792
echo -e "${green_color} Ok\r${normal_color}"
77487793
fi
77497794

7750-
if [ ${routing_toclean} -eq 1 ]; then
7795+
if [ ${routing_modified} -eq 1 ]; then
77517796
action_on_exit_taken=1
77527797
language_strings "${language}" 297 "multiline"
77537798
clean_routing_rules
@@ -7793,7 +7838,7 @@ function hardcore_exit() {
77937838
clean_tmpfiles
77947839
fi
77957840

7796-
if [ ${routing_toclean} -eq 1 ]; then
7841+
if [ ${routing_modified} -eq 1 ]; then
77977842
clean_routing_rules
77987843
killall dhcpd > /dev/null 2>&1
77997844
killall hostapd > /dev/null 2>&1
@@ -8318,7 +8363,9 @@ function check_if_kill_needed() {
83188363

83198364
if [ "${nm_system_version}" != "" ]; then
83208365

8321-
[[ ${nm_system_version} =~ ^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]+).*?$ ]] && nm_main_system_version="${BASH_REMATCH[1]}" && nm_system_subversion="${BASH_REMATCH[2]}" && nm_system_subversion2="${BASH_REMATCH[3]}"
8366+
[[ ${nm_system_version} =~ ^([0-9]{1,2})\.([0-9]{1,2})\.?(([0-9]+)|.+)? ]] && nm_main_system_version="${BASH_REMATCH[1]}" && nm_system_subversion="${BASH_REMATCH[2]}" && nm_system_subversion2="${BASH_REMATCH[3]}"
8367+
8368+
[[ ${nm_system_subversion2} =~ [a-zA-Z] ]] && nm_system_subversion2="0"
83228369
83238370
if [ "${nm_main_system_version}" -lt ${nm_min_main_version} ]; then
83248371
check_kill_needed=1
@@ -8654,7 +8701,8 @@ function initialize_script_settings() {
86548701
airmon_fix
86558702
autochanged_language=0
86568703
tmpfiles_toclean=0
8657-
routing_toclean=0
8704+
routing_modified=0
8705+
iptables_saved=0
86588706
spoofed_mac=0
86598707
mac_spoofing_desired=0
86608708
dhcpd_path_changed=0
124 KB
Binary file not shown.

language_strings.sh

+10-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#Title........: language_strings.sh
33
#Description..: All the translated strings that airgeddon uses are located here.
44
#Author.......: v1s1t0r
5-
#Date.........: 20170505
5+
#Date.........: 20170507
66
#Bash Version.: 4.2 or later
77

88
#Set language_strings file version
@@ -11,7 +11,7 @@ function set_language_strings_version() {
1111

1212
debug_print
1313

14-
language_strings_version="7.0-1"
14+
language_strings_version="7.01-1"
1515
}
1616

1717
#Set different language text strings
@@ -3841,6 +3841,14 @@ function language_strings() {
38413841
arr["RUSSIAN",434]="Атака WEP \"Все-в-Одном\" началась. Для её остановки клавишу [Enter] в этом окне"
38423842
arr["GREEK",434]="Η επίθεση WEP \"All-in-One\" έχει αρχίσει. Πατήστε το κουμπί [Enter] σε αυτό το παράθυρο για να την σταματήσετε"
38433843

3844+
arr["ENGLISH",435]="Error trying to change interface mode. During the process the interface name must be changed, but it looks like you already have an interface occupying the name that would be needed (${normal_color}${desired_interface_name}${red_color})"
3845+
arr["SPANISH",435]="Error al intentar cambiar el modo de la interfaz. En el proceso el nombre del interfaz cambia, pero parece que ya tienes un interfaz ocupando el nombre que se necesitaría (${normal_color}${desired_interface_name}${red_color})"
3846+
arr["FRENCH",435]="${pending_of_translation} Erreur lors de la tentative de changer le mode d'interface. Dans le processus, le nom des modifications de l'interface, mais il semble que vous avez déjà une interface occupant le nom nécessaire (${normal_color}${desired_interface_name}${red_color})"
3847+
arr["CATALAN",435]="${pending_of_translation} Error en intentar canviar el mode de la interfície. En el procés el nom de la interfície canvia, però sembla que ja tens una interfície ocupant el nom que es necessitaria (${normal_color}${desired_interface_name}${red_color})"
3848+
arr["PORTUGUESE",435]="${pending_of_translation} Erro ao tentar alterar o modo de interface. No processo, o nome das mudanças de interface, mas parece que você já tem uma interface que ocupa o nome necessário (${normal_color}${desired_interface_name}${red_color})"
3849+
arr["RUSSIAN",435]="${pending_of_translation} Ошибка при попытке изменить режим интерфейса. Во время процесса имя интерфейса должно быть изменено, но похоже, что у вас уже есть интерфейс, занимающий нужное имя (${normal_color}${desired_interface_name}${red_color})"
3850+
arr["GREEK",435]="${pending_of_translation} Σφάλμα κατά την προσπάθεια να αλλάξει την κατάσταση διασύνδεσης. Κατά τη διάρκεια της διαδικασίας, το όνομα διεπαφής πρέπει να αλλάξει, αλλά φαίνεται ότι έχετε ήδη μια διεπαφή που καταλαμβάνει το όνομα που θα χρειαζόταν (${normal_color}${desired_interface_name}${red_color})"
3851+
38443852
case "${3}" in
38453853
"yellow")
38463854
interrupt_checkpoint "${2}" "${3}"

0 commit comments

Comments
 (0)