From 1e240cf555cd1ac54b22cd22a2162f44477c0612 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 14 Nov 2014 20:42:44 +0000 Subject: [PATCH 001/151] minor fix --- install-FruityWifi.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index c58d426..dd1a031 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -86,6 +86,8 @@ then cd aircrack-ng-1.2-beta1 make make install + ln -s /usr/local/sbin/airmon-ng /usr/sbin/airmon-ng + ln -s /usr/local/sbin/airbase-ng /usr/sbin/airbase-ng cd ../ else From 28a00de78514a6533cfc27ca9bcf4223b9ad44ca Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 15 Nov 2014 12:48:25 +0000 Subject: [PATCH 002/151] squid3 v1.2 --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index f24559d..26f6346 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -58,7 +58,7 @@ squid3 - 1.1 + 1.2 xtr4nge squid3 interface module_squid3 From 8daad32986c113dca7e80e6d53461fbc55a46a10 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 15 Nov 2014 15:58:12 +0000 Subject: [PATCH 003/151] phishing module --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 26f6346..f845f60 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -192,4 +192,12 @@ module_tor 2.0 + + phishing + 1.0 + xtr4nge + phishing interface + module_phishing + 2.0 + From 842f5420e237fb3b3e8fc7b0c7370e75673f4d6a Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 15 Nov 2014 22:27:37 +0000 Subject: [PATCH 004/151] minor fix --- install-modules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-modules.py b/install-modules.py index 5e9ee3d..bed3b5d 100755 --- a/install-modules.py +++ b/install-modules.py @@ -71,7 +71,7 @@ cmd_install = "git clone https://github.com/xtr4nge/module_"+info['name']+".git /usr/share/FruityWifi/www/modules/"+info['name'] print cmd_install os.system(cmd_install) - cmd_install = "cd /usr/share/FruityWifi/www/modules/"+info['name']+"/includes/; ./install.sh" + cmd_install = "cd /usr/share/FruityWifi/www/modules/"+info['name']+"/includes/; chmod 755 install.sh; ./install.sh;" os.system(cmd_install) print else: From 923ef4f3ad4b21b24b5c42ec205433a1104d4300 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 30 Nov 2014 22:03:06 +0000 Subject: [PATCH 005/151] Mana module has been added --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index f845f60..5bae9b8 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -200,4 +200,12 @@ module_phishing 2.0 + + mana + 1.0 + @xtr4nge + mana interface + module_mana + 2.1 + From 3e2b5eafeec39d405148b5991051d897d2e542a0 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 30 Nov 2014 23:26:01 +0000 Subject: [PATCH 006/151] minor update --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 5bae9b8..07bad4d 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -106,7 +106,7 @@ karma - 1.1 + 1.2 xtr4nge Karma interface module_karma From ee9a979f18493dfa230c2a3d0628ae0f0b60eda3 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 11 Dec 2014 00:18:40 +0000 Subject: [PATCH 007/151] minor fix --- modules-FruityWifi.xml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 13a00ad..53bece7 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -2,59 +2,59 @@ nmap - 1.3 + 1.4 @xtr4nge nmap interface module_nmap - 2.0 + 2.1 sslstrip - 1.6 + 1.7 @xtr4nge sslstrip interface module_sslstrip - 2.0 + 2.1 dnsspoof - 1.6 + 1.7 @xtr4nge dnsspoof interface module_dnsspoof - 2.0 + 2.1 urlsnarf - 1.5 + 1.6 @xtr4nge urlsnarf interface module_urlsnarf - 2.0 + 2.1 mdk3 - 1.6 + 1.7 @xtr4nge mdk3 interface module_mdk3 - 2.0 + 2.1 ngrep - 1.3 + 1.4 @xtr4nge ngrep interface module_ngrep - 2.0 + 2.1 captive - 1.3 + 1.4 @xtr4nge captive portal module_captive - 2.0 + 2.1 squid3 From 23790547be097df37c45079083233136b1214438 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 11 Dec 2014 00:35:55 +0000 Subject: [PATCH 008/151] Default path has been changed --- sudo-setup/fruitywifi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sudo-setup/fruitywifi b/sudo-setup/fruitywifi index 0798858..1277efb 100644 --- a/sudo-setup/fruitywifi +++ b/sudo-setup/fruitywifi @@ -1,6 +1,6 @@ fruitywifi ALL=(ALL:ALL) NOPASSWD:ALL Defaults loglinelen = 0 -Defaults logfile = /var/log/fruitywifi/sudo.log +Defaults logfile = /usr/share/fruitywifi/logs/sudo.log Defaults log_year Defaults log_host Defaults syslog=auth From 4622fbb1df870d235ebb46040734f9a4b44254e1 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 11 Dec 2014 00:42:43 +0000 Subject: [PATCH 009/151] minor fix --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b323274..c78a78d 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ v2.1 - Karma service has been replaced by karma module - Sudo has been implemented (replacement for danger) - Logs path can be changed -- Squid dependecies have been removed from FruityWifi installer -- Phishing dependecied have been removed from FruityWifi installer +- Squid dependencies have been removed from FruityWifi installer +- Phishing dependencies have been removed from FruityWifi installer - New AP options available: hostapd, hostapd-mana, hostapd-karma, airmon-ng - Domain name can be changed from config panel - New install options have been added to install-FruityWifi.sh From 6d160fb8294702b2bd014133c71eed65412a8ae0 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Dec 2014 23:33:32 +0000 Subject: [PATCH 010/151] Defaults:fruitywifi has been added --- sudo-setup/fruitywifi | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sudo-setup/fruitywifi b/sudo-setup/fruitywifi index 1277efb..1e3f87a 100644 --- a/sudo-setup/fruitywifi +++ b/sudo-setup/fruitywifi @@ -1,6 +1,6 @@ fruitywifi ALL=(ALL:ALL) NOPASSWD:ALL -Defaults loglinelen = 0 -Defaults logfile = /usr/share/fruitywifi/logs/sudo.log -Defaults log_year -Defaults log_host -Defaults syslog=auth +Defaults:fruitywifi loglinelen = 0 +Defaults:fruitywifi logfile = /usr/share/fruitywifi/logs/sudo.log +Defaults:fruitywifi log_year +Defaults:fruitywifi log_host +Defaults:fruitywifi syslog=auth From 64c1f4baae1ecfb4d35aa502c4ae15a06cd4998a Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 22 Dec 2014 00:02:41 +0000 Subject: [PATCH 011/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 72 +++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 53bece7..eaace81 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -58,147 +58,147 @@ squid3 - 1.2 + 1.3 @xtr4nge squid3 interface module_squid3 - 2.0 + 2.1 kismet - 1.1 + 1.2 @xtr4nge kismet interface module_kismet - 2.0 + 2.1 responder - 1.3 + 1.4 @xtr4nge Responder interface module_responder - 2.0 + 2.1 autostart - 1.1 + 1.2 @xtr4nge Autostart interface module_autostart - 2.0 + 2.1 rpitwit - 1.1 + 1.2 @xtr4nge RPItwit interface module_rpitwit - 2.0 + 2.1 whatsapp - 1.2 + 1.3 @xtr4nge Whatsapp interface module_whatsapp - 2.0 + 2.1 karma - 1.2 + 1.3 @xtr4nge Karma interface module_karma - 2.0 + 2.1 nmcli - 1.1 + 1.2 @xtr4nge nmcli interface module_nmcli - 2.0 + 2.1 3g_4g - 1.0 + 1.1 @xtr4nge 3G/4G interface module_3g_4g - 2.0 + 2.1 supplicant - 1.0 + 1.1 @xtr4nge supplicant interface module_supplicant - 2.0 + 2.1 meterpreter - 1.0 + 1.1 @xtr4nge meterpreter interface module_meterpreter - 2.0 + 2.1 ettercap - 1.0 + 1.1 @xtr4nge ettercap interface module_ettercap - 2.0 + 2.1 tcpdump - 1.0 + 1.1 @xtr4nge tcpdump interface module_tcpdump - 2.0 + 2.1 autossh - 1.0 + 1.1 @xtr4nge autossh interface module_autossh - 2.0 + 2.1 vfeed - 1.0 + 1.1 @xtr4nge vfeed interface module_vfeed - 2.0 + 2.1 nessus - 1.0 + 1.1 @xtr4nge nessus interface module_nessus - 2.0 + 2.1 tor - 1.0 + 1.1 @xtr4nge tor interface module_tor - 2.0 + 2.1 phishing - 1.0 + 1.1 @xtr4nge phishing interface module_phishing - 2.0 + 2.1 mana From e8b707e8e9e94f285ac17fedb9dda06ea4dbc8c0 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 22 Dec 2014 23:21:09 +0000 Subject: [PATCH 012/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index eaace81..1a7b597 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -90,7 +90,7 @@ rpitwit - 1.2 + 1.3 @xtr4nge RPItwit interface module_rpitwit @@ -106,7 +106,7 @@ karma - 1.3 + 1.4 @xtr4nge Karma interface module_karma @@ -114,7 +114,7 @@ nmcli - 1.2 + 1.3 @xtr4nge nmcli interface module_nmcli @@ -122,7 +122,7 @@ 3g_4g - 1.1 + 1.2 @xtr4nge 3G/4G interface module_3g_4g @@ -130,7 +130,7 @@ supplicant - 1.1 + 1.2 @xtr4nge supplicant interface module_supplicant @@ -138,7 +138,7 @@ meterpreter - 1.1 + 1.2 @xtr4nge meterpreter interface module_meterpreter @@ -146,7 +146,7 @@ ettercap - 1.1 + 1.2 @xtr4nge ettercap interface module_ettercap @@ -202,7 +202,7 @@ mana - 1.0 + 1.1 @xtr4nge mana interface module_mana From cc3156cdef4c3c7ada95582687fcbef4e47a506c Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 11 Jan 2015 13:28:27 +0000 Subject: [PATCH 013/151] minor fix --- install-modules.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install-modules.py b/install-modules.py index bed3b5d..130f935 100755 --- a/install-modules.py +++ b/install-modules.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2013-2014 xtr4nge [_AT_] gmail.com +# Copyright (C) 2013-2015 xtr4nge [_AT_] gmail.com # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ import subprocess, os # get FruityWifi version -cmd = "cat /usr/share/FruityWifi/www/config/config.php |grep version" +cmd = "cat /usr/share/fruitywifi/www/config/config.php |grep version" f = os.popen(cmd) output = f.read() version = str(output).replace('\n','').replace('$version="v','').replace('";','') @@ -66,12 +66,12 @@ info['required'] = item.childNodes[0].nodeValue # Install module - if (float(version)) >= float(info['required']): + if (float(version.replace(".",""))) >= float(info['required'].replace(".","")): print info['name'] + " v" + info['version'] - cmd_install = "git clone https://github.com/xtr4nge/module_"+info['name']+".git /usr/share/FruityWifi/www/modules/"+info['name'] + cmd_install = "git clone https://github.com/xtr4nge/module_"+info['name']+".git /usr/share/fruitywifi/www/modules/"+info['name'] print cmd_install os.system(cmd_install) - cmd_install = "cd /usr/share/FruityWifi/www/modules/"+info['name']+"/includes/; chmod 755 install.sh; ./install.sh;" + cmd_install = "cd /usr/share/fruitywifi/www/modules/"+info['name']+"/includes/; chmod 755 install.sh; ./install.sh;" os.system(cmd_install) print else: From 64c096ac0a3d341fdfd7ba69ea757a9e28d414b0 Mon Sep 17 00:00:00 2001 From: Jesus Anton Date: Wed, 4 Feb 2015 12:46:23 +0100 Subject: [PATCH 014/151] fix login_check --- FruityWifi/www/login_check.php | 1 + 1 file changed, 1 insertion(+) diff --git a/FruityWifi/www/login_check.php b/FruityWifi/www/login_check.php index 175a8f7..637eb71 100644 --- a/FruityWifi/www/login_check.php +++ b/FruityWifi/www/login_check.php @@ -21,5 +21,6 @@ //echo $_SESSION["user_id"]; if (!isset($_SESSION["user_id"])) { header('Location: /logout.php'); + exit; } ?> \ No newline at end of file From 4ba9510b71edec19b0270c68c75c8f534b820a0b Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 22 Mar 2015 08:30:15 +0000 Subject: [PATCH 015/151] minor fix --- FruityWifi/www/login_check.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FruityWifi/www/login_check.php b/FruityWifi/www/login_check.php index 637eb71..b85fe99 100644 --- a/FruityWifi/www/login_check.php +++ b/FruityWifi/www/login_check.php @@ -1,6 +1,6 @@ \ No newline at end of file +?> From 3742408ffb909aec41d42ba1218cd3ff48b742e3 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 22 Mar 2015 12:14:19 +0000 Subject: [PATCH 016/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 1a7b597..c5e2a1d 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -208,4 +208,12 @@ module_mana 2.1 + + recon + 1.0 + @xtr4nge + recon interface + module_recon + 2.1 + From aa7d07955c13379b0ad3c6404f53c5ca8742e042 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 22 Mar 2015 13:19:06 +0000 Subject: [PATCH 017/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index c5e2a1d..1a7b597 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -208,12 +208,4 @@ module_mana 2.1 - - recon - 1.0 - @xtr4nge - recon interface - module_recon - 2.1 - From 056fa2b059b8403e17806cc888b689c1053a2c85 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 23 Mar 2015 18:30:08 +0000 Subject: [PATCH 018/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 1a7b597..c5e2a1d 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -208,4 +208,12 @@ module_mana 2.1 + + recon + 1.0 + @xtr4nge + recon interface + module_recon + 2.1 + From a2fdde6bd359b07243fd7fa3bb7b136a836f4b64 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 3 Apr 2015 19:28:39 +0100 Subject: [PATCH 019/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index c5e2a1d..ce9cfdc 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -216,4 +216,12 @@ module_recon 2.1 + + bdfproxy + 1.0 + @xtr4nge + bdfproxy interface + module_bdfproxy + 2.1 + From ad2a64cc9a8c42720e7b3927e55a65e1e4b26699 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 5 Apr 2015 11:14:50 +0100 Subject: [PATCH 020/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index ce9cfdc..d5fc6f5 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -210,7 +210,7 @@ recon - 1.0 + 1.1 @xtr4nge recon interface module_recon From f2538e649c14c5ad6756b69a8b7829bd4a00c8c3 Mon Sep 17 00:00:00 2001 From: psmoo Date: Fri, 15 May 2015 18:55:24 +0200 Subject: [PATCH 021/151] config location fix --- FruityWifi/www/scripts/status_wireless.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/FruityWifi/www/scripts/status_wireless.php b/FruityWifi/www/scripts/status_wireless.php index a65db61..4079261 100644 --- a/FruityWifi/www/scripts/status_wireless.php +++ b/FruityWifi/www/scripts/status_wireless.php @@ -86,15 +86,15 @@ */ //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywificonf/hostapd-secure.conf"; + $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; exec_fruitywifi($exec); //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywificonf/hostapd-secure.conf"; + $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; exec_fruitywifi($exec); //REPLACE WPA_PASSPHRASE - $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywificonf/hostapd-secure.conf"; + $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; exec_fruitywifi($exec); //EXTRACT MACADDRESS @@ -119,15 +119,15 @@ */ //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywificonf/hostapd.conf"; + $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywifi/conf/hostapd.conf"; exec_fruitywifi($exec); //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywificonf/hostapd.conf"; + $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywifi/conf/hostapd.conf"; exec_fruitywifi($exec); //REPLACE WPA_PASSPHRASE - $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywificonf/hostapd.conf"; + $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywifi/conf/hostapd.conf"; exec_fruitywifi($exec); //EXTRACT MACADDRESS From c9e43eded6e2f2caef60c094e09f2ee2af784655 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 6 Jun 2015 11:24:30 +0100 Subject: [PATCH 022/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index d5fc6f5..8a843ad 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -202,7 +202,7 @@ mana - 1.1 + 1.2 @xtr4nge mana interface module_mana From 0d1945cf3d8e21f1f4f9bf87b1c036fb74894901 Mon Sep 17 00:00:00 2001 From: Newpid0 Date: Mon, 8 Jun 2015 13:09:17 -0400 Subject: [PATCH 023/151] Fix incorrect case in paths --- FruityWifi/www/page_config_adv.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FruityWifi/www/page_config_adv.php b/FruityWifi/www/page_config_adv.php index bc19f3b..0e871e6 100644 --- a/FruityWifi/www/page_config_adv.php +++ b/FruityWifi/www/page_config_adv.php @@ -232,10 +232,10 @@  [AP] "; + docElem.appendChild( div ).innerHTML = "" + + ""; - // Support: IE8, Opera 10-12 + // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= - if ( div.querySelectorAll("[t^='']").length ) { + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } @@ -1221,12 +1233,24 @@ setDocument = Sizzle.setDocument = function( node ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests if ( !div.querySelectorAll(":checked").length ) { rbuggyQSA.push(":checked"); } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } }); assert(function( div ) { @@ -1254,7 +1278,8 @@ setDocument = Sizzle.setDocument = function( node ) { }); } - if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector) )) ) { @@ -1342,7 +1367,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Maintain original order return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; } @@ -1369,7 +1394,7 @@ setDocument = Sizzle.setDocument = function( node ) { aup ? -1 : bup ? 1 : sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; // If the nodes are siblings, we can do a quick check @@ -1432,10 +1457,10 @@ Sizzle.matchesSelector = function( elem, expr ) { elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch(e) {} + } catch (e) {} } - return Sizzle( expr, document, null, [elem] ).length > 0; + return Sizzle( expr, document, null, [ elem ] ).length > 0; }; Sizzle.contains = function( context, elem ) { @@ -1564,7 +1589,7 @@ Expr = Sizzle.selectors = { match[1] = match[1].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); if ( match[2] === "~=" ) { match[3] = " " + match[3] + " "; @@ -1607,15 +1632,15 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[5] && match[2]; + unquoted = !match[6] && match[2]; if ( matchExpr["CHILD"].test( match[0] ) ) { return null; } // Accept quoted arguments as-is - if ( match[3] && match[4] !== undefined ) { - match[2] = match[4]; + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && @@ -1651,7 +1676,7 @@ Expr = Sizzle.selectors = { return pattern || (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); }); }, @@ -1673,7 +1698,7 @@ Expr = Sizzle.selectors = { operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; }; @@ -1793,7 +1818,7 @@ Expr = Sizzle.selectors = { matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); + idx = indexOf( seed, matched[i] ); seed[ idx ] = !( matches[ idx ] = matched[i] ); } }) : @@ -1832,6 +1857,8 @@ Expr = Sizzle.selectors = { function( elem, context, xml ) { input[0] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; return !results.pop(); }; }), @@ -1843,6 +1870,7 @@ Expr = Sizzle.selectors = { }), "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; @@ -2020,7 +2048,7 @@ function setFilters() {} setFilters.prototype = Expr.filters = Expr.pseudos; Expr.setFilters = new setFilters(); -function tokenize( selector, parseOnly ) { +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[ selector + " " ]; @@ -2085,7 +2113,7 @@ function tokenize( selector, parseOnly ) { Sizzle.error( selector ) : // Cache the tokens tokenCache( selector, groups ).slice( 0 ); -} +}; function toSelector( tokens ) { var i = 0, @@ -2164,6 +2192,15 @@ function elementMatcher( matchers ) { matchers[0]; } +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + function condense( unmatched, map, filter, context, xml ) { var elem, newUnmatched = [], @@ -2255,7 +2292,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS i = matcherOut.length; while ( i-- ) { if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { seed[temp] = !(results[temp] = elem); } @@ -2290,13 +2327,16 @@ function matcherFromTokens( tokens ) { return elem === checkContext; }, implicitRelative, true ), matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; + return indexOf( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; } ]; for ( ; i < len; i++ ) { @@ -2432,7 +2472,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { superMatcher; } -compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { var i, setMatchers = [], elementMatchers = [], @@ -2440,12 +2480,12 @@ compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { if ( !cached ) { // Generate a function of recursive functions that can be used to check each element - if ( !group ) { - group = tokenize( selector ); + if ( !match ) { + match = tokenize( selector ); } - i = group.length; + i = match.length; while ( i-- ) { - cached = matcherFromTokens( group[i] ); + cached = matcherFromTokens( match[i] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2455,74 +2495,83 @@ compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { // Cache the compiled function cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; } return cached; }; -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function select( selector, context, results, seed ) { +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, - match = tokenize( selector ); + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); - if ( !seed ) { - // Try to minimize operations if there is only one group - if ( match.length === 1 ) { + results = results || []; - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - } - selector = selector.slice( tokens.shift().value.length ); + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; } - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; + selector = selector.slice( tokens.shift().value.length ); + } - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; - break; + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; } + + break; } } } } - // Compile and execute a filtering function + // Compile and execute a filtering function if one is not provided // Provide `match` to avoid retokenization if we modified the selector above - compile( selector, match )( + ( compiled || compile( selector, match ) )( seed, context, !documentIsHTML, @@ -2530,14 +2579,14 @@ function select( selector, context, results, seed ) { rsibling.test( selector ) && testContext( context.parentNode ) || context ); return results; -} +}; // One-time assignments // Sort stability support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; -// Support: Chrome<14 +// Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; @@ -3423,8 +3472,9 @@ jQuery.extend({ readyList.resolveWith( document, [ jQuery ] ); // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger("ready").off("ready"); + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); } } }); @@ -3532,23 +3582,21 @@ support.ownLast = i !== "0"; // false until the test is run support.inlineBlockNeedsLayout = false; +// Execute ASAP in case we need to set body.style.zoom jQuery(function() { - // We need to execute this one support test ASAP because we need to know - // if body.style.zoom needs to be set. + // Minified: var a,b,c,d + var val, div, body, container; - var container, div, - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { // Return for frameset docs that don't have a body return; } // Setup - container = document.createElement( "div" ); - container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; - div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; body.appendChild( container ).appendChild( div ); if ( typeof div.style.zoom !== strundefined ) { @@ -3556,9 +3604,10 @@ jQuery(function() { // Check if natively block-level elements act like inline-block // elements when setting their display to 'inline' and giving // them layout - div.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1"; + div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; - if ( (support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 )) ) { + support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; + if ( val ) { // Prevent IE 6 from affecting layout for positioned elements #11048 // Prevent IE from shrinking the body in IE 7 mode #12869 // Support: IE<8 @@ -3567,9 +3616,6 @@ jQuery(function() { } body.removeChild( container ); - - // Null elements to avoid leaks in IE - container = div = null; }); @@ -3892,12 +3938,15 @@ jQuery.fn.extend({ if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { i = attrs.length; while ( i-- ) { - name = attrs[i].name; - - if ( name.indexOf("data-") === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } } } jQuery._data( elem, "parsedAttrs", true ); @@ -4137,13 +4186,13 @@ var rcheckableType = (/^(?:checkbox|radio)$/i); (function() { - var fragment = document.createDocumentFragment(), - div = document.createElement("div"), - input = document.createElement("input"); + // Minified: var a,b,c + var input = document.createElement( "input" ), + div = document.createElement( "div" ), + fragment = document.createDocumentFragment(); // Setup - div.setAttribute( "className", "t" ); - div.innerHTML = "
a"; + div.innerHTML = "
a"; // IE strips leading whitespace when .innerHTML is used support.leadingWhitespace = div.firstChild.nodeType === 3; @@ -4203,9 +4252,6 @@ var rcheckableType = (/^(?:checkbox|radio)$/i); support.deleteExpando = false; } } - - // Null elements to avoid leaks in IE. - fragment = div = input = null; })(); @@ -4231,7 +4277,7 @@ var rcheckableType = (/^(?:checkbox|radio)$/i); var rformElems = /^(?:input|select|textarea)$/i, rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; @@ -4834,8 +4880,9 @@ jQuery.event = { beforeunload: { postDispatch: function( event ) { - // Even when returnValue equals to undefined Firefox will still show alert - if ( event.result !== undefined ) { + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { event.originalEvent.returnValue = event.result; } } @@ -4901,11 +4948,9 @@ jQuery.Event = function( src, props ) { // Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && ( - // Support: IE < 9 - src.returnValue === false || - // Support: Android < 4.0 - src.getPreventDefault && src.getPreventDefault() ) ? + src.defaultPrevented === undefined && + // Support: IE < 9, Android < 4.0 + src.returnValue === false ? returnTrue : returnFalse; @@ -4968,7 +5013,14 @@ jQuery.Event.prototype = { e.cancelBubble = true; }, stopImmediatePropagation: function() { + var e = this.originalEvent; + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + this.stopPropagation(); } }; @@ -4976,7 +5028,9 @@ jQuery.Event.prototype = { // Create mouseenter/leave events using mouseover/out and event-time checks jQuery.each({ mouseenter: "mouseover", - mouseleave: "mouseout" + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { delegateType: fix, @@ -5980,14 +6034,15 @@ var iframe, */ // Called only from within defaultDisplay function actualDisplay( name, doc ) { - var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle ? + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? // Use of this method is a temporary fix (more like optmization) until something better comes along, // since it was removed from specification and supported only in FF - window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" ); + style.display : jQuery.css( elem[ 0 ], "display" ); // We don't have any data stored on the element, // so use "detach" method as fast way to get rid of the element @@ -6033,68 +6088,47 @@ function defaultDisplay( nodeName ) { (function() { - var a, shrinkWrapBlocksVal, - div = document.createElement( "div" ), - divReset = - "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" + - "display:block;padding:0;margin:0;border:0"; - - // Setup - div.innerHTML = "
a"; - a = div.getElementsByTagName( "a" )[ 0 ]; - - a.style.cssText = "float:left;opacity:.5"; - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - support.opacity = /^0.5/.test( a.style.opacity ); - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - support.cssFloat = !!a.style.cssFloat; - - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - // Null elements to avoid leaks in IE. - a = div = null; + var shrinkWrapBlocksVal; support.shrinkWrapBlocks = function() { - var body, container, div, containerStyles; - - if ( shrinkWrapBlocksVal == null ) { - body = document.getElementsByTagName( "body" )[ 0 ]; - if ( !body ) { - // Test fired too early or in an unsupported environment, exit. - return; - } - - containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px"; - container = document.createElement( "div" ); - div = document.createElement( "div" ); + if ( shrinkWrapBlocksVal != null ) { + return shrinkWrapBlocksVal; + } - body.appendChild( container ).appendChild( div ); + // Will be changed later if needed. + shrinkWrapBlocksVal = false; - // Will be changed later if needed. - shrinkWrapBlocksVal = false; + // Minified: var b,c,d + var div, body, container; - if ( typeof div.style.zoom !== strundefined ) { - // Support: IE6 - // Check if elements with layout shrink-wrap their children - div.style.cssText = divReset + ";width:1px;padding:1px;zoom:1"; - div.innerHTML = "
"; - div.firstChild.style.width = "5px"; - shrinkWrapBlocksVal = div.offsetWidth !== 3; - } + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { + // Test fired too early or in an unsupported environment, exit. + return; + } - body.removeChild( container ); + // Setup + div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; + body.appendChild( container ).appendChild( div ); - // Null elements to avoid leaks in IE. - body = container = div = null; + // Support: IE6 + // Check if elements with layout shrink-wrap their children + if ( typeof div.style.zoom !== strundefined ) { + // Reset CSS: box-sizing; display; margin; border + div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;" + + "padding:1px;width:1px;zoom:1"; + div.appendChild( document.createElement( "div" ) ).style.width = "5px"; + shrinkWrapBlocksVal = div.offsetWidth !== 3; } + body.removeChild( container ); + return shrinkWrapBlocksVal; }; @@ -6110,7 +6144,14 @@ var getStyles, curCSS, if ( window.getComputedStyle ) { getStyles = function( elem ) { - return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); }; curCSS = function( elem, name, computed ) { @@ -6242,92 +6283,46 @@ function addGetHookIf( conditionFn, hookFn ) { (function() { - var a, reliableHiddenOffsetsVal, boxSizingVal, boxSizingReliableVal, - pixelPositionVal, reliableMarginRightVal, - div = document.createElement( "div" ), - containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", - divReset = - "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" + - "display:block;padding:0;margin:0;border:0"; + // Minified: var b,c,d,e,f,g, h,i + var div, style, a, pixelPositionVal, boxSizingReliableVal, + reliableHiddenOffsetsVal, reliableMarginRightVal; // Setup + div = document.createElement( "div" ); div.innerHTML = "
a"; a = div.getElementsByTagName( "a" )[ 0 ]; + style = a && a.style; - a.style.cssText = "float:left;opacity:.5"; + // Finish early in limited (non-browser) environments + if ( !style ) { + return; + } - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - support.opacity = /^0.5/.test( a.style.opacity ); + style.cssText = "float:left;opacity:.5"; + + // Support: IE<9 + // Make sure that element opacity exists (as opposed to filter) + support.opacity = style.opacity === "0.5"; // Verify style float existence // (IE uses styleFloat instead of cssFloat) - support.cssFloat = !!a.style.cssFloat; + support.cssFloat = !!style.cssFloat; div.style.backgroundClip = "content-box"; div.cloneNode( true ).style.backgroundClip = ""; support.clearCloneStyle = div.style.backgroundClip === "content-box"; - // Null elements to avoid leaks in IE. - a = div = null; + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + support.boxSizing = style.boxSizing === "" || style.MozBoxSizing === "" || + style.WebkitBoxSizing === ""; jQuery.extend(support, { reliableHiddenOffsets: function() { - if ( reliableHiddenOffsetsVal != null ) { - return reliableHiddenOffsetsVal; - } - - var container, tds, isSupported, - div = document.createElement( "div" ), - body = document.getElementsByTagName( "body" )[ 0 ]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - // Setup - div.setAttribute( "className", "t" ); - div.innerHTML = "
a"; - - container = document.createElement( "div" ); - container.style.cssText = containerStyles; - - body.appendChild( container ).appendChild( div ); - - // Support: IE8 - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - div.innerHTML = "
t
"; - tds = div.getElementsByTagName( "td" ); - tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Support: IE8 - // Check if empty table cells still have offsetWidth/Height - reliableHiddenOffsetsVal = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - body.removeChild( container ); - - // Null elements to avoid leaks in IE. - div = body = null; - - return reliableHiddenOffsetsVal; - }, - - boxSizing: function() { - if ( boxSizingVal == null ) { + if ( reliableHiddenOffsetsVal == null ) { computeStyleTests(); } - return boxSizingVal; + return reliableHiddenOffsetsVal; }, boxSizingReliable: function() { @@ -6344,84 +6339,88 @@ function addGetHookIf( conditionFn, hookFn ) { return pixelPositionVal; }, + // Support: Android 2.3 reliableMarginRight: function() { - var body, container, div, marginDiv; - - // Use window.getComputedStyle because jsdom on node.js will break without it. - if ( reliableMarginRightVal == null && window.getComputedStyle ) { - body = document.getElementsByTagName( "body" )[ 0 ]; - if ( !body ) { - // Test fired too early or in an unsupported environment, exit. - return; - } - - container = document.createElement( "div" ); - div = document.createElement( "div" ); - container.style.cssText = containerStyles; - - body.appendChild( container ).appendChild( div ); - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - marginDiv = div.appendChild( document.createElement( "div" ) ); - marginDiv.style.cssText = div.style.cssText = divReset; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - - reliableMarginRightVal = - !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); - - body.removeChild( container ); + if ( reliableMarginRightVal == null ) { + computeStyleTests(); } - return reliableMarginRightVal; } }); function computeStyleTests() { - var container, div, - body = document.getElementsByTagName( "body" )[ 0 ]; + // Minified: var b,c,d,j + var div, body, container, contents; - if ( !body ) { + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { // Test fired too early or in an unsupported environment, exit. return; } - container = document.createElement( "div" ); + // Setup div = document.createElement( "div" ); - container.style.cssText = containerStyles; - + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; body.appendChild( container ).appendChild( div ); div.style.cssText = - "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" + - "position:absolute;display:block;padding:1px;border:1px;width:4px;" + - "margin-top:1%;top:1%"; - - // Workaround failing boxSizing test due to offsetWidth returning wrong value - // with some non-1 values of body zoom, ticket #13543 - jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { - boxSizingVal = div.offsetWidth === 4; - }); + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" + + "border:1px;padding:1px;width:4px;position:absolute"; - // Will be changed later if needed. - boxSizingReliableVal = true; - pixelPositionVal = false; + // Support: IE<9 + // Assume reasonable values in the absence of getComputedStyle + pixelPositionVal = boxSizingReliableVal = false; reliableMarginRightVal = true; - // Use window.getComputedStyle because jsdom on node.js will break without it. + // Check for getComputedStyle so that this code is not run in IE<9. if ( window.getComputedStyle ) { pixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; boxSizingReliableVal = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Support: Android 2.3 + // Div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + contents = div.appendChild( document.createElement( "div" ) ); + + // Reset CSS: box-sizing; display; margin; border; padding + contents.style.cssText = div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; + contents.style.marginRight = contents.style.width = "0"; + div.style.width = "1px"; + + reliableMarginRightVal = + !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight ); + + div.removeChild( contents ); + } + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
t
"; + contents = div.getElementsByTagName( "td" ); + contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none"; + reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; + if ( reliableHiddenOffsetsVal ) { + contents[ 0 ].style.display = ""; + contents[ 1 ].style.display = "none"; + reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; } body.removeChild( container ); - - // Null elements to avoid leaks in IE. - div = body = null; } })(); @@ -6461,8 +6460,8 @@ var cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { - letterSpacing: 0, - fontWeight: 400 + letterSpacing: "0", + fontWeight: "400" }, cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; @@ -6519,13 +6518,10 @@ function showHide( elements, show ) { values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) ); } } else { + hidden = isHidden( elem ); - if ( !values[ index ] ) { - hidden = isHidden( elem ); - - if ( display && display !== "none" || !hidden ) { - jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); - } + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); } } } @@ -6598,7 +6594,7 @@ function getWidthOrHeight( elem, name, extra ) { var valueIsBorderBox = true, val = name === "width" ? elem.offsetWidth : elem.offsetHeight, styles = getStyles( elem ), - isBorderBox = support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + isBorderBox = support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; // some non-html elements return undefined for offsetWidth, so check for null/undefined // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 @@ -6654,6 +6650,8 @@ jQuery.extend({ cssNumber: { "columnCount": true, "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, "fontWeight": true, "lineHeight": true, "opacity": true, @@ -6722,9 +6720,6 @@ jQuery.extend({ // Support: IE // Swallow errors from 'invalid' CSS values (#5509) try { - // Support: Chrome, Safari - // Setting style to blank string required to delete "style: x !important;" - style[ name ] = ""; style[ name ] = value; } catch(e) {} } @@ -6781,7 +6776,7 @@ jQuery.each([ "height", "width" ], function( i, name ) { if ( computed ) { // certain elements can have dimension info if we invisibly show them // however, it must have a current display style that would benefit from this - return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ? + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ? jQuery.swap( elem, cssShow, function() { return getWidthOrHeight( elem, name, extra ); }) : @@ -6796,7 +6791,7 @@ jQuery.each([ "height", "width" ], function( i, name ) { elem, name, extra, - support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", styles ) : 0 ); @@ -7145,7 +7140,7 @@ function createTween( value, prop, animation ) { function defaultPrefilter( elem, props, opts ) { /* jshint validthis: true */ - var prop, value, toggle, tween, hooks, oldfire, display, dDisplay, + var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, anim = this, orig = {}, style = elem.style, @@ -7189,16 +7184,16 @@ function defaultPrefilter( elem, props, opts ) { // Set display property to inline-block for height/width // animations on inline elements that are having width/height animated display = jQuery.css( elem, "display" ); - dDisplay = defaultDisplay( elem.nodeName ); - if ( display === "none" ) { - display = dDisplay; - } - if ( display === "inline" && - jQuery.css( elem, "float" ) === "none" ) { + + // Test default display if display is currently "none" + checkDisplay = display === "none" ? + jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; + + if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { // inline-level elements accept inline-block; // block-level elements need to be inline with layout - if ( !support.inlineBlockNeedsLayout || dDisplay === "inline" ) { + if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) { style.display = "inline-block"; } else { style.zoom = 1; @@ -7233,6 +7228,10 @@ function defaultPrefilter( elem, props, opts ) { } } orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + + // Any non-fx value stops us from restoring the original display value + } else { + display = undefined; } } @@ -7274,6 +7273,10 @@ function defaultPrefilter( elem, props, opts ) { } } } + + // If this is a noop like .hide().hide(), restore an overwritten display value + } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) { + style.display = display; } } @@ -7690,10 +7693,11 @@ jQuery.fn.delay = function( time, type ) { (function() { - var a, input, select, opt, - div = document.createElement("div" ); + // Minified: var a,b,c,d,e + var input, div, select, a, opt; // Setup + div = document.createElement( "div" ); div.setAttribute( "className", "t" ); div.innerHTML = "
a"; a = div.getElementsByTagName("a")[ 0 ]; @@ -7741,9 +7745,6 @@ jQuery.fn.delay = function( time, type ) { input.value = "t"; input.setAttribute( "type", "radio" ); support.radioValue = input.value === "t"; - - // Null elements to avoid leaks in IE. - a = input = select = opt = div = null; })(); @@ -7817,7 +7818,9 @@ jQuery.extend({ var val = jQuery.find.attr( elem, "value" ); return val != null ? val : - jQuery.text( elem ); + // Support: IE10-11+ + // option.text throws exceptions (#14686, #14858) + jQuery.trim( jQuery.text( elem ) ); } }, select: { @@ -9105,7 +9108,8 @@ jQuery.extend({ } // We can fire global events as of now if asked to - fireGlobals = s.global; + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { @@ -9364,13 +9368,6 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; }); -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -}); - jQuery._evalUrl = function( url ) { return jQuery.ajax({ @@ -9596,8 +9593,9 @@ var xhrId = 0, // Support: IE<10 // Open requests must be manually aborted on unload (#5280) -if ( window.ActiveXObject ) { - jQuery( window ).on( "unload", function() { +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { for ( var key in xhrCallbacks ) { xhrCallbacks[ key ]( undefined, true ); } @@ -9981,7 +9979,7 @@ jQuery.fn.load = function( url, params, callback ) { off = url.indexOf(" "); if ( off >= 0 ) { - selector = url.slice( off, url.length ); + selector = jQuery.trim( url.slice( off, url.length ) ); url = url.slice( 0, off ); } @@ -10031,6 +10029,16 @@ jQuery.fn.load = function( url, params, callback ) { +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + + + + jQuery.expr.filters.animated = function( elem ) { return jQuery.grep(jQuery.timers, function( fn ) { return elem === fn.elem; @@ -10294,6 +10302,12 @@ jQuery.fn.andSelf = jQuery.fn.addBack; // derived from file names, and jQuery is normally delivered in a lowercase // file name. Do this after creating the global so that if an AMD module wants // to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + if ( typeof define === "function" && define.amd ) { define( "jquery", [], function() { return jQuery; From e36efaa45029151c89e8a4b97d1a20a435cb096c Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 15 Jun 2015 20:15:37 +0100 Subject: [PATCH 026/151] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index c78a78d..5035405 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,6 @@ FruityWifi FruityWifi is a wireless network auditing tool. The application can be installed in any Debian based system adding the extra packages. Tested in Debian, Kali Linux, Kali Linux ARM (Raspberry Pi), Raspbian (Raspberry Pi), Pwnpi (Raspberry Pi), Bugtraq. -[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/080d09d574c44ef246b87e11ed2468fc "githalytics.com")](http://githalytics.com/xtr4nge/FruityWifi) - v2.1 ---------------- From 0183daac67545eacc5352fcebde8f71c8ee205da Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 15 Jun 2015 20:16:29 +0100 Subject: [PATCH 027/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 9050ea8..4079cc5 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -218,7 +218,7 @@
bdfproxy - 1.0 + 1.1 @xtr4nge bdfproxy interface module_bdfproxy From 81721d1bd3323a83ee624e2fd68db20b5c65dac2 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 20 Jun 2015 20:54:57 +0100 Subject: [PATCH 028/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 4079cc5..51aad70 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -232,4 +232,12 @@ module_nginx 2.1 + + nginx + 1.0 + @xtr4nge + MITMf interface + module_mitmf + 2.1 + From e2214edd0eb30808b96005089edf200e3f886543 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 20 Jun 2015 20:57:26 +0100 Subject: [PATCH 029/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 51aad70..9565432 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -233,7 +233,7 @@ 2.1 - nginx + mitmf 1.0 @xtr4nge MITMf interface From 600fa20903f9d5b52ceea84c86b4233f6feaee73 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Jun 2015 11:40:29 +0100 Subject: [PATCH 030/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 9565432..a242994 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -240,4 +240,12 @@ module_mitmf 2.1 + + sslstrip2 + 1.0 + @xtr4nge + sslstrip2 interface + module_sslstrip2 + 2.1 + From c310de86934ad5fc5ee89071e6b38a79a2d561bf Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Jun 2015 14:21:00 +0100 Subject: [PATCH 031/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a242994..b9b8b61 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -248,4 +248,12 @@ module_sslstrip2 2.1 + + frtuiyproxy + 1.0 + @xtr4nge + frtuiyproxy interface + module_frtuiyproxy + 2.1 + From 57bbb276dfb8ad52665698e0849da9a07a74711d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Jun 2015 14:21:45 +0100 Subject: [PATCH 032/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index b9b8b61..56fb644 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -249,11 +249,11 @@ 2.1 - frtuiyproxy + fruityproxy 1.0 @xtr4nge - frtuiyproxy interface - module_frtuiyproxy + fruityproxy interface + module_fruityproxy 2.1 From fdf0aeaf30f05ac2cc90f5729f3e48770427487e Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 15 Jul 2015 18:34:32 +0100 Subject: [PATCH 033/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 56fb644..2fe1f1e 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -256,4 +256,12 @@ module_fruityproxy 2.1 + + ap + 1.0 + @xtr4nge + AP interface + module_ap + 2.2 + From 3444319c107ccd65b9bc929cca08df6b998090aa Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 15 Jul 2015 20:20:22 +0100 Subject: [PATCH 034/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 2fe1f1e..fe8dc52 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -106,7 +106,7 @@ karma - 1.4 + 1.5 @xtr4nge Karma interface module_karma @@ -202,7 +202,7 @@ mana - 1.2 + 1.3 @xtr4nge mana interface module_mana From 7c22762202d5e81279c2b6c36fecd7007e258299 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 16 Jul 2015 14:46:04 +0100 Subject: [PATCH 035/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index fe8dc52..f938ee2 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -250,7 +250,7 @@ fruityproxy - 1.0 + 1.1 @xtr4nge fruityproxy interface module_fruityproxy From 554b95332a551805b0d3502c4e42433b8be26462 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 16 Jul 2015 14:58:25 +0100 Subject: [PATCH 036/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index f938ee2..b7ee670 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -218,7 +218,7 @@ bdfproxy - 1.1 + 1.2 @xtr4nge bdfproxy interface module_bdfproxy From dc191e5fea3715c775ed0068d94e693b75590f56 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 19 Jul 2015 11:05:28 +0100 Subject: [PATCH 037/151] BluePand module has been added --- modules-FruityWifi.xml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index b7ee670..d1f48a6 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -1,5 +1,13 @@ + + ap + 1.0 + @xtr4nge + AP interface + module_ap + 2.2 + nmap 1.4 @@ -257,11 +265,11 @@ 2.1 - ap + bluepand 1.0 - @xtr4nge - AP interface - module_ap - 2.2 + @AnguisCaptor + AP interface + module_bluepand + 2.1 From dff50ce8c753e032e0d941310e77a85ec11f8559 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 19 Jul 2015 19:31:06 +0100 Subject: [PATCH 038/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index d1f48a6..dfa8c01 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -258,11 +258,11 @@ fruityproxy - 1.1 + 1.2 @xtr4nge fruityproxy interface module_fruityproxy - 2.1 + 2.2 bluepand From 2e97eff3ac67242a5ad839ac3191c48383e1c0c3 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 19 Jul 2015 23:38:12 +0100 Subject: [PATCH 039/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index dfa8c01..3471013 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -268,8 +268,24 @@ bluepand 1.0 @AnguisCaptor - AP interface + BluePand interface module_bluepand 2.1 + + stalker + 1.0 + @xtr4nge + Stalker interface + module_stalker + 2.1 + + + devicefinder + 1.0 + @xtr4nge + DeviceFinder interface + module_devicefinder + 2.1 + From 75fba92a9207412cb7caedc9f62dc53213b45363 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 20 Jul 2015 09:31:59 +0100 Subject: [PATCH 040/151] conflicts (fixed) --- FruityWifi/www/login_check.php | 9 +- FruityWifi/www/page_config_adv.php | 304 ++--- FruityWifi/www/scripts/status_wireless.php | 1270 ++++++++++---------- README.md | 9 + 4 files changed, 823 insertions(+), 769 deletions(-) diff --git a/FruityWifi/www/login_check.php b/FruityWifi/www/login_check.php index b85fe99..01f4a50 100644 --- a/FruityWifi/www/login_check.php +++ b/FruityWifi/www/login_check.php @@ -17,10 +17,13 @@ */ ?> +?> \ No newline at end of file diff --git a/FruityWifi/www/page_config_adv.php b/FruityWifi/www/page_config_adv.php index 0e871e6..38022cc 100644 --- a/FruityWifi/www/page_config_adv.php +++ b/FruityWifi/www/page_config_adv.php @@ -1,6 +1,6 @@ . */ ?> - + + + + + + + + + FruityWifi + + - - - - + + @@ -52,6 +61,7 @@ regex_standard($_GET["service"], "msg.php", $regex_extra); regex_standard($_GET["action"], "msg.php", $regex_extra); //regex_standard($_POST["in_out_mode"], "msg.php", $regex_extra); + regex_standard($_POST["api_token"], "msg.php", $regex_extra); } ?> +?>
- +
IN | OUT
- - + @@ -253,64 +267,65 @@
>
+
- Mode - + Mode +
-
+ +
-  [AP] - +  [AP] +
- + - + > - - + + > - - + + > - - + + > - +
  IN -
- -
+ IN +
+ +
-
- -
- "; - } - ?> +
+ +
+ "; + } + ?>
IP
MASK
GW
- + stop [on]"; } else { - echo "start [off]"; + echo "start [-]"; } ?> @@ -328,64 +343,65 @@
> - + - + > - - + + > - - + + > - - + + > - + @@ -299,8 +299,8 @@ @@ -375,8 +376,8 @@
OUT - - - + OUT +
+ +
- + +
"; + echo ""; } ?>
IP
MASK
GW
- + stop [on]"; } else { - echo "start [off]"; + echo "start [-]"; } ?> @@ -400,30 +416,29 @@
- -    + + + + [sniff|inject] - [sniff|inject] + -
@@ -432,9 +447,8 @@
-    Monitor - > - + start [mon0]"; @@ -468,17 +482,18 @@
Wireless Setup
- Open onchange="this.form.submit()"> - Secure onchange="this.form.submit()"> - -
- - -
-
- - + Open onchange="this.form.submit()"> + Secure onchange="this.form.submit()"> + +
+ + + + +
+
@@ -489,8 +504,8 @@
Domain Setup
- - + +
@@ -500,11 +515,11 @@
Password
-
- Old Pass:
- New Pass:
-   Repeat: - + + + + +           "; @@ -514,3 +529,18 @@ ?>
+ +
+ + + +
Token
+
+
+ + +
+
+ + + \ No newline at end of file diff --git a/FruityWifi/www/scripts/status_wireless.php b/FruityWifi/www/scripts/status_wireless.php index 4079261..e7e0b20 100644 --- a/FruityWifi/www/scripts/status_wireless.php +++ b/FruityWifi/www/scripts/status_wireless.php @@ -1,6 +1,6 @@ /etc/resolv.conf "; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - //$exec = "/etc/init.d/dnsmasq restart"; - $exec = "/usr/sbin/dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); +$bin_ifconfig = "/sbin/ifconfig"; +$bin_iptables = "/sbin/iptables"; +$bin_dnsmasq = "/usr/sbin/dnsmasq"; +$bin_sed = "/bin/sed"; +$bin_echo = "/bin/echo"; +$bin_rm = "/bin/rm"; + +function flushIptables() { + global $bin_iptables; - //Verifies if karma-hostapd is installed - if ($hostapd_secure == 1) { - /* - if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { - $exec = "/usr/share/fruitywifi/www/modules/karma/includes/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; - } else { - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; - } - */ - - //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //REPLACE WPA_PASSPHRASE - $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //EXTRACT MACADDRESS - unset($output); - $exec = "/sbin/ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); - - //REPLACE MAC - $exec = "/bin/sed -i 's/^bssid=.*/bssid=".$output[4]."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; - } else { - /* - if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { - $exec = "/usr/share/fruitywifi/www/modules/karma/includes/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; - } else { - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; - } - */ - - //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywifi/conf/hostapd.conf"; - exec_fruitywifi($exec); - - //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywifi/conf/hostapd.conf"; - exec_fruitywifi($exec); - - //REPLACE WPA_PASSPHRASE - $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywifi/conf/hostapd.conf"; - exec_fruitywifi($exec); - - //EXTRACT MACADDRESS - unset($output); - $exec = "/sbin/ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); - - //REPLACE BSSID - $exec = "/bin/sed -i 's/^bssid=.*/bssid=".$output[4]."/g' /usr/share/fruitywifi/conf/hostapd.conf"; - exec_fruitywifi($exec); - - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; - } - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/sbin/iptables -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/bin/echo 1 > /proc/sys/net/ipv4/ip_forward"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - // CLEAN DHCP log - $exec = "echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - } else if($action == "stop") { - - if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { - $exec = "$bin_killall hostapd"; - } else { - $exec = "$bin_killall hostapd"; - } - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - #exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - $exec = "/bin/rm /var/run/hostapd-phy0/$io_in_iface"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); + $exec = "$bin_iptables -F"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t nat -F"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t mangle -F"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -X"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t nat -X"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t mangle -X"; + exec_fruitywifi($exec); + echo $exec; +} - $exec = "$bin_killall dnsmasq"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); +function setNetworkManager() { + + global $io_in_iface; + global $bin_sed; + global $bin_echo; + + $exec = "macchanger --show $io_in_iface |grep 'Permanent'"; + exec($exec, $output); + $mac = explode(" ", $output[0]); + + $exec = "grep '^unmanaged-devices' /etc/NetworkManager/NetworkManager.conf"; + $ispresent = exec($exec); + + $exec = "$bin_sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + $exec = "$bin_sed -i '/\[keyfile\]/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + + if ($ispresent == "") { + $exec = "$bin_echo '[keyfile]' >> /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); - $exec = "ip addr flush dev $io_in_iface"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/sbin/ifconfig $io_in_iface down"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); + $exec = "$bin_echo 'unmanaged-devices=mac:".$mac[2].";interface-name:".$io_in_iface."' >> /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + } + +} - $exec = "/sbin/iptables -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); +function cleanNetworkManager() { + + global $bin_sed; + + // REMOVE lines from NetworkManager + $exec = "$bin_sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + $exec = "$bin_sed -i '/\[keyfile\]/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); +} - } +function killRegex($regex){ + + $exec = "ps aux|grep -E '$regex' | grep -v grep | awk '{print $2}'"; + exec($exec,$output); + + if (count($output) > 0) { + $exec = "kill " . $output[0]; + exec_fruitywifi($exec); + } + +} + +// HOSTAPD +if($service == "wireless" and $ap_mode == "1") { + if ($action == "start") { + + // SETUP NetworkManager + setNetworkManager(); + + $exec = "$bin_ifconfig $io_in_iface down"; + exec_fruitywifi($exec); + $exec = "$bin_ifconfig $io_in_iface 0.0.0.0"; + exec_fruitywifi($exec); + + $exec = "$bin_killall hostapd"; + exec_fruitywifi($exec); + + killRegex("hostapd"); + + $exec = "$bin_rm /var/run/hostapd-phy0/$io_in_iface"; + exec_fruitywifi($exec); + + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); + + killRegex("dnsmasq"); + + $exec = "$bin_ifconfig $io_in_iface up"; + exec_fruitywifi($exec); + $exec = "$bin_ifconfig $io_in_iface up $io_in_ip netmask 255.255.255.0"; + exec_fruitywifi($exec); + + $exec = "$bin_echo 'nameserver $io_in_ip\nnameserver 8.8.8.8' > /etc/resolv.conf "; + exec_fruitywifi($exec); + + $exec = "chattr +i /etc/resolv.conf"; + exec_fruitywifi($exec); + + //$exec = "/etc/init.d/dnsmasq restart"; + $exec = "$bin_dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; + exec_fruitywifi($exec); + + //Verifies if karma-hostapd is installed + if ($hostapd_secure == 1) { + + //REPLACE SSID + $exec = "$bin_sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //REPLACE IFACE + $exec = "$bin_sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //REPLACE WPA_PASSPHRASE + $exec = "$bin_sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //EXTRACT MACADDRESS + unset($output); + $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; + $output = exec_fruitywifi($exec); + $output = preg_replace('/\s+/', ' ',$output[0]); + $output = explode(" ",$output); + + //REPLACE MAC + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' /usr/share/fruitywifi/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; + } else { + + //REPLACE SSID + $exec = "$bin_sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' /usr/share/fruitywifi/conf/hostapd.conf"; + exec_fruitywifi($exec); + + //REPLACE IFACE + $exec = "$bin_sed -i 's/^interface=.*/interface=".$io_in_iface."/g' /usr/share/fruitywifi/conf/hostapd.conf"; + exec_fruitywifi($exec); + + //REPLACE WPA_PASSPHRASE + $exec = "$bin_sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' /usr/share/fruitywifi/conf/hostapd.conf"; + exec_fruitywifi($exec); + + //EXTRACT MACADDRESS + unset($output); + $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; + $output = exec_fruitywifi($exec); + $output = preg_replace('/\s+/', ' ',$output[0]); + $output = explode(" ",$output); + + //REPLACE BSSID + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' /usr/share/fruitywifi/conf/hostapd.conf"; + exec_fruitywifi($exec); + + $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; + } + exec_fruitywifi($exec); + + // IPTABLES FLUSH + flushIptables(); + + $exec = "$bin_echo 1 > /proc/sys/net/ipv4/ip_forward"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; + exec_fruitywifi($exec); + + // CLEAN DHCP log + $exec = "$bin_echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; + exec_fruitywifi($exec); + + } else if($action == "stop") { + + // REMOVE lines from NetworkManager + cleanNetworkManager(); + + /* + if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { + $exec = "$bin_killall hostapd"; + } else { + $exec = "$bin_killall hostapd"; + } + */ + + $exec = "$bin_killall hostapd"; + exec_fruitywifi($exec); + + killRegex("hostapd"); + + $exec = "$bin_rm /var/run/hostapd-phy0/$io_in_iface"; + exec_fruitywifi($exec); + + $exec = "chattr -i /etc/resolv.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); + + killRegex("dnsmasq"); + + $exec = "ip addr flush dev $io_in_iface"; + exec_fruitywifi($exec); + + $exec = "$bin_ifconfig $io_in_iface down"; + exec_fruitywifi($exec); + + // IPTABLES FLUSH + flushIptables(); + + } } // AIRCRACK if($service == "wireless" and $ap_mode == "2") { // AIRCRACK (airbase-ng) - if ($action == "start") { - - $exec = "/usr/bin/sudo /usr/sbin/airmon-ng stop mon0"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "$bin_killall airbase-ng"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "$bin_killall dnsmasq"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "echo 'nameserver $io_in_ip\nnameserver 8.8.8.8' > /etc/resolv.conf "; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/usr/bin/sudo /usr/sbin/airmon-ng start $io_in_iface"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - //$exec = "/usr/sbin/airbase-ng -e $hostapd_ssid -c 2 mon0 > /dev/null &"; //-P (all) - $exec = "/usr/sbin/airbase-ng -e $hostapd_ssid -c 2 mon0 > /tmp/airbase.log &"; //-P (all) - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - //$exec = "/sbin/ifconfig at0 up 10.0.0.1 netmask 255.255.255.0"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - - $exec = "sleep 1"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/sbin/ifconfig at0 up"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/ifconfig at0 up $io_in_ip netmask 255.255.255.0"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/usr/sbin/dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/sbin/iptables -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/bin/echo 1 > /proc/sys/net/ipv4/ip_forward"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - // CLEAN DHCP log - $exec = "echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - } else if($action == "stop") { - - $exec = "$bin_killall airbase-ng"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "$bin_killall dnsmasq"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/usr/bin/sudo /usr/sbin/airmon-ng stop mon0"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "ip addr flush dev at0"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/sbin/ifconfig at0 down"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - $exec = "/sbin/iptables -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED - exec_fruitywifi($exec); - - } + if ($action == "start") { + + // SETUP NetworkManager + setNetworkManager(); + + $exec = "/usr/bin/sudo /usr/sbin/airmon-ng stop mon0"; + exec_fruitywifi($exec); + + $exec = "$bin_killall airbase-ng"; + exec_fruitywifi($exec); + + killRegex("airbase-ng"); + + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); + + killRegex("dnsmasq"); + + $exec = "$bin_echo 'nameserver $io_in_ip\nnameserver 8.8.8.8' > /etc/resolv.conf "; + exec_fruitywifi($exec); + + $exec = "chattr +i /etc/resolv.conf"; + exec_fruitywifi($exec); + + // SETUP NetworkManager + setNetworkManager(); + + $exec = "/usr/bin/sudo /usr/sbin/airmon-ng start $io_in_iface"; + exec_fruitywifi($exec); + + //$exec = "/usr/sbin/airbase-ng -e $hostapd_ssid -c 2 mon0 > /dev/null &"; //-P (all) + $exec = "/usr/sbin/airbase-ng -e $hostapd_ssid -c 2 mon0 > /tmp/airbase.log &"; //-P (all) + exec_fruitywifi($exec); + + //$exec = "$bin_ifconfig at0 up 10.0.0.1 netmask 255.255.255.0"; + //exec("$bin_danger \"" . $exec . "\"" ); //DEPRECATED + + $exec = "sleep 1"; + exec_fruitywifi($exec); + + $exec = "$bin_ifconfig at0 up"; + exec_fruitywifi($exec); + $exec = "$bin_ifconfig at0 up $io_in_ip netmask 255.255.255.0"; + exec_fruitywifi($exec); + + $exec = "$bin_dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; + exec_fruitywifi($exec); + + // IPTABLES FLUSH + flushIptables(); + + $exec = "$bin_echo 1 > /proc/sys/net/ipv4/ip_forward"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; + exec_fruitywifi($exec); + + // CLEAN DHCP log + $exec = "$bin_echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; + exec_fruitywifi($exec); + + } else if($action == "stop") { + + // REMOVE lines from NetworkManager + cleanNetworkManager(); + + $exec = "$bin_killall airbase-ng"; + exec_fruitywifi($exec); + + killRegex("airbase-ng"); + + $exec = "chattr -i /etc/resolv.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); + + killRegex("dnsmasq"); + + $exec = "/usr/bin/sudo /usr/sbin/airmon-ng stop mon0"; + exec_fruitywifi($exec); + + $exec = "ip addr flush dev at0"; + exec_fruitywifi($exec); + + $exec = "$bin_ifconfig at0 down"; + exec_fruitywifi($exec); + + // IPTABLES FLUSH + flushIptables(); + + } } // HOSTAPD MANA if($service == "wireless" and $ap_mode == "3") { - if ($action == "start") { - - //unmanaged-devices=mac:;interface-name:wlan2 - //macchanger --show wlan0 |grep "Permanent" - - $exec = "macchanger --show $io_in_iface |grep 'Permanent'"; - //$output = exec_fruitywifi($exec); - exec($exec, $output); - $mac = explode(" ", $output[0]); - - $exec = "grep '^unmanaged-devices' /etc/NetworkManager/NetworkManager.conf"; - $ispresent = exec($exec); - - $exec = "sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - $exec = "sed -i '/\[keyfile\]/d' /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - - if ($ispresent == "") { - $exec = "echo '[keyfile]' >> /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - - $exec = "echo 'unmanaged-devices=mac:".$mac[2].";interface-name:".$io_in_iface."' >> /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - } - - $exec = "$bin_killall hostapd"; - exec_fruitywifi($exec); - - $exec = "/bin/rm /var/run/hostapd-phy0/$io_in_iface"; - exec_fruitywifi($exec); - - $exec = "$bin_killall dnsmasq"; - exec_fruitywifi($exec); - - $exec = "/sbin/ifconfig $io_in_iface up"; - exec_fruitywifi($exec); - $exec = "/sbin/ifconfig $io_in_iface up $io_in_ip netmask 255.255.255.0"; - exec_fruitywifi($exec); - - $exec = "echo 'nameserver $io_in_ip\nnameserver 8.8.8.8' > /etc/resolv.conf "; - exec_fruitywifi($exec); - - $exec = "/usr/sbin/dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; - exec_fruitywifi($exec); + if ($action == "start") { + + /* + $exec = "macchanger --show $io_in_iface |grep 'Permanent'"; + exec($exec, $output); + $mac = explode(" ", $output[0]); + + $exec = "grep '^unmanaged-devices' /etc/NetworkManager/NetworkManager.conf"; + $ispresent = exec($exec); + + $exec = "$bin_sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + $exec = "$bin_sed -i '/\[keyfile\]/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + + if ($ispresent == "") { + $exec = "$bin_echo '[keyfile]' >> /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_echo 'unmanaged-devices=mac:".$mac[2].";interface-name:".$io_in_iface."' >> /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + } + */ + + // SETUP NetworkManager + setNetworkManager(); + + $exec = "$bin_ifconfig $io_in_iface down"; + exec_fruitywifi($exec); + $exec = "$bin_ifconfig $io_in_iface 0.0.0.0"; + exec_fruitywifi($exec); + + $exec = "$bin_killall hostapd"; + exec_fruitywifi($exec); + + killRegex("hostapd"); + + $exec = "$bin_rm /var/run/hostapd-phy0/$io_in_iface"; + exec_fruitywifi($exec); + + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); + + killRegex("dnsmasq"); + + $exec = "$bin_ifconfig $io_in_iface up"; + exec_fruitywifi($exec); + $exec = "$bin_ifconfig $io_in_iface up $io_in_ip netmask 255.255.255.0"; + exec_fruitywifi($exec); + + $exec = "$bin_echo 'nameserver $io_in_ip\nnameserver 8.8.8.8' > /etc/resolv.conf "; + exec_fruitywifi($exec); + + $exec = "chattr +i /etc/resolv.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; + exec_fruitywifi($exec); - //Verifies if mana-hostapd is installed - if ($hostapd_secure == 1) { - - if (file_exists("/usr/share/fruitywifi/www/modules/mana/includes/hostapd")) { - include "/usr/share/fruitywifi/www/modules/mana/_info_.php"; - - //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //REPLACE WPA_PASSPHRASE - $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //EXTRACT MACADDRESS - unset($output); - $exec = "/sbin/ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); - - //REPLACE MAC - $exec = "/bin/sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - $exec = "$bin_hostapd $mod_path/includes/conf/hostapd-secure.conf >> $mod_logs &"; - } else { - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; - } - - } else { - - if (file_exists("/usr/share/fruitywifi/www/modules/mana/includes/hostapd")) { - include "/usr/share/fruitywifi/www/modules/mana/_info_.php"; - - //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd.conf"; - exec_fruitywifi($exec); - - //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd.conf"; - exec_fruitywifi($exec); - - //EXTRACT MACADDRESS - unset($output); - $exec = "/sbin/ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); - - //REPLACE MAC - $exec = "/bin/sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd.conf"; - exec_fruitywifi($exec); - - $exec = "$bin_hostapd $mod_path/includes/conf/hostapd.conf >> $mod_logs &"; - } else { - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; - } - - } - exec_fruitywifi($exec); - - $exec = "/sbin/iptables -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - exec_fruitywifi($exec); - - $exec = "/bin/echo 1 > /proc/sys/net/ipv4/ip_forward"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; - exec_fruitywifi($exec); - - // CLEAN DHCP log - $exec = "echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; - exec_fruitywifi($exec); + //Verifies if mana-hostapd is installed + if ($hostapd_secure == 1) { + + if (file_exists("/usr/share/fruitywifi/www/modules/mana/includes/hostapd")) { + include "/usr/share/fruitywifi/www/modules/mana/_info_.php"; + + //REPLACE SSID + $exec = "$bin_sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //REPLACE IFACE + $exec = "$bin_sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //REPLACE WPA_PASSPHRASE + $exec = "$bin_sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //EXTRACT MACADDRESS + unset($output); + $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; + $output = exec_fruitywifi($exec); + $output = preg_replace('/\s+/', ' ',$output[0]); + $output = explode(" ",$output); + + //REPLACE MAC + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_hostapd $mod_path/includes/conf/hostapd-secure.conf >> $mod_logs &"; + } else { + $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; + } + + } else { + + if (file_exists("/usr/share/fruitywifi/www/modules/mana/includes/hostapd")) { + include "/usr/share/fruitywifi/www/modules/mana/_info_.php"; + + //REPLACE SSID + $exec = "$bin_sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd.conf"; + exec_fruitywifi($exec); + + //REPLACE IFACE + $exec = "$bin_sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd.conf"; + exec_fruitywifi($exec); + + //EXTRACT MACADDRESS + unset($output); + $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; + $output = exec_fruitywifi($exec); + $output = preg_replace('/\s+/', ' ',$output[0]); + $output = explode(" ",$output); + + //REPLACE MAC + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_hostapd $mod_path/includes/conf/hostapd.conf >> $mod_logs &"; + } else { + $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; + } + + } + exec_fruitywifi($exec); + + // IPTABLES FLUSH + flushIptables(); + + $exec = "$bin_echo 1 > /proc/sys/net/ipv4/ip_forward"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; + exec_fruitywifi($exec); + + // CLEAN DHCP log + $exec = "$bin_echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; + exec_fruitywifi($exec); + + } else if($action == "stop") { + + /* + // REMOVE lines from NetworkManager + $exec = "$bin_sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + $exec = "$bin_sed -i '/\[keyfile\]/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + */ + + // REMOVE lines from NetworkManager + cleanNetworkManager(); + + $exec = "$bin_killall hostapd"; + exec_fruitywifi($exec); - } else if($action == "stop") { + killRegex("hostapd"); + + $exec = "$bin_rm /var/run/hostapd-phy0/$io_in_iface"; + exec_fruitywifi($exec); - // REMOVE lines from NetworkManager - $exec = "sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - $exec = "sed -i '/\[keyfile\]/d' /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - - $exec = "$bin_killall hostapd"; + $exec = "chattr -i /etc/resolv.conf"; exec_fruitywifi($exec); - $exec = "/bin/rm /var/run/hostapd-phy0/$io_in_iface"; - exec_fruitywifi($exec); + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); - $exec = "$bin_killall dnsmasq"; - exec_fruitywifi($exec); + killRegex("dnsmasq"); + + $exec = "ip addr flush dev $io_in_iface"; + exec_fruitywifi($exec); + + $exec = "$bin_ifconfig $io_in_iface down"; + exec_fruitywifi($exec); - $exec = "ip addr flush dev $io_in_iface"; - exec_fruitywifi($exec); - - $exec = "/sbin/ifconfig $io_in_iface down"; - exec_fruitywifi($exec); - - $exec = "/sbin/iptables -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - exec_fruitywifi($exec); - - } + // IPTABLES FLUSH + flushIptables(); + + } } // HOSTAPD KARMA if($service == "wireless" and $ap_mode == "4") { - if ($action == "start") { - - //unmanaged-devices=mac:;interface-name:wlan2 - //macchanger --show wlan0 |grep "Permanent" - - $exec = "macchanger --show eth0 |grep 'Permanent'"; - //$output = exec_fruitywifi($exec); - exec($exec, $output); - $mac = explode(" ", $output[0]); - - $exec = "grep '^unmanaged-devices' /etc/NetworkManager/NetworkManager.conf"; - $ispresent = exec($exec); - - $exec = "sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - $exec = "sed -i '/[keyfile]/d' /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - - if ($ispresent == "") { - $exec = "echo '[keyfile]' >> /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - - $exec = "echo 'unmanaged-devices=mac:".$mac[2].";interface-name:".$io_in_iface."' >> /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - } - - $exec = "$bin_killall hostapd"; - exec_fruitywifi($exec); - - $exec = "/bin/rm /var/run/hostapd-phy0/$io_in_iface"; - exec_fruitywifi($exec); - - $exec = "$bin_killall dnsmasq"; - exec_fruitywifi($exec); - - $exec = "/sbin/ifconfig $io_in_iface up"; - exec_fruitywifi($exec); - $exec = "/sbin/ifconfig $io_in_iface up $io_in_ip netmask 255.255.255.0"; - exec_fruitywifi($exec); - - $exec = "echo 'nameserver $io_in_ip\nnameserver 8.8.8.8' > /etc/resolv.conf "; - exec_fruitywifi($exec); - - $exec = "/usr/sbin/dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; - exec_fruitywifi($exec); + if ($action == "start") { + + /* + //unmanaged-devices=mac:;interface-name:wlan2 + //macchanger --show wlan0 |grep "Permanent" + + $exec = "macchanger --show eth0 |grep 'Permanent'"; + //$exec = "macchanger --show $io_in_iface |grep 'Permanent'"; + //$output = exec_fruitywifi($exec); + exec($exec, $output); + $mac = explode(" ", $output[0]); + + $exec = "grep '^unmanaged-devices' /etc/NetworkManager/NetworkManager.conf"; + $ispresent = exec($exec); + + $exec = "$bin_sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + $exec = "$bin_sed -i '/[keyfile]/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + + if ($ispresent == "") { + $exec = "$bin_echo '[keyfile]' >> /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_echo 'unmanaged-devices=mac:".$mac[2].";interface-name:".$io_in_iface."' >> /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + } + */ + + // SETUP NetworkManager + setNetworkManager(); + + $exec = "$bin_ifconfig $io_in_iface down"; + exec_fruitywifi($exec); + $exec = "$bin_ifconfig $io_in_iface 0.0.0.0"; + exec_fruitywifi($exec); + + $exec = "$bin_killall hostapd"; + exec_fruitywifi($exec); + + $exec = "$bin_rm /var/run/hostapd-phy0/$io_in_iface"; + exec_fruitywifi($exec); + + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); + + $exec = "$bin_ifconfig $io_in_iface up"; + exec_fruitywifi($exec); + $exec = "$bin_ifconfig $io_in_iface up $io_in_ip netmask 255.255.255.0"; + exec_fruitywifi($exec); + + $exec = "$bin_echo 'nameserver $io_in_ip\nnameserver 8.8.8.8' > /etc/resolv.conf "; + exec_fruitywifi($exec); + + $exec = "chattr +i /etc/resolv.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_dnsmasq -C /usr/share/fruitywifi/conf/dnsmasq.conf"; + exec_fruitywifi($exec); - //Verifies if karma-hostapd is installed - if ($hostapd_secure == 1) { - - if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { - include "/usr/share/fruitywifi/www/modules/karma/_info_.php"; - - //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //REPLACE WPA_PASSPHRASE - $exec = "sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - //EXTRACT MACADDRESS - unset($output); - $exec = "/sbin/ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); - - //REPLACE MAC - $exec = "/bin/sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd-secure.conf"; - exec_fruitywifi($exec); - - $exec = "$bin_hostapd $mod_path/includes/conf/hostapd-secure.conf >> $mod_logs &"; - } else { - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; - } - - } else { - - if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { - include "/usr/share/fruitywifi/www/modules/karma/_info_.php"; - - //REPLACE SSID - $exec = "/bin/sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd.conf"; - exec_fruitywifi($exec); - - //REPLACE IFACE - $exec = "/bin/sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd.conf"; - exec_fruitywifi($exec); - - //EXTRACT MACADDRESS - unset($output); - $exec = "/sbin/ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); - - //REPLACE MAC - $exec = "/bin/sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd.conf"; - exec_fruitywifi($exec); - - $exec = "$bin_hostapd $mod_path/includes/conf/hostapd.conf >> $mod_logs &"; - } else { - $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; - } - - } - exec_fruitywifi($exec); - - $exec = "/sbin/iptables -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - exec_fruitywifi($exec); - - $exec = "/bin/echo 1 > /proc/sys/net/ipv4/ip_forward"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; - exec_fruitywifi($exec); - - // CLEAN DHCP log - $exec = "echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; - exec_fruitywifi($exec); + //Verifies if karma-hostapd is installed + if ($hostapd_secure == 1) { + + if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { + include "/usr/share/fruitywifi/www/modules/karma/_info_.php"; + + //REPLACE SSID + $exec = "$bin_sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //REPLACE IFACE + $exec = "$bin_sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //REPLACE WPA_PASSPHRASE + $exec = "$bin_sed -i 's/wpa_passphrase=.*/wpa_passphrase=".$hostapd_wpa_passphrase."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + //EXTRACT MACADDRESS + unset($output); + $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; + $output = exec_fruitywifi($exec); + $output = preg_replace('/\s+/', ' ',$output[0]); + $output = explode(" ",$output); + + //REPLACE MAC + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd-secure.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_hostapd $mod_path/includes/conf/hostapd-secure.conf >> $mod_logs &"; + } else { + $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd-secure.conf"; + } + + } else { + + if (file_exists("/usr/share/fruitywifi/www/modules/karma/includes/hostapd")) { + include "/usr/share/fruitywifi/www/modules/karma/_info_.php"; + + //REPLACE SSID + $exec = "$bin_sed -i 's/^ssid=.*/ssid=".$hostapd_ssid."/g' $mod_path/includes/conf/hostapd.conf"; + exec_fruitywifi($exec); + + //REPLACE IFACE + $exec = "$bin_sed -i 's/^interface=.*/interface=".$io_in_iface."/g' $mod_path/includes/conf/hostapd.conf"; + exec_fruitywifi($exec); + + //EXTRACT MACADDRESS + unset($output); + $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; + $output = exec_fruitywifi($exec); + $output = preg_replace('/\s+/', ' ',$output[0]); + $output = explode(" ",$output); + + //REPLACE MAC + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_hostapd $mod_path/includes/conf/hostapd.conf >> $mod_logs &"; + } else { + $exec = "/usr/sbin/hostapd -P /var/run/hostapd-phy0 -B /usr/share/fruitywifi/conf/hostapd.conf"; + } + + } + exec_fruitywifi($exec); + + // IPTABLES FLUSH + flushIptables(); + + $exec = "$bin_echo 1 > /proc/sys/net/ipv4/ip_forward"; + exec_fruitywifi($exec); + $exec = "$bin_iptables -t nat -A POSTROUTING -o $io_out_iface -j MASQUERADE"; + exec_fruitywifi($exec); + + // CLEAN DHCP log + $exec = "$bin_echo '' > /usr/share/fruitywifi/logs/dhcp.leases"; + exec_fruitywifi($exec); + + } else if($action == "stop") { + + // REMOVE lines from NetworkManager + $exec = "$bin_sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; + exec_fruitywifi($exec); + $exec = "$bin_sed -i '/[keyfile]/d' /etc/NetworkMxanager/NetworkManager.conf"; + exec_fruitywifi($exec); + + $exec = "$bin_killall hostapd"; + exec_fruitywifi($exec); - } else if($action == "stop") { + $exec = "$bin_rm /var/run/hostapd-phy0/$io_in_iface"; + exec_fruitywifi($exec); - // REMOVE lines from NetworkManager - $exec = "sed -i '/unmanaged/d' /etc/NetworkManager/NetworkManager.conf"; - exec_fruitywifi($exec); - $exec = "sed -i '/[keyfile]/d' /etc/NetworkMxanager/NetworkManager.conf"; - exec_fruitywifi($exec); - - $exec = "$bin_killall hostapd"; + $exec = "chattr -i /etc/resolv.conf"; exec_fruitywifi($exec); - $exec = "/bin/rm /var/run/hostapd-phy0/$io_in_iface"; - exec_fruitywifi($exec); + $exec = "$bin_killall dnsmasq"; + exec_fruitywifi($exec); - $exec = "$bin_killall dnsmasq"; - exec_fruitywifi($exec); + $exec = "ip addr flush dev $io_in_iface"; + exec_fruitywifi($exec); + + $exec = "$bin_ifconfig $io_in_iface down"; + exec_fruitywifi($exec); - $exec = "ip addr flush dev $io_in_iface"; - exec_fruitywifi($exec); - - $exec = "/sbin/ifconfig $io_in_iface down"; - exec_fruitywifi($exec); - - $exec = "/sbin/iptables -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -F"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t nat -X"; - exec_fruitywifi($exec); - $exec = "/sbin/iptables -t mangle -X"; - exec_fruitywifi($exec); - - } + // IPTABLES FLUSH + flushIptables(); + } } +#sed -i 's/interface=.*/interface=wlan0/g' /usr/share/fruitywifi/conf/dnsmasq.conf + header('Location: ../action.php'); ?> diff --git a/README.md b/README.md index 5035405..5d4977e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,15 @@ FruityWifi FruityWifi is a wireless network auditing tool. The application can be installed in any Debian based system adding the extra packages. Tested in Debian, Kali Linux, Kali Linux ARM (Raspberry Pi), Raspbian (Raspberry Pi), Pwnpi (Raspberry Pi), Bugtraq. +v2.2 +---------------- +- Wireless service has been replaced by AP module +- Mobile support has been added +- Bootstrap support has been added +- Token auth has been added +- minor fix + + v2.1 ---------------- - Hostapd Mana support has been added From c8247bc67d4e880d1ed166eb89dda7ec0c44e50b Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 20 Jul 2015 18:29:53 +0100 Subject: [PATCH 041/151] minor fix --- FruityWifi/www/page_status.php | 28 ++++++++++++++++++++++++---- FruityWifi/www/page_status_ws.php | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/FruityWifi/www/page_status.php b/FruityWifi/www/page_status.php index a41b271..09fde58 100644 --- a/FruityWifi/www/page_status.php +++ b/FruityWifi/www/page_status.php @@ -256,22 +256,28 @@ function addDivs($service, $alias, $edit, $path) ?>
- +
FruityProxy (mitmproxy)
- + +
-
MITMf Plugins
- +
+ + + + + + + diff --git a/FruityWifi/www/page_status_ws.php b/FruityWifi/www/page_status_ws.php index 6d2d17c..fa8e70d 100644 --- a/FruityWifi/www/page_status_ws.php +++ b/FruityWifi/www/page_status_ws.php @@ -604,19 +604,29 @@ function addDivs($service, $alias, $edit, $path, $mod_logs_panel) ?> +
FruityProxy (mitmproxy)
+ +
MITMf Plugins
+
@@ -844,6 +854,13 @@ function sortObject(object) { return result; }, {}); } + + + + + + + +
From 1a8ee6feabdc767bac6baf91d6e9d5136428c360 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 23 Jul 2015 21:52:55 +0100 Subject: [PATCH 042/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 3471013..465df9d 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -90,7 +90,7 @@ autostart - 1.2 + 1.3 @xtr4nge Autostart interface module_autostart From 749251f0a86404e8c1bd543c55e8c77dc1891696 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 9 Aug 2015 12:59:13 +0100 Subject: [PATCH 043/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 465df9d..047b211 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -58,11 +58,11 @@ captive - 1.4 + 1.5 @xtr4nge captive portal module_captive - 2.1 + 2.2 squid3 From 61b772665467dbddea6c76dae5a5534584073e8f Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 30 Aug 2015 17:46:55 +0100 Subject: [PATCH 044/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 047b211..fa650b3 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -288,4 +288,20 @@ module_devicefinder 2.1 + + mgmt + 1.0 + @xtr4nge + mgmt interface + module_mgmt + 2.2 + + + tapper + 1.0 + @xtr4nge + tapper interface + module_tapper + 2.2 + From 6e25fa36ec7d3eccbce4adf6f1bb00053ae76bea Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 31 Aug 2015 23:36:54 +0100 Subject: [PATCH 045/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index fa650b3..0990899 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -304,4 +304,12 @@ module_tapper 2.2 + + openvpn + 1.0 + @xtr4nge + openvpn interface + module_openvpn + 2.2 + From dfcf1f12488662251d0f440e1db91537ce4bc9e0 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 2 Sep 2015 21:14:08 +0100 Subject: [PATCH 046/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 0990899..a17e248 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -170,7 +170,7 @@ autossh - 1.1 + 1.2 @xtr4nge autossh interface module_autossh From 3d796e7ebc69a0000751c07c88ca4339ad60b376 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 6 Sep 2015 08:45:17 +0100 Subject: [PATCH 047/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a17e248..71243ac 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -82,7 +82,7 @@ responder - 1.4 + 1.5 @xtr4nge Responder interface module_responder From d5838a58ecad3437b081f9eba8b721a6ef89a73a Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 17 Sep 2015 19:22:37 +0100 Subject: [PATCH 048/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 71243ac..9bc5d57 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -298,7 +298,7 @@ tapper - 1.0 + 1.1 @xtr4nge tapper interface module_tapper From b113be7057d6dfb20b54bfafb517bd59b3148761 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 30 Sep 2015 18:50:09 +0100 Subject: [PATCH 049/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 9bc5d57..a41d6df 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -312,4 +312,12 @@ module_openvpn 2.2 + + api + 1.0 + @xtr4nge + API interface + module_api + 2.2 + From 7bb57e88999e319e91de789ce6af92a4965e4cf3 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 21 Dec 2015 11:27:27 +0000 Subject: [PATCH 050/151] minor fix --- install-FruityWifi.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index 5296eb1..8df6c45 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -208,6 +208,7 @@ echo "Setup Sudo" echo "--------------------------------" cd $root_path cp -a sudo-setup/fruitywifi /etc/sudoers.d/ +chown root:root /etc/sudoers.d/fruitywifi echo "[sudo setup completed]" echo From 681076a250270be3ef8592da0cda7124c6a79a18 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 24 Jan 2016 11:15:23 +0000 Subject: [PATCH 051/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a41d6df..a4abbcf 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -2,7 +2,7 @@ ap - 1.0 + 1.1 @xtr4nge AP interface module_ap @@ -114,7 +114,7 @@ karma - 1.5 + 1.6 @xtr4nge Karma interface module_karma @@ -210,7 +210,7 @@ mana - 1.3 + 1.4 @xtr4nge mana interface module_mana @@ -314,7 +314,7 @@ api - 1.0 + 1.1 @xtr4nge API interface module_api From 6a46c59c50125a6496504bb05c23660854dea405 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 24 Jan 2016 12:36:30 +0000 Subject: [PATCH 052/151] monitor mode (mon0) has been fixed --- FruityWifi/conf/hostapd-secure.conf | 7 +- FruityWifi/conf/hostapd.conf | 10 +- FruityWifi/conf/pool-ssid.conf | 0 FruityWifi/conf/pool-station.conf | 0 FruityWifi/conf/ssid.conf | 0 FruityWifi/www/functions.php | 139 +++++----- FruityWifi/www/page_config_adv.php | 401 +++++++++++++--------------- install-FruityWifi.sh | 2 +- 8 files changed, 270 insertions(+), 289 deletions(-) create mode 100644 FruityWifi/conf/pool-ssid.conf create mode 100644 FruityWifi/conf/pool-station.conf create mode 100644 FruityWifi/conf/ssid.conf diff --git a/FruityWifi/conf/hostapd-secure.conf b/FruityWifi/conf/hostapd-secure.conf index 149e340..18c25f1 100644 --- a/FruityWifi/conf/hostapd-secure.conf +++ b/FruityWifi/conf/hostapd-secure.conf @@ -1,4 +1,5 @@ -ctrl_interface=/var/run/hostapd-phy0 +ctrl_interface=/var/run/hostapd + driver=nl80211 wmm_ac_bk_cwmin=4 wmm_ac_bk_cwmax=10 @@ -39,9 +40,6 @@ tx_queue_data0_burst=1.5 hw_mode=g channel=6 - - - logger_syslog=127 logger_syslog_level=2 logger_stdout=127 @@ -50,7 +48,6 @@ logger_stdout_level=2 #ht_capab=[HT20][SHORT-GI-20][SHORT-GI-40][RX-STBC1][DSSS_CCK-40] interface=wlan0 -ctrl_interface=/var/run/hostapd-phy0 disassoc_low_ack=1 auth_algs=1 #wpa=0 diff --git a/FruityWifi/conf/hostapd.conf b/FruityWifi/conf/hostapd.conf index 233e178..50efcf7 100644 --- a/FruityWifi/conf/hostapd.conf +++ b/FruityWifi/conf/hostapd.conf @@ -1,4 +1,5 @@ -ctrl_interface=/var/run/hostapd-phy0 +ctrl_interface=/var/run/hostapd + driver=nl80211 wmm_ac_bk_cwmin=4 wmm_ac_bk_cwmax=10 @@ -39,9 +40,6 @@ tx_queue_data0_burst=1.5 hw_mode=g channel=6 - - - logger_syslog=127 logger_syslog_level=2 logger_stdout=127 @@ -50,7 +48,6 @@ logger_stdout_level=2 #ht_capab=[HT20][SHORT-GI-20][SHORT-GI-40][RX-STBC1][DSSS_CCK-40] interface=wlan0 -ctrl_interface=/var/run/hostapd-phy0 disassoc_low_ack=1 auth_algs=1 wpa=0 @@ -59,6 +56,3 @@ ssid=FruityWifi wmm_enabled=1 bssid=00:00:00:00:00:00 ignore_broadcast_ssid=0 - - - diff --git a/FruityWifi/conf/pool-ssid.conf b/FruityWifi/conf/pool-ssid.conf new file mode 100644 index 0000000..e69de29 diff --git a/FruityWifi/conf/pool-station.conf b/FruityWifi/conf/pool-station.conf new file mode 100644 index 0000000..e69de29 diff --git a/FruityWifi/conf/ssid.conf b/FruityWifi/conf/ssid.conf new file mode 100644 index 0000000..e69de29 diff --git a/FruityWifi/www/functions.php b/FruityWifi/www/functions.php index 730c7b3..c078697 100644 --- a/FruityWifi/www/functions.php +++ b/FruityWifi/www/functions.php @@ -1,6 +1,6 @@
"; -} -*/ ?> - -
@@ -227,71 +206,71 @@ - - + +
-
- Mode - -
- -
- -
-  [AP] - -
-
+
+ Mode + +
+ +
+ +
+  [AP] + +
+

-
- -
> - - - - - - - - + + + + + + + + + + + + > + + + + > + + + + > + + + + > + + + + +
- IN + + +
> + + + + - - + + + - - - - > - - - - > - - - - > - - - - > - - - - -
+ IN
-
+
"; } ?> -
- - stop [on]"; - } else { - echo "start [-]"; - } - - ?> -
-
-
- -
> - - - - + + + > + + + + > + + + + > + + + + > + + + + +
- OUT +
+ + stop [on]"; + } else { + echo "start [-]"; + } + + ?> +
+
+
+ +
> + + + + - - - - - - - > - - - - > - - - - > - - - - > - - - - -
+ OUT
-
-
- -
- "; - } - ?> -
- - stop [on]"; - } else { - echo "start [-]"; - } - - ?> -
-
-
+
+ +
+ "; + } + ?> +
+ + stop [on]"; + } else { + echo "start [-]"; + } + + ?> +
+
+
@@ -419,19 +398,19 @@
+ [sniff|inject]
@@ -441,20 +420,20 @@
- + -
Additional Interfaces
+
Monitor Interface
- + onchange="this.form.submit()"> Secure onchange="this.form.submit()"> - -
- +
+ - - -
- + --> + + +
+
@@ -504,8 +483,8 @@
Domain Setup
- - + +
@@ -516,17 +495,17 @@
Password
- - - - -           "; - if ($pass_msg == 1) echo "password changed"; - if ($pass_msg == 2) echo "password error"; - } - ?> + + + + +           "; + if ($pass_msg == 1) echo "password changed"; + if ($pass_msg == 2) echo "password error"; + } + ?>
@@ -537,8 +516,8 @@
Token
- - + +
diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index 8df6c45..becd10d 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -39,7 +39,7 @@ adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-cre echo "[fruitywifi user has been created]" echo -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump cmd=`gcc --version|grep "4.7"` if [[ $cmd == "" ]] From f74db92f7ca4246491342be4e5f1d2fa00467a7b Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 24 Jan 2016 12:38:53 +0000 Subject: [PATCH 053/151] monitor mode (mon0) has been fixed --- FruityWifi/www/config/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FruityWifi/www/config/config.php b/FruityWifi/www/config/config.php index ccb9f4e..ea460e1 100644 --- a/FruityWifi/www/config/config.php +++ b/FruityWifi/www/config/config.php @@ -1,5 +1,5 @@ > web interface input validation. $regex_extra=" _-.[]*"; // extra characters allowed (input validation). $log_path="/usr/share/fruitywifi/logs"; From a5c2b273a5952ca34232f4306fd94d746d1f2eb2 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 24 Jan 2016 13:17:44 +0000 Subject: [PATCH 054/151] monitor mode (mon0) has been fixed --- FruityWifi/www/functions.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/FruityWifi/www/functions.php b/FruityWifi/www/functions.php index c078697..60e77e0 100644 --- a/FruityWifi/www/functions.php +++ b/FruityWifi/www/functions.php @@ -126,21 +126,35 @@ function module_deb($mod_name) { function start_monitor_mode($iface) { // START MONITOR MODE (mon0) - $iface_mon0 = exec("/sbin/ifconfig |grep mon0"); - if ($iface_mon0 == "") { + //$iface_mon0 = exec("/sbin/ifconfig |grep mon0"); + + stop_monitor_mode($iface); + + //if ($iface_mon0 == "") { //$exec = "/usr/sbin/airmon-ng start $iface"; $exec = "rfkill unblock wifi; sudo rfkill unblock all"; exec_fruitywifi($exec); + $exec = "ifconfig $iface down"; + exec_fruitywifi($exec); + $phy = getPHY($iface); $exec = "iw phy $phy interface add mon0 type monitor"; exec_fruitywifi($exec); + sleep(1); + + $exec = "ifconfig mon0 down"; + exec_fruitywifi($exec); + + $exec = "iwconfig mon0 mode monitor"; + exec_fruitywifi($exec); + $exec = "ifconfig mon0 up"; exec_fruitywifi($exec); - } + //} } function stop_monitor_mode($iface) { From fd85fdcd96346a5fce4bbb5fa0909fc916be8268 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 5 Feb 2016 00:14:36 +0000 Subject: [PATCH 055/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a4abbcf..6ad90ff 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -320,4 +320,12 @@ module_api 2.2
+ + wifirecon + 1.0 + @xtr4nge + WiFiRecon interface + module_api + 2.3 +
From 170e79bbdf5bbd2ecef00f711696fc071066bb67 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:00:15 +0000 Subject: [PATCH 056/151] deprecated pages have been removed --- FruityWifi/www/page_kismet.php | 80 ------------------------------ FruityWifi/www/page_squid.php | 84 -------------------------------- FruityWifi/www/page_sslstrip.php | 56 --------------------- 3 files changed, 220 deletions(-) delete mode 100644 FruityWifi/www/page_kismet.php delete mode 100644 FruityWifi/www/page_squid.php delete mode 100644 FruityWifi/www/page_sslstrip.php diff --git a/FruityWifi/www/page_kismet.php b/FruityWifi/www/page_kismet.php deleted file mode 100644 index b0ba1e0..0000000 --- a/FruityWifi/www/page_kismet.php +++ /dev/null @@ -1,80 +0,0 @@ -. -*/ -?> - - -
- -
Kismet Setup
-
- enabled.  | stop
"; - //echo "   Kismet enabled.  | stop
"; - echo "   Kismet enabled.  | stop
"; - } else { - //echo "   Kismet disabled. | start
"; - //echo "   Kismet disabled. | start
"; - echo "   Kismet disabled. | start
"; - } - ?> - enabled.  | stop
"; - } else { - echo "     GPSD disabled. | start
"; - } - ?> - connected.
"; - } else { - echo "  ttyUSB0 disconnected.
"; - } - ?> - - -
- -
-export all -
- -x "; - echo $filename . " | "; - echo "export | "; - if (file_exists("logs/kismet/output_$filename.kml")) { - echo "download"; - } - echo "
"; -} -?> diff --git a/FruityWifi/www/page_squid.php b/FruityWifi/www/page_squid.php deleted file mode 100644 index bd5fc56..0000000 --- a/FruityWifi/www/page_squid.php +++ /dev/null @@ -1,84 +0,0 @@ -. -*/ -?> - - - - -
-
Squid Setup
-
- enabled.  | stop
"; - } else { - echo "    Squid disabled. | start
"; - } - - ?> - enabled.  | stop
"; - } else { - echo "   Inject disabled. | start
"; - } - - ?> - enabled.  | stop
"; - } else { - echo " Iptables disabled. | start
"; - } - - ?> -
- -
- -
Inject Script
-
-x "; - //echo $filename . " | "; - if ($filename != "pasarela") { - if ("$filename.js" == $url_rewrite_program) echo "+ "; - echo "$filename"; - //echo $filename; - //echo "view"; - //echo "view"; - echo "
"; - } -} -?> -
diff --git a/FruityWifi/www/page_sslstrip.php b/FruityWifi/www/page_sslstrip.php deleted file mode 100644 index 3636a55..0000000 --- a/FruityWifi/www/page_sslstrip.php +++ /dev/null @@ -1,56 +0,0 @@ -. -*/ -?> - - - -
- -
sslstrip Setup
-
- enabled.  | stop
"; - echo " sslstrip enabled.  | stop
"; - } else { - #echo " Wireless disabled. | start
"; - echo " sslstrip disabled. | start
"; - } - ?> -
- -
- -x "; - echo $filename . " | "; - //echo "view"; - echo "view"; - echo "
"; -} -?> From 81d62fd498a89a800e18d9f1fe51709be279fe8f Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:04:00 +0000 Subject: [PATCH 057/151] utils have been added --- FruityWifi/utils/network.py | 84 +++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100755 FruityWifi/utils/network.py diff --git a/FruityWifi/utils/network.py b/FruityWifi/utils/network.py new file mode 100755 index 0000000..6ae42bc --- /dev/null +++ b/FruityWifi/utils/network.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python + +import os, sys +import getopt +import netifaces + +def usage(): + print "\nFruityWiFi utils v1.0 (@xtr4nge)" + + print "Usage: network.py \n" + print "Options:" + print "-t , --type= TYPE" + print "-i , --iface= INTERFACE" + print "" + print "Author: @xtr4nge" + print "" + +def parseOptions(argv): + TYPE = "" + IFACE = "" + + try: + opts, args = getopt.getopt(argv, "ht:i:", + ["help", "type=", "iface="]) + + for opt, arg in opts: + if opt in ("-h", "--help"): + usage() + sys.exit() + elif opt in ("-t", "--type"): + TYPE = arg + elif opt in ("-i", "--iface"): + IFACE = arg + + if TYPE == "": + usage() + print + print "[Required] \n -t (TYPE: getiface) \n" + print + + sys.exit(1) + + return (TYPE, IFACE) + + except getopt.GetoptError: + usage() + sys.exit(2) + +def getIface(): + for i in netifaces.interfaces(): + try: MAC = netifaces.ifaddresses(i)[netifaces.AF_LINK][0]["addr"] + except: MAC = "" + try: IP = netifaces.ifaddresses(i)[netifaces.AF_INET][0]["addr"] + except: IP = "" + print str(i)+"|"+str(IP)+"|"+str(MAC) + +def getIfaceNAME(): + for i in netifaces.interfaces(): + print i + +def getIfaceIP(iface): + try: IP = netifaces.ifaddresses(iface)[netifaces.AF_INET][0]["addr"] + except: IP = "" + print IP + +def getIfaceMAC(iface): + try: MAC = netifaces.ifaddresses(iface)[netifaces.AF_LINK][0]["addr"] + except: MAC = "" + print MAC + +def main(argv): + (TYPE, IFACE) = parseOptions(argv) + + if TYPE == "getiface": + getIface() + if TYPE == "getifacename": + getIfaceNAME() + if TYPE == "getifaceip" and IFACE != "": + getIfaceIP(IFACE) + if TYPE == "getifacemac" and IFACE != "": + getIfaceMAC(IFACE) + +if __name__ == "__main__": + main(sys.argv[1:]) From e15c9179b89a1c43aa90e693fe48f9df2bd83fb6 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:10:42 +0000 Subject: [PATCH 058/151] utils have been added (replaces ifconfig -a) --- FruityWifi/www/functions.php | 29 ++++++++ FruityWifi/www/page_config_adv.php | 25 +++---- FruityWifi/www/page_status.php | 8 +-- FruityWifi/www/page_status_ws.php | 10 ++- FruityWifi/www/page_status_wsdl.php | 8 +-- FruityWifi/www/scripts/config_iface.php | 82 +++++----------------- FruityWifi/www/scripts/status_wireless.php | 44 ++++-------- 7 files changed, 82 insertions(+), 124 deletions(-) diff --git a/FruityWifi/www/functions.php b/FruityWifi/www/functions.php index 60e77e0..4495f60 100644 --- a/FruityWifi/www/functions.php +++ b/FruityWifi/www/functions.php @@ -224,4 +224,33 @@ function stop_iface($iface, $ip, $gw) { } +function getIfaceNAME() { + /* + $ifaces = exec("/sbin/ifconfig -a | cut -c 1-8 | sort | uniq -u |grep -v lo|sed ':a;N;$!ba;s/\\n/|/g'"); + $ifaces = str_replace(" ","",$ifaces); + $ifaces = explode("|", $ifaces); + */ + + $exec = "/usr/bin/python /usr/share/fruitywifi/utils/network.py -t getifacename | grep -v lo"; + unset($output); + exec($exec, $output); + return $output; +} + +function getIfaceIP($iface) { + //$tmp_ip = exec("/sbin/ifconfig $io_in_iface | grep 'inet addr:' | cut -d: -f2 |awk '{print $1}'"); + //$ip = exec("/sbin/ifconfig $ifaces[$i] | grep 'inet addr:' | cut -d: -f2 |awk '{print $1}'"); + $exec = "/usr/bin/python /usr/share/fruitywifi/utils/network.py -t getifaceip -i $iface"; + unset($output); + exec($exec, $output); + return $output[0]; +} + +function getIfaceMAC($iface) { + $exec = "/usr/bin/python /usr/share/fruitywifi/utils/network.py -t getifacemac -i $iface"; + unset($output); + exec($exec, $output); + return $output[0]; +} + ?> \ No newline at end of file diff --git a/FruityWifi/www/page_config_adv.php b/FruityWifi/www/page_config_adv.php index 3c56d20..9ecde72 100644 --- a/FruityWifi/www/page_config_adv.php +++ b/FruityWifi/www/page_config_adv.php @@ -192,9 +192,8 @@ ?>
@@ -274,9 +273,10 @@ "; + if($io_in_set == "0") { + // Get interface IP + $tmp_ip = getIfaceIP($io_in_iface); + echo ""; } ?>
stop [on]"; } else { @@ -351,8 +351,9 @@ "; + // Get interface IP + $tmp_ip = getIfaceIP($io_out_iface); + echo ""; } ?> stop [on]"; } else { diff --git a/FruityWifi/www/page_status.php b/FruityWifi/www/page_status.php index 09fde58..367ca3b 100644 --- a/FruityWifi/www/page_status.php +++ b/FruityWifi/www/page_status.php @@ -382,15 +382,13 @@ function addDivs($service, $alias, $edit, $path)
Interfaces/IP
"; } } diff --git a/FruityWifi/www/page_status_ws.php b/FruityWifi/www/page_status_ws.php index fa8e70d..84bc106 100644 --- a/FruityWifi/www/page_status_ws.php +++ b/FruityWifi/www/page_status_ws.php @@ -713,15 +713,13 @@ function addDivs($service, $alias, $edit, $path, $mod_logs_panel)
Interfaces/IP
"; } } diff --git a/FruityWifi/www/page_status_wsdl.php b/FruityWifi/www/page_status_wsdl.php index 0f56bad..f9495d1 100644 --- a/FruityWifi/www/page_status_wsdl.php +++ b/FruityWifi/www/page_status_wsdl.php @@ -1,6 +1,6 @@ Interfaces/IP
> $mod_logs &"; @@ -467,13 +458,10 @@ function killRegex($regex){ //EXTRACT MACADDRESS unset($output); - $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); + $output = getIfaceMAC($io_in_iface); //REPLACE MAC - $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd.conf"; + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output."/g' $mod_path/includes/conf/hostapd.conf"; exec_fruitywifi($exec); $exec = "$bin_hostapd $mod_path/includes/conf/hostapd.conf >> $mod_logs &"; @@ -619,13 +607,10 @@ function killRegex($regex){ //EXTRACT MACADDRESS unset($output); - $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); + $output = getIfaceMAC($io_in_iface); //REPLACE MAC - $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd-secure.conf"; + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output."/g' $mod_path/includes/conf/hostapd-secure.conf"; exec_fruitywifi($exec); $exec = "$bin_hostapd $mod_path/includes/conf/hostapd-secure.conf >> $mod_logs &"; @@ -648,13 +633,10 @@ function killRegex($regex){ //EXTRACT MACADDRESS unset($output); - $exec = "$bin_ifconfig -a $io_in_iface |grep HWaddr"; - $output = exec_fruitywifi($exec); - $output = preg_replace('/\s+/', ' ',$output[0]); - $output = explode(" ",$output); + $output = getIfaceMAC($io_in_iface); //REPLACE MAC - $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output[4]."/g' $mod_path/includes/conf/hostapd.conf"; + $exec = "$bin_sed -i 's/^bssid=.*/bssid=".$output."/g' $mod_path/includes/conf/hostapd.conf"; exec_fruitywifi($exec); $exec = "$bin_hostapd $mod_path/includes/conf/hostapd.conf >> $mod_logs &"; From 1d3df738df12fe60b264a8ad19d44593642efa6d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:17:05 +0000 Subject: [PATCH 059/151] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 5d4977e..9a2b317 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,12 @@ FruityWifi FruityWifi is a wireless network auditing tool. The application can be installed in any Debian based system adding the extra packages. Tested in Debian, Kali Linux, Kali Linux ARM (Raspberry Pi), Raspbian (Raspberry Pi), Pwnpi (Raspberry Pi), Bugtraq. +v2.4 +---------------- +- Utils have been added to replace "ifconfig -a" +- Kali Linux Rolling compatibility issue has been fixed + + v2.2 ---------------- - Wireless service has been replaced by AP module From fb06fc754f668dbfaf9f0c86541265958101bfc5 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:19:06 +0000 Subject: [PATCH 060/151] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 9a2b317..333ab3f 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,11 @@ v2.4 - Kali Linux Rolling compatibility issue has been fixed +v2.3 +---------------- +- monitor mode (mon0) has been fixed (new airmon-ng compatibility issue) + + v2.2 ---------------- - Wireless service has been replaced by AP module From efe310007a41fb3366b1ee57f6d9f4daecfc4bc9 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:19:29 +0000 Subject: [PATCH 061/151] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 333ab3f..bc53604 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -FruityWifi +FruityWiFi ============== FruityWifi is a wireless network auditing tool. The application can be installed in any Debian based system adding the extra packages. Tested in Debian, Kali Linux, Kali Linux ARM (Raspberry Pi), Raspbian (Raspberry Pi), Pwnpi (Raspberry Pi), Bugtraq. From b50c32b9a0ef6f633d979d77a38e713d2372d790 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:20:41 +0000 Subject: [PATCH 062/151] v2.4 --- FruityWifi/www/config/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FruityWifi/www/config/config.php b/FruityWifi/www/config/config.php index ea460e1..d5b610f 100644 --- a/FruityWifi/www/config/config.php +++ b/FruityWifi/www/config/config.php @@ -1,5 +1,5 @@ > web interface input validation. $regex_extra=" _-.[]*"; // extra characters allowed (input validation). $log_path="/usr/share/fruitywifi/logs"; From f6756dc549e47028a661533c19932a586517ab56 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:24:15 +0000 Subject: [PATCH 063/151] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc53604..abc5d04 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ FruityWifi is a wireless network auditing tool. The application can be installed v2.4 ---------------- -- Utils have been added to replace "ifconfig -a" +- Utils have been added (replaces "ifconfig -a") - Kali Linux Rolling compatibility issue has been fixed From 7d1aad543b30d64b68d32d2321370b9f13834206 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:29:09 +0000 Subject: [PATCH 064/151] v2.4 --- install-FruityWifi.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index becd10d..c7a03d9 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -39,7 +39,9 @@ adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-cre echo "[fruitywifi user has been created]" echo -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-pip + +pip install netifaces cmd=`gcc --version|grep "4.7"` if [[ $cmd == "" ]] From 57e35d376f6e390cd995eb9e789f4421692f5635 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:35:19 +0000 Subject: [PATCH 065/151] v2.4 --- install-FruityWifi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index c7a03d9..65d4ccd 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -215,7 +215,7 @@ chown root:root /etc/sudoers.d/fruitywifi echo "[sudo setup completed]" echo -cmd=`lsb_release -c |grep "jessie"` +cmd=`lsb_release -c |grep -iEe "jessie|kali-rolling"` if [[ ! -z $cmd ]] then echo "--------------------------------" From f1957f0f927bc2eb2da37880017ac2b4efdf8d23 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 10:55:47 +0000 Subject: [PATCH 066/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 6ad90ff..bc6d89c 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -2,12 +2,20 @@ ap - 1.1 + 1.2 @xtr4nge AP interface module_ap 2.2 + + api + 1.1 + @xtr4nge + API interface + module_api + 2.2 + nmap 1.4 @@ -312,14 +320,6 @@ module_openvpn 2.2 - - api - 1.1 - @xtr4nge - API interface - module_api - 2.2 - wifirecon 1.0 From 20b20933e24ffce49cafde535528f0f21355095b Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 11:07:35 +0000 Subject: [PATCH 067/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index bc6d89c..40191bc 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -6,7 +6,7 @@ @xtr4nge AP interface module_ap - 2.2 + 2.4 api From 2dd42c9f06db449066314ddd2d6004714374a5fe Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 11:15:51 +0000 Subject: [PATCH 068/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 40191bc..1964e95 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -18,7 +18,7 @@ nmap - 1.4 + 1.5 @xtr4nge nmap interface module_nmap From 17b97dd0143782d5bf2da2fcac74220994e5c0cb Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 21 Feb 2016 13:52:08 +0000 Subject: [PATCH 069/151] v2.4 --- install-FruityWifi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index 65d4ccd..e11c47c 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -39,7 +39,7 @@ adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-cre echo "[fruitywifi user has been created]" echo -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-pip +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip pip install netifaces From f9cddb151f4863e731a5fd207790a9d2d77bed14 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 25 Mar 2016 13:07:55 +0000 Subject: [PATCH 070/151] NetHunter support has been added --- install-FruityWifi.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index e11c47c..91bc62a 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -35,6 +35,7 @@ echo "--------------------------------" echo "Creates user fruitywifi" echo "--------------------------------" adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-create-home --gecos "FruityWifi" --group fruitywifi +usermod -a -G fruitywifi inet echo "[fruitywifi user has been created]" echo From ef4aa8a38589308d873a71f63c136cd7fc901755 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 25 Mar 2016 13:56:49 +0000 Subject: [PATCH 071/151] NetHunter support has been added --- install-FruityWifi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index 91bc62a..a029174 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -216,7 +216,7 @@ chown root:root /etc/sudoers.d/fruitywifi echo "[sudo setup completed]" echo -cmd=`lsb_release -c |grep -iEe "jessie|kali-rolling"` +cmd=`lsb_release -c |grep -iEe "jessie|kali|sana"` if [[ ! -z $cmd ]] then echo "--------------------------------" From 29203208e88086abe16767f9cafa30d93d70d4f0 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 25 Mar 2016 15:21:14 +0000 Subject: [PATCH 072/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 1964e95..ef7abff 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -2,7 +2,7 @@ ap - 1.2 + 1.3 @xtr4nge AP interface module_ap @@ -16,6 +16,22 @@ module_api 2.2 + + karma + 1.6 + @xtr4nge + Karma interface + module_karma + 2.1 + + + mana + 1.4 + @xtr4nge + mana interface + module_mana + 2.1 + nmap 1.5 @@ -120,14 +136,6 @@ module_whatsapp 2.1 - - karma - 1.6 - @xtr4nge - Karma interface - module_karma - 2.1 - nmcli 1.3 @@ -216,14 +224,6 @@ module_phishing 2.1 - - mana - 1.4 - @xtr4nge - mana interface - module_mana - 2.1 - recon 1.1 From 6f95a55e1d1b0ee6ade9a05e161e71b4f4679736 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 25 Mar 2016 19:36:04 +0000 Subject: [PATCH 073/151] NetHunter support has been added --- install-FruityWifi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index a029174..3079642 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -35,7 +35,7 @@ echo "--------------------------------" echo "Creates user fruitywifi" echo "--------------------------------" adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-create-home --gecos "FruityWifi" --group fruitywifi -usermod -a -G fruitywifi inet +usermod -a -G inet fruitywifi echo "[fruitywifi user has been created]" echo From 9cea5e4fb5968cd5f8eb8cac56c2044bc5faa8ee Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 25 Mar 2016 22:46:32 +0000 Subject: [PATCH 074/151] NetHunter support has been added --- sudo-setup/fruitywifi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sudo-setup/fruitywifi b/sudo-setup/fruitywifi index 1e3f87a..cd10003 100644 --- a/sudo-setup/fruitywifi +++ b/sudo-setup/fruitywifi @@ -4,3 +4,5 @@ Defaults:fruitywifi logfile = /usr/share/fruitywifi/logs/sudo.log Defaults:fruitywifi log_year Defaults:fruitywifi log_host Defaults:fruitywifi syslog=auth +Defaults:fruitywifi umask=022 +Defaults:fruitywifi umask_override From 5fc72f1dfbb52101e6825a674d01a51321762326 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 25 Mar 2016 22:52:27 +0000 Subject: [PATCH 075/151] NetHunter support has been added --- sudo-setup/fruitywifi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sudo-setup/fruitywifi b/sudo-setup/fruitywifi index cd10003..b5247fa 100644 --- a/sudo-setup/fruitywifi +++ b/sudo-setup/fruitywifi @@ -4,5 +4,5 @@ Defaults:fruitywifi logfile = /usr/share/fruitywifi/logs/sudo.log Defaults:fruitywifi log_year Defaults:fruitywifi log_host Defaults:fruitywifi syslog=auth -Defaults:fruitywifi umask=022 Defaults:fruitywifi umask_override +Defaults:fruitywifi umask=0022 From 6d3f03ae71a854255c21c0da85fca4c9e8a039a9 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 26 Mar 2016 09:18:40 +0000 Subject: [PATCH 076/151] minor fix --- install-FruityWifi.sh | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/install-FruityWifi.sh b/install-FruityWifi.sh index 3079642..9ebc3ae 100755 --- a/install-FruityWifi.sh +++ b/install-FruityWifi.sh @@ -10,10 +10,6 @@ fruitywifi_exec_mode="sudo" # -------------------------------------------------------- fruitywifi_log_path="/usr/share/fruitywifi/logs" # -------------------------------------------------------- -# danger: 'enable' or 'disabled' (Backward compatibility) -# -------------------------------------------------------- -fruitywifi_danger="enabled" -# -------------------------------------------------------- # 'all' option installs nginx webserver on ports 80 | 443, # and it also installs FruityWifi on ports 8000 | 8443. # If 'all' is not specified then only installs 8000 | 8443 @@ -180,7 +176,7 @@ echo echo "--------------------------------" echo "BACKUP" echo "--------------------------------" -cmd=`date +"%Y-%m-%d-%k-%M-%S"` +cmd=`date +"%Y-%m-%d-%H-%M-%S"` mv /usr/share/fruitywifi fruitywifi.BAK.$cmd echo @@ -195,13 +191,13 @@ echo "--------------------------------" mkdir $fruitywifi_log_path EXEC="s,^\$log_path=.*,\$log_path=\""$fruitywifi_log_path"\";,g" -sed -i $EXEC FruityWifi/www/config/config.php +sed -i "$EXEC" FruityWifi/www/config/config.php EXEC="s,^log-facility=.*,log-facility="$fruitywifi_log_path"/dnsmasq.log,g" -sed -i $EXEC FruityWifi/conf/dnsmasq.conf +sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf EXEC="s,^dhcp-leasefile=.*,dhcp-leasefile="$fruitywifi_log_path"/dhcp.leases,g" -sed -i $EXEC FruityWifi/conf/dnsmasq.conf -EXEC="s,^Defaults logfile =.*,Defaults logfile = "$fruitywifi_log_path"/sudo.log,g" -sed -i $EXEC sudo-setup/fruitywifi +sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf +EXEC="s,^Defaults:fruitywifi logfile =.*,Defaults:fruitywifi logfile = "$fruitywifi_log_path"/sudo.log,g" +sed -i "$EXEC" sudo-setup/fruitywifi echo "[logs setup completed]" echo @@ -235,19 +231,6 @@ cp -a FruityWifi /usr/share/fruitywifi ln -s $fruitywifi_log_path /usr/share/fruitywifi/www/logs ln -s /usr/share/fruitywifi/ /usr/share/FruityWifi -#if [ $fruitywifi_exec_mode == "danger" ] -if [ $fruitywifi_danger == "enabled" ] -then - echo "--------------------------------" - echo "Installing danger" - echo "--------------------------------" - - cd /usr/share/fruitywifi/bin/ - gcc danger.c -o danger - chgrp fruitywifi /usr/share/fruitywifi/bin/danger - chmod 4750 /usr/share/fruitywifi/bin/danger -fi - echo # START/STOP SERVICES From 07b0816fedad19eb7f0eef0ef8fec119752c1238 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 26 Mar 2016 09:21:53 +0000 Subject: [PATCH 077/151] minor fix --- FruityWifi/bin/danger.c | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 FruityWifi/bin/danger.c diff --git a/FruityWifi/bin/danger.c b/FruityWifi/bin/danger.c deleted file mode 100644 index 3953653..0000000 --- a/FruityWifi/bin/danger.c +++ /dev/null @@ -1,14 +0,0 @@ -#include - #include - #include - - int - main (int argc, char *argv[]) - { - - setuid (0); - system(argv[1]); - - return 0; - - } \ No newline at end of file From 611156bae3c09d0803c459301197f3a017df0d68 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 8 Apr 2016 19:52:49 +0100 Subject: [PATCH 078/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index ef7abff..bfb09ca 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -1,5 +1,13 @@ + + api + 1.1 + @xtr4nge + API interface + module_api + 2.2 + ap 1.3 @@ -9,12 +17,12 @@ 2.4 - api - 1.1 + fruitydns + 1.0 @xtr4nge - API interface - module_api - 2.2 + FruityDNS interface + module_fruitydns + 2.4 karma From 29b2c211e387b68cbfdcfe5b1434894b98b04e05 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 8 Apr 2016 19:55:01 +0100 Subject: [PATCH 079/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index bfb09ca..c7ea023 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -6,11 +6,11 @@ @xtr4nge API interface module_api - 2.2 + 2.4 ap - 1.3 + 1.4 @xtr4nge AP interface module_ap From e0ad32df99705076db7b1f6b1b4fce0ccc0de80e Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 15 Apr 2016 23:08:52 +0100 Subject: [PATCH 080/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index c7ea023..53b0f4a 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -40,6 +40,14 @@ module_mana 2.1 + + bettercap + 1.0 + @xtr4nge + bettercap interface + module_bettercap + 2.4 + nmap 1.5 From 5d928bff43b5a89308004a9219f5c9738706bbe9 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 16 Apr 2016 15:40:00 +0100 Subject: [PATCH 081/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 53b0f4a..c37383b 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -48,6 +48,14 @@ module_bettercap 2.4 + + beef + 1.0 + @xtr4nge + beef interface + module_beef + 2.4 + nmap 1.5 From 246e31e506819eb41aed538a1047b03852927115 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 29 Apr 2016 10:01:18 +0100 Subject: [PATCH 082/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index c37383b..a153fc4 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -258,11 +258,11 @@ bdfproxy - 1.2 + 1.3 @xtr4nge bdfproxy interface module_bdfproxy - 2.1 + 2.4 nginx From 94751d29507709e4ee03820c49f863f593afeb4d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 13 May 2016 09:17:37 +0100 Subject: [PATCH 083/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a153fc4..da8471a 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -106,11 +106,11 @@ captive - 1.5 + 1.6 @xtr4nge captive portal module_captive - 2.2 + 2.4 squid3 From 29f493c538f21f23972e78d3b632519f75768942 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 28 May 2016 10:13:43 +0100 Subject: [PATCH 084/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index da8471a..b7aea83 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -56,6 +56,14 @@ module_beef 2.4 + + metasploit + 1.0 + @xtr4nge + metasploit interface + module_metasploit + 2.4 + nmap 1.5 From 4485ebe0aec7245c46cd566370d437a8ec9fd665 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Tue, 7 Jun 2016 08:52:06 +0100 Subject: [PATCH 085/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index b7aea83..c34a789 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -64,6 +64,14 @@ module_metasploit 2.4 + + sshuttle + 1.0 + @xtr4nge + sshuttle interface + module_sshuttle + 2.4 + nmap 1.5 From 00f850e9a1a639488bbae8e17930907e8a2e19f9 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 11 Jun 2016 21:58:12 +0100 Subject: [PATCH 086/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index c34a789..1a8135e 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -194,11 +194,11 @@ supplicant - 1.2 + 1.3 @xtr4nge supplicant interface module_supplicant - 2.1 + 2.4 meterpreter From 17c09ca48b672359419f9dd6cf8baa62225d6923 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 13 Jun 2016 11:37:03 +0100 Subject: [PATCH 087/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 1a8135e..047ea4d 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -266,7 +266,7 @@ recon - 1.1 + 1.2 @xtr4nge recon interface module_recon From 95da3354a2fbdf55175ef8ff47682387f8957284 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 13 Jun 2016 11:37:22 +0100 Subject: [PATCH 088/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 047ea4d..8a2e3a5 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -270,7 +270,7 @@ @xtr4nge recon interface module_recon - 2.1 + 2.4 bdfproxy From 12c531f0936835b5f4652ec30e0ed90fe5de6956 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 15 Jun 2016 11:58:52 +0100 Subject: [PATCH 089/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 8a2e3a5..abd79a8 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -122,7 +122,7 @@ captive - 1.6 + 1.7 @xtr4nge captive portal module_captive From 0e69513d82a6987dcc08ff9bf31b8148b96083c5 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 15 Jun 2016 19:03:29 +0100 Subject: [PATCH 090/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index abd79a8..6e135f6 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -40,6 +40,14 @@ module_mana 2.1 + + detectrogue + 1.0 + @xtr4nge + detectrogue interface + module_detectrogue + 2.4 + bettercap 1.0 From 33115f9e2148ba8c899d9785d19a41ffd1ed4154 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 19 Jun 2016 10:45:31 +0100 Subject: [PATCH 091/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 6e135f6..710eba9 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -42,7 +42,7 @@ detectrogue - 1.0 + 1.1 @xtr4nge detectrogue interface module_detectrogue From 3f8eb94e61357632e5d11bd25ad729ed1f304b27 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 26 Jun 2016 11:05:44 +0100 Subject: [PATCH 092/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 710eba9..445b79e 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -48,6 +48,14 @@ module_detectrogue 2.4 + + detectdeauth + 1.0 + @xtr4nge + detectdeauth interface + module_detectdeauth + 2.4 + bettercap 1.0 From a5b30f2ba69b9c615129b0ab7b5fb8e644edb6f2 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 1 Jul 2016 17:31:29 +0100 Subject: [PATCH 093/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 445b79e..ff09f8a 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -42,7 +42,7 @@ detectrogue - 1.1 + 1.2 @xtr4nge detectrogue interface module_detectrogue @@ -50,7 +50,7 @@ detectdeauth - 1.0 + 1.1 @xtr4nge detectdeauth interface module_detectdeauth From 642f6edddee03a585f3a830faae3f6cf98ec976b Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 1 Jul 2016 19:18:37 +0100 Subject: [PATCH 094/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index ff09f8a..a6ecbe3 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -56,6 +56,14 @@ module_detectdeauth 2.4 + + hopper + 1.0 + @xtr4nge + hopper interface + module_hopper + 2.4 + bettercap 1.0 From 98bf2b74e2b321386fe32df1b78ea791c2eba456 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 1 Jul 2016 23:11:26 +0100 Subject: [PATCH 095/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a6ecbe3..078cb1e 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -40,6 +40,14 @@ module_mana 2.1 + + automaton + 1.0 + @xtr4nge + automaton interface + module_automaton + 2.4 + detectrogue 1.2 From 248b8461c4c7062de8ccb50e01c057808337ff71 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 2 Jul 2016 00:52:15 +0100 Subject: [PATCH 096/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 078cb1e..a6ecbe3 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -40,14 +40,6 @@ module_mana 2.1 - - automaton - 1.0 - @xtr4nge - automaton interface - module_automaton - 2.4 - detectrogue 1.2 From 79631b478bfc1d32963c4c5cba0d659d5b244309 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 2 Jul 2016 09:48:10 +0100 Subject: [PATCH 097/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a6ecbe3..f4beec0 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -2,7 +2,7 @@ api - 1.1 + 1.2 @xtr4nge API interface module_api From 6fc303987ff1f87baac72f2783d67e52a74ea8ec Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 2 Jul 2016 10:18:15 +0100 Subject: [PATCH 098/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index f4beec0..fdb2032 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -40,6 +40,14 @@ module_mana 2.1 + + automaton + 1.0 + @xtr4nge + automaton interface + module_automaton + 2.4 + detectrogue 1.2 From 93ce62361b3a434da2d997be9378f241b6c725eb Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 13 Jul 2016 18:03:26 +0100 Subject: [PATCH 099/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index fdb2032..b9fb747 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -42,7 +42,7 @@ automaton - 1.0 + 1.1 @xtr4nge automaton interface module_automaton From 7264697d4cf0b902579af701d7e985281e1cadf8 Mon Sep 17 00:00:00 2001 From: Carlos RH Date: Wed, 27 Jul 2016 12:15:11 +0200 Subject: [PATCH 100/151] :memo: Create CHANGELOG and Add links --- CHANGELOG.md | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..478c616 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,115 @@ +Changelog +============== + +[v2.4](https://github.com/xtr4nge/FruityWifi/releases/tag/v2.4) +---------------- +- Utils have been added (replaces `ifconfig -a`) +- Kali Linux Rolling compatibility issue has been fixed + + +[v2.3](https://github.com/xtr4nge/FruityWifi/releases/tag/v2.3) +---------------- +- Monitor mode (mon0) has been fixed (new airmon-ng compatibility issue) + + +[v2.2](https://github.com/xtr4nge/FruityWifi/releases/tag/v2.2) +---------------- +- Wireless service has been replaced by AP module +- Mobile support has been added +- Bootstrap support has been added +- Token auth has been added +- Minor fix + + +[v2.1](https://github.com/xtr4nge/FruityWifi/releases/tag/v2.1.3) +---------------- +- Hostapd Mana support has been added +- Phishing service has been replaced by phishing module +- Karma service has been replaced by karma module +- Sudo has been implemented (replacement for danger) +- Logs path can be changed +- Squid dependencies have been removed from FruityWifi installer +- Phishing dependencies have been removed from FruityWifi installer +- New AP options available: hostapd, hostapd-mana, hostapd-karma, airmon-ng +- Domain name can be changed from config panel +- New install options have been added to install-FruityWifi.sh +- Install/Remove have been updated + + +[v2.0 (alpha)](https://github.com/xtr4nge/FruityWifi/releases/tag/v2.0) +---------------- +- Web-Interface has been changed (new look and feel, new options). +- Nginx has replaced Apache2 as default webserver. +- Installation script has been updated. +- Config panel has been changed. +- Network interfaces structure has been changed and renamed. +- It is possible to use FruityWifi combining multiple networks and setups. +- Supplicant mode has been added as a module. +- 3G/4G Broadband Mobile has been added as a module. +- FruityWifi HTTP webinterface on port 8000 +- FruityWifi HTTPS webinterface on port 8443 + + +v1.9 +---------------- +- Service Karma has been replaced by Karma module +- Service Supplicant has been replaced by nmcli module +- Config page has been updated +- Supplicant config has been changed (nmcli module is required) +- dnspoof host file has been removed from config page (dnsspoof module is required) +- Logs page has been updated +- WSDL has been updated +- Hostapd/Karma has been removed from installer (replaced by Karma module) +- NetworkManager has been removed from installer (replaced by nmcli module) +- install-modules.py has been added (install all modules from console) + + +v1.8 +---------------- +- WSDL has been added +- New status page has been added +- Logs can follow in realtime using the new status page (wsdl) + + +v1.6 +---------------- +- Dependencies can be installed from module windows +- Minor fix + + +v1.5 +---------------- +- New functions has been added +- Source code has been changed (open file function) +- Minor fix + + +v1.4 +---------------- +- New functions has been added (monitor mode) +- Config page has been changed +- Minor fix + + +v1.3 +---------------- +- Directory structure has been changed +- Minor fix + + +v1.2 +---------------- +- Installation script has been updated +- SSLstrip fork (@xtr4nge) has been added (Inject + Tamperer options) +- Minor fix + + +v1.1 +---------------- +- External modules can be installed from modules page +- Minor fix + + +v1.0 +---------------- +- Init From f83667fdec6e501d6c6872edc9cc57c2fe7ca0aa Mon Sep 17 00:00:00 2001 From: Carlos RH Date: Wed, 27 Jul 2016 12:15:21 +0200 Subject: [PATCH 101/151] :memo: New README as from Wiki --- README.md | 135 +++++++++++------------------------------------------- 1 file changed, 28 insertions(+), 107 deletions(-) diff --git a/README.md b/README.md index abc5d04..96901c7 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,39 @@ -FruityWiFi -============== +# FruityWiFi +###### Wireless network auditing tool http://www.fruitywifi.com/ FruityWifi is a wireless network auditing tool. The application can be installed in any Debian based system adding the extra packages. Tested in Debian, Kali Linux, Kali Linux ARM (Raspberry Pi), Raspbian (Raspberry Pi), Pwnpi (Raspberry Pi), Bugtraq. +![Status](http://farm3.staticflickr.com/2848/10913567126_e9375a8979_z.jpg) -v2.4 ----------------- -- Utils have been added (replaces "ifconfig -a") -- Kali Linux Rolling compatibility issue has been fixed +With the new version, it is possible to install external modules. This functionality gives the user more flexibility and the FruityWifi can be customized. The modules can be added or removed anytime using the on-line repository. +Available modules: +- Hostapd Karma +- URLsnarf +- DNSspoof +- Kismet +- Squid (code injection capabilities) +- SSLstrip (code injection capabilities) +- nmap +- mdk3 +- ngrep +- Captive Portal +- Nessus +- Ettercap +- Tcpdump +- AutoSSH +- Supplicant +- 3G/4G -v2.3 ----------------- -- monitor mode (mon0) has been fixed (new airmon-ng compatibility issue) +![Modules](http://farm6.staticflickr.com/5477/10913832783_aed9b21755_z.jpg) +**Note**: New modules are being developed continuously and can be installed from the modules page. -v2.2 ----------------- -- Wireless service has been replaced by AP module -- Mobile support has been added -- Bootstrap support has been added -- Token auth has been added -- minor fix +Using the installation script all the required dependencies, scripts and setup can be installed, or if you prefer you can download a SD image of Pwnpi 3.0 with FruityWifi v1.6 from the wiki page: https://github.com/xtr4nge/FruityWifi/wiki/Install +![SSLstrip](http://farm6.staticflickr.com/5507/10913527725_7b48c043e9_z.jpg) -v2.1 ----------------- -- Hostapd Mana support has been added -- Phishing service has been replaced by phishing module -- Karma service has been replaced by karma module -- Sudo has been implemented (replacement for danger) -- Logs path can be changed -- Squid dependencies have been removed from FruityWifi installer -- Phishing dependencies have been removed from FruityWifi installer -- New AP options available: hostapd, hostapd-mana, hostapd-karma, airmon-ng -- Domain name can be changed from config panel -- New install options have been added to install-FruityWifi.sh -- Install/Remove have been updated +![Captive](http://farm6.staticflickr.com/5494/10913832583_217319c11f_z.jpg) - -v2.0 (alpha) ----------------- -- Web-Interface has been changed (new look and feel, new options). -- Nginx has replaced Apache2 as default webserver. -- Installation script has been updated. -- Config panel has been changed. -- Network interfaces structure has been changed and renamed. -- It is possible to use FruityWifi combining multiple networks and setups. -- Supplicant mode has been added as a module. -- 3G/4G Broadband Mobile has been added as a module. -- FruityWifi HTTP webinterface on port 8000 -- FruityWifi HTTPS webinterface on port 8443 - - -v1.9 ----------------- -- Service Karma has been replaced by Karma module -- Service Supplicant has been replaced by nmcli module -- Config page has been updated -- Supplicant config has been changed (nmcli module is required) -- dnspoof host file has been removed from config page (dnsspoof module is required) -- Logs page has been updated -- WSDL has been updated -- Hostapd/Karma has been removed from installer (replaced by Karma module) -- NetworkManager has been removed from installer (replaced by nmcli module) -- install-modules.py has been added (install all modules from console) - - -v1.8 ----------------- -- WSDL has been added -- new status page has been added -- logs can follow in realtime using the new status page (wsdl) - - -v1.6 ----------------- -- Dependencies can be installed from module windows -- minor fix - - -v1.5 ----------------- -- New functions has been added -- Source code has been changed (open file function) -- minor fix - - -v1.4 ----------------- -- New functions has been added (monitor mode) -- config page has been changed -- minor fix - - -v1.3 ----------------- -- Directory structure has been changed -- minor fix - - -v1.2 ----------------- -- Installation script has been updated -- SSLstrip fork (@xtr4nge) has been added (Inject + Tamperer options) -- minor fix - - -v1.1 ----------------- -- External modules can be installed from modules page -- minor fix - - -v1.0 ----------------- -- init +### More information +[Wiki](https://github.com/xtr4nge/FruityWifi/wiki) From e962f56dc598ad68d2ccf9aa96771db45a34ca40 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Wed, 3 Aug 2016 17:44:41 +0100 Subject: [PATCH 102/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index b9fb747..3e668ca 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -48,6 +48,14 @@ module_automaton 2.4 + + geolocation + 1.0 + @xtr4nge + geolocation interface + module_geolocation + 2.4 + detectrogue 1.2 From bf23fc7fcc38d8268304b4385b6baa21847ff2e0 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Aug 2016 12:33:44 +0100 Subject: [PATCH 103/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 3e668ca..36437fb 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -18,7 +18,7 @@ fruitydns - 1.0 + 1.1 @xtr4nge FruityDNS interface module_fruitydns @@ -42,7 +42,7 @@ automaton - 1.1 + 1.2 @xtr4nge automaton interface module_automaton @@ -98,7 +98,7 @@ metasploit - 1.0 + 1.1 @xtr4nge metasploit interface module_metasploit @@ -122,7 +122,7 @@ sslstrip - 1.7 + 1.8 @xtr4nge sslstrip interface module_sslstrip @@ -138,7 +138,7 @@ urlsnarf - 1.6 + 1.7 @xtr4nge urlsnarf interface module_urlsnarf @@ -146,7 +146,7 @@ mdk3 - 1.7 + 1.8 @xtr4nge mdk3 interface module_mdk3 @@ -154,7 +154,7 @@ ngrep - 1.4 + 1.5 @xtr4nge ngrep interface module_ngrep @@ -162,7 +162,7 @@ captive - 1.7 + 1.8 @xtr4nge captive portal module_captive @@ -170,7 +170,7 @@ squid3 - 1.3 + 1.4 @xtr4nge squid3 interface module_squid3 @@ -250,7 +250,7 @@ ettercap - 1.2 + 1.3 @xtr4nge ettercap interface module_ettercap @@ -258,7 +258,7 @@ tcpdump - 1.1 + 1.2 @xtr4nge tcpdump interface module_tcpdump @@ -266,7 +266,7 @@ autossh - 1.2 + 1.3 @xtr4nge autossh interface module_autossh @@ -298,7 +298,7 @@ phishing - 1.1 + 1.2 @xtr4nge phishing interface module_phishing @@ -338,7 +338,7 @@ sslstrip2 - 1.0 + 1.1 @xtr4nge sslstrip2 interface module_sslstrip2 @@ -346,7 +346,7 @@ fruityproxy - 1.2 + 1.3 @xtr4nge fruityproxy interface module_fruityproxy From fb4193a7f3254541fe286289f0dd702ba654377d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Aug 2016 14:06:46 +0100 Subject: [PATCH 104/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 36437fb..f0922e0 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -26,11 +26,11 @@ karma - 1.6 + 1.7 @xtr4nge Karma interface module_karma - 2.1 + 2.4 mana From e328b751e12a1063ecd43788072fdb38a8c095d7 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Aug 2016 14:16:36 +0100 Subject: [PATCH 105/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index f0922e0..a5533b4 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -34,11 +34,11 @@ mana - 1.4 + 1.5 @xtr4nge mana interface module_mana - 2.1 + 2.4 automaton From 1a2b6c04bdc62903b5c383ad3cba60432069dd5b Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Aug 2016 16:21:53 +0100 Subject: [PATCH 106/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index a5533b4..40b7dc6 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -178,11 +178,11 @@ kismet - 1.2 + 1.3 @xtr4nge kismet interface module_kismet - 2.1 + 2.4 responder From 4ce8fe0b7986961988ec70d47bc9b84447dd6f61 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 26 Aug 2016 19:55:12 +0100 Subject: [PATCH 107/151] PHP7 config files --- nginx-setup/FruityWiFi-PHP7 | 52 ++++++++++++++++++++++++++++++++++ nginx-setup/fpm-PHP7/443.conf | 22 ++++++++++++++ nginx-setup/fpm-PHP7/80.conf | 22 ++++++++++++++ nginx-setup/fpm-PHP7/8000.conf | 22 ++++++++++++++ nginx-setup/fpm-PHP7/8443.conf | 22 ++++++++++++++ 5 files changed, 140 insertions(+) create mode 100644 nginx-setup/FruityWiFi-PHP7 create mode 100644 nginx-setup/fpm-PHP7/443.conf create mode 100644 nginx-setup/fpm-PHP7/80.conf create mode 100644 nginx-setup/fpm-PHP7/8000.conf create mode 100644 nginx-setup/fpm-PHP7/8443.conf diff --git a/nginx-setup/FruityWiFi-PHP7 b/nginx-setup/FruityWiFi-PHP7 new file mode 100644 index 0000000..bc3e415 --- /dev/null +++ b/nginx-setup/FruityWiFi-PHP7 @@ -0,0 +1,52 @@ + +server { + listen 8000 default_server; + + root /usr/share/fruitywifi/www; + index index.php index.html index.htm; + + #server_name localhost; + + location ~ \.php$ { + try_files $uri =404; + #fastcgi_pass unix:/var/run/php5-fpm-8000.sock; + fastcgi_pass unix:/var/run/php/php7-fpm-8000.sock; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + location / { + try_files $uri $uri/ =404; + } +} + +server { + + listen 8443 ssl; + + root /usr/share/fruitywifi/www; + index index.php index.html index.htm; + + #server_name localhost; + + ssl_certificate /etc/nginx/ssl/nginx.crt; + ssl_certificate_key /etc/nginx/ssl/nginx.key; + + + location ~ \.php$ { + try_files $uri =404; + #fastcgi_pass unix:/var/run/php5-fpm-8443.sock; + fastcgi_pass unix:/var/run/php/php7-fpm-8443.sock; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + #access_log /var/log/nginx/access.log combined; + #error_log /var/log/nginx/error.log warn; + + location / { + try_files $uri $uri/ =404; + } +} diff --git a/nginx-setup/fpm-PHP7/443.conf b/nginx-setup/fpm-PHP7/443.conf new file mode 100644 index 0000000..30161d2 --- /dev/null +++ b/nginx-setup/fpm-PHP7/443.conf @@ -0,0 +1,22 @@ +[www-443] + +user = fruitywifi +group = fruitywifi + +;listen = /var/run/php5-fpm-443.sock +listen = /var/run/php/php7-fpm-443.sock + +listen.owner = fruitywifi +listen.group = fruitywifi + +pm = dynamic +pm.max_children = 5 +pm.start_servers = 2 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 + +chdir = / + +php_value[short_open_tag] = On +php_value[error_reporting] = E_ALL ^ E_NOTICE +php_admin_flag[opcache.enable] = off diff --git a/nginx-setup/fpm-PHP7/80.conf b/nginx-setup/fpm-PHP7/80.conf new file mode 100644 index 0000000..ffabd0a --- /dev/null +++ b/nginx-setup/fpm-PHP7/80.conf @@ -0,0 +1,22 @@ +[www-80] + +user = fruitywifi +group = fruitywifi + +;listen = /var/run/php5-fpm-80.sock +listen = /var/run/php/php7-fpm-80.sock + +listen.owner = fruitywifi +listen.group = fruitywifi + +pm = dynamic +pm.max_children = 5 +pm.start_servers = 2 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 + +chdir = / + +php_value[short_open_tag] = On +php_value[error_reporting] = E_ALL ^ E_NOTICE +php_admin_flag[opcache.enable] = off diff --git a/nginx-setup/fpm-PHP7/8000.conf b/nginx-setup/fpm-PHP7/8000.conf new file mode 100644 index 0000000..bcd9059 --- /dev/null +++ b/nginx-setup/fpm-PHP7/8000.conf @@ -0,0 +1,22 @@ +[www-8000] + +user = fruitywifi +group = fruitywifi + +;listen = /var/run/php5-fpm-8000.sock +listen = /var/run/php/php7-fpm-8000.sock + +listen.owner = fruitywifi +listen.group = fruitywifi + +pm = dynamic +pm.max_children = 5 +pm.start_servers = 2 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 + +chdir = / + +php_value[short_open_tag] = On +php_value[error_reporting] = E_ALL ^ E_NOTICE +php_admin_flag[opcache.enable] = off diff --git a/nginx-setup/fpm-PHP7/8443.conf b/nginx-setup/fpm-PHP7/8443.conf new file mode 100644 index 0000000..3c2bf28 --- /dev/null +++ b/nginx-setup/fpm-PHP7/8443.conf @@ -0,0 +1,22 @@ +[www-8443] + +user = fruitywifi +group = fruitywifi + +;listen = /var/run/php5-fpm-8443.sock +listen = /var/run/php/php7-fpm-8443.sock + +listen.owner = fruitywifi +listen.group = fruitywifi + +pm = dynamic +pm.max_children = 5 +pm.start_servers = 2 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 + +chdir = / + +php_value[short_open_tag] = On +php_value[error_reporting] = E_ALL ^ E_NOTICE +php_admin_flag[opcache.enable] = off From 650380e9957e1f53af4877260dc99f0c4c6111b9 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 27 Aug 2016 10:36:42 +0100 Subject: [PATCH 108/151] FruityWiFi and PHP7 installer --- install-FruityWiFi-PHP7.sh | 288 +++++++++++++++++++++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100755 install-FruityWiFi-PHP7.sh diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh new file mode 100755 index 0000000..f5a181a --- /dev/null +++ b/install-FruityWiFi-PHP7.sh @@ -0,0 +1,288 @@ +#!/bin/bash + +# CONFIG +version="2.4.1" +# -------------------------------------------------------- +# Setup PHP version -> options: PHP5 | PHP7 +# The chosen version needs to be in the repository +# -------------------------------------------------------- +fruitywifi_php_version="PHP7" +# -------------------------------------------------------- +# Setup log path. default=/usr/share/fruitywifi/logs +# -------------------------------------------------------- +fruitywifi_log_path="/usr/share/fruitywifi/logs" +# -------------------------------------------------------- +# -------------------------------------------------------- +# FruityWiFi set defaults [init.d] +# -------------------------------------------------------- +fruitywifi_init_defaults="onboot" +# -------------------------------------------------------- + +find FruityWifi -type d -exec chmod 755 {} \; +find FruityWifi -type f -exec chmod 644 {} \; + +root_path=`pwd` + +mkdir tmp-install +cd tmp-install + +apt-get update + +echo "--------------------------------" +echo "Creates user fruitywifi" +echo "--------------------------------" +adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-create-home --gecos "FruityWiFi" --group fruitywifi +usermod -a -G inet fruitywifi + +echo "[fruitywifi user has been created]" +echo + +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip + +pip install netifaces + +cmd=`gcc --version|grep "4.7"` +if [[ $cmd == "" ]] +then + echo "--------------------------------" + echo "Installing gcc 4.7" + echo "--------------------------------" + + apt-get -y install gcc-4.7 + apt-get -y install g++-4.7 + update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 + + echo "[gcc setup completed]" + +else + echo "--------------------------------" + echo "gcc 4.7 already installed" + echo "--------------------------------" + echo +fi + +echo + +if [ ! -f "/usr/sbin/dnsmasq" ] +then + echo "--------------------------------" + echo "Installing dnsmasq" + echo "--------------------------------" + + # INSTALL DNSMASQ + apt-get -y install dnsmasq + + echo "[dnsmasq setup completed]" + +else + echo "--------------------------------" + echo "dnsmasq already installed" + echo "--------------------------------" + echo +fi + +echo + +if [ ! -f "/usr/sbin/hostapd" ] +then + echo "--------------------------------" + echo "Installing hostapd" + echo "--------------------------------" + + # INSTALL HOSTAPD + apt-get -y install hostapd + + echo "[hostapd setup completed]" + +else + echo "--------------------------------" + echo "hostapd already installed" + echo "--------------------------------" + echo +fi + +echo + +if [ ! -f "/usr/sbin/airmon-ng" ] && [ ! -f "/usr/local/sbin/airmon-ng" ] +then + echo "--------------------------------" + echo "Installing aircrack-ng" + echo "--------------------------------" + + # INSTALL AIRCRACK-NG + apt-get -y install libssl-dev wireless-tools iw + #VERSION="aircrack-ng-1.2-beta1" # [OLD_VERSION] + VERSION="aircrack-ng-1.2-rc4" + wget http://download.aircrack-ng.org/$VERSION.tar.gz + tar -zxvf $VERSION.tar.gz + cd $VERSION + make + make install + ln -s /usr/local/sbin/airmon-ng /usr/sbin/airmon-ng + ln -s /usr/local/sbin/airbase-ng /usr/sbin/airbase-ng + cd ../ + + echo "[aircrack-ng setup completed]" + +else + echo "--------------------------------" + echo "aircrack-ng already installed" + echo "--------------------------------" + echo +fi + +echo + +# BACK TO ROOT-INSTALL FOLDER +cd $root_path + +echo "--------------------------------" +echo "Installing Nginx" +echo "--------------------------------" + +# NGINX INSTALL +apt-get -y install nginx +#apt-get -y install nginx php5-fpm +echo + +# SSL +echo "--------------------------------" +echo "Create Nginx ssl certificate" +echo "--------------------------------" +cd $root_path +mkdir /etc/nginx/ssl +openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt + +# REMOVE DEFAULT SITE +rm /etc/nginx/sites-enabled/default + +# SETUP NGINX AND PHP5|PHP7 +cp nginx-setup/nginx.conf /etc/nginx/ + +if [[ $fruitywifi_php_version == "PHP7" ]] +then + # INSTALL PHP7 + apt-get -y install php7.0-fpm php7.0-curl php7.0-cli php7.0-xml + + cp nginx-setup/FruityWiFi-PHP7 /etc/nginx/sites-enabled/ + cp nginx-setup/fpm-PHP7/8000.conf /etc/php/7.0/fpm/pool.d/ + cp nginx-setup/fpm-PHP7/8443.conf /etc/php/7.0/fpm/pool.d/ + + # RESTART NGINX + PHP7-FPM + /etc/init.d/nginx restart + /etc/init.d/php7.0-fpm restart +else + # INSTALL PHP5 + apt-get -y install php5-fpm php5-curl php5-cli + + cp nginx-setup/FruityWifi /etc/nginx/sites-enabled/ + cp nginx-setup/fpm/8000.conf /etc/php5/fpm/pool.d/ + cp nginx-setup/fpm/8443.conf /etc/php5/fpm/pool.d/ + + # RESTART NGINX + PHP5-FPM + /etc/init.d/nginx restart + /etc/init.d/php5-fpm restart +fi + +echo "[nginx setup completed]" +echo + +DIR="/usr/share/fruitywifi" +if [ -d "$DIR" ]; then + echo "--------------------------------" + echo "BACKUP CORE AND MODULES" + echo "--------------------------------" + cmd=`date +"%Y-%m-%d-%H-%M-%S"` + mv $DIR fruitywifi.BAK.$cmd + echo +if + +echo "--------------------------------" +echo "Setup FruityWiFi" +echo "--------------------------------" +cd $root_path + +echo "--------------------------------" +echo "Config log path" +echo "--------------------------------" + +mkdir $fruitywifi_log_path +EXEC="s,^\$log_path=.*,\$log_path=\""$fruitywifi_log_path"\";,g" +sed -i "$EXEC" FruityWifi/www/config/config.php +EXEC="s,^log-facility=.*,log-facility="$fruitywifi_log_path"/dnsmasq.log,g" +sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf +EXEC="s,^dhcp-leasefile=.*,dhcp-leasefile="$fruitywifi_log_path"/dhcp.leases,g" +sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf +EXEC="s,^Defaults:fruitywifi logfile =.*,Defaults:fruitywifi logfile = "$fruitywifi_log_path"/sudo.log,g" +sed -i "$EXEC" sudo-setup/fruitywifi + +echo "[logs setup completed]" +echo + +echo "--------------------------------" +echo "Setup Sudo" +echo "--------------------------------" +cd $root_path +cp -a sudo-setup/fruitywifi /etc/sudoers.d/ +chown root:root /etc/sudoers.d/fruitywifi + +echo "[sudo setup completed]" +echo + +cmd=`lsb_release -c |grep -iEe "jessie|kali|sana"` +if [[ ! -z $cmd ]] +then + echo "--------------------------------" + echo "Setup DNSMASQ" + echo "--------------------------------" + + EXEC="s,^server=,#server=,g" + sed -i $EXEC FruityWifi/conf/dnsmasq.conf + + echo "[dnsmasq setup completed]" + echo + +fi + +cp -a FruityWifi /usr/share/fruitywifi +ln -s $fruitywifi_log_path /usr/share/fruitywifi/www/logs + +echo + +# START/STOP SERVICES +if [[ $fruitywifi_init_defaults == "onboot" ]] +then + echo "--------------------------------" + echo "START SERVICES" + echo "--------------------------------" + + update-rc.d ssh defaults + update-rc.d nginx defaults + update-rc.d ntp defaults + + /etc/init.d/nginx restart + if [[ $fruitywifi_php_version == "PHP7" ]] + then + update-rc.d php7.0-fpm defaults + /etc/init.d/php7.0-fpm restart + else + update-rc.d php5-fpm defaults + /etc/init.d/php5-fpm restart + fi +fi + +apt-get -y remove ifplugd + +echo +echo "---------------------------" +echo "WEB-INTERFACE" +echo "---------------------------" +echo "http://localhost:8000 [http]" +echo "https://localhost:8443 [https]" +echo "user: admin" +echo "pass: admin" +echo +echo "GitHub: https://github.com/xtr4nge/FruityWifi" +echo "Twitter: @xtr4nge, @FruityWifi" +echo "ENJOY!" +echo "" From a55b6a4e2866347e076fddae9dd5b7c744563e36 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 27 Aug 2016 10:39:25 +0100 Subject: [PATCH 109/151] file renamed --- install-FruityWifi.sh => install-FruityWiFi.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename install-FruityWifi.sh => install-FruityWiFi.sh (100%) diff --git a/install-FruityWifi.sh b/install-FruityWiFi.sh similarity index 100% rename from install-FruityWifi.sh rename to install-FruityWiFi.sh From b3b685fbbc11940b2782919e5336a0f9b6faec1a Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 27 Aug 2016 11:37:13 +0100 Subject: [PATCH 110/151] FruityWiFi and PHP7 installer --- install-FruityWiFi-PHP7.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh index f5a181a..d2f4997 100755 --- a/install-FruityWiFi-PHP7.sh +++ b/install-FruityWiFi-PHP7.sh @@ -195,18 +195,18 @@ if [ -d "$DIR" ]; then cmd=`date +"%Y-%m-%d-%H-%M-%S"` mv $DIR fruitywifi.BAK.$cmd echo -if +fi echo "--------------------------------" echo "Setup FruityWiFi" echo "--------------------------------" cd $root_path +echo echo "--------------------------------" echo "Config log path" echo "--------------------------------" -mkdir $fruitywifi_log_path EXEC="s,^\$log_path=.*,\$log_path=\""$fruitywifi_log_path"\";,g" sed -i "$EXEC" FruityWifi/www/config/config.php EXEC="s,^log-facility=.*,log-facility="$fruitywifi_log_path"/dnsmasq.log,g" @@ -245,6 +245,7 @@ then fi cp -a FruityWifi /usr/share/fruitywifi +mkdir $fruitywifi_log_path ln -s $fruitywifi_log_path /usr/share/fruitywifi/www/logs echo From e07fb5cebaa0a539cfc9d09d453c95e2cc4ed9a3 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 27 Aug 2016 11:43:18 +0100 Subject: [PATCH 111/151] FruityWiFi and PHP7 installer --- install-FruityWiFi-PHP7.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh index d2f4997..fb551d9 100755 --- a/install-FruityWiFi-PHP7.sh +++ b/install-FruityWiFi-PHP7.sh @@ -245,7 +245,7 @@ then fi cp -a FruityWifi /usr/share/fruitywifi -mkdir $fruitywifi_log_path +#mkdir $fruitywifi_log_path ln -s $fruitywifi_log_path /usr/share/fruitywifi/www/logs echo From e165cd6230b3b75951ccb495f35d0273156d89bc Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Sep 2016 08:40:37 +0100 Subject: [PATCH 112/151] Update README.md --- README.md | 46 +++++++++++++++++----------------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 96901c7..55360c2 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,27 @@ # FruityWiFi ###### Wireless network auditing tool http://www.fruitywifi.com/ -FruityWifi is a wireless network auditing tool. The application can be installed in any Debian based system adding the extra packages. Tested in Debian, Kali Linux, Kali Linux ARM (Raspberry Pi), Raspbian (Raspberry Pi), Pwnpi (Raspberry Pi), Bugtraq. - -![Status](http://farm3.staticflickr.com/2848/10913567126_e9375a8979_z.jpg) - -With the new version, it is possible to install external modules. This functionality gives the user more flexibility and the FruityWifi can be customized. The modules can be added or removed anytime using the on-line repository. - -Available modules: -- Hostapd Karma -- URLsnarf -- DNSspoof -- Kismet -- Squid (code injection capabilities) -- SSLstrip (code injection capabilities) -- nmap -- mdk3 -- ngrep -- Captive Portal -- Nessus -- Ettercap -- Tcpdump -- AutoSSH -- Supplicant -- 3G/4G - -![Modules](http://farm6.staticflickr.com/5477/10913832783_aed9b21755_z.jpg) +FruityWifi is an open source tool to audit wireless networks. It allows the user to deploy advanced attacks by directly using the web interface or by sending messages to it. -**Note**: New modules are being developed continuously and can be installed from the modules page. +Initialy the application was created to be used with the Raspberry-Pi, but it can be installed on any Debian based system. + +![Status](http://www.fruitywifi.com/img/001.png) + +A more flexible control panel. Now it is possible to use FruityWifi combining multiple networks and setups: + +Within the new options on the control panel we can change the AP mode between Hostapd or Airmon-ng allowing to use more chipsets like Realtek. -Using the installation script all the required dependencies, scripts and setup can be installed, or if you prefer you can download a SD image of Pwnpi 3.0 with FruityWifi v1.6 from the wiki page: https://github.com/xtr4nge/FruityWifi/wiki/Install +It is possible customize each one of the network interfaces which allows the user to keep the current setup or change it completely. -![SSLstrip](http://farm6.staticflickr.com/5507/10913527725_7b48c043e9_z.jpg) +![Config](http://www.fruitywifi.com/img/002.png) + +FruityWifi is based on modules making it more flexible. These modules can be installed from the control panel to provide FruityWifi with new functionalities. + +Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngrep, nmap, Squid3 y SSLstrip (code injection functionality), Captive Portal, AutoSSH, Meterpreter, Tcpdump and more. AutoSSH allows the user to create a reverse ssh connection, restarting it in case that the connection has been closed or dropped. It is useful to keep a permanent connection with FruityWifi. + +**Note**: New modules are being developed continuously and can be installed from the modules page. -![Captive](http://farm6.staticflickr.com/5494/10913832583_217319c11f_z.jpg) +Using the installation script all the required dependencies, scripts and setup can be installed. ### More information [Wiki](https://github.com/xtr4nge/FruityWifi/wiki) From 1297a9b06715ed0e626171043b9ee0d71009f747 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Sep 2016 08:43:53 +0100 Subject: [PATCH 113/151] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55360c2..029e446 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ It is possible customize each one of the network interfaces which allows the use FruityWifi is based on modules making it more flexible. These modules can be installed from the control panel to provide FruityWifi with new functionalities. -Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngrep, nmap, Squid3 y SSLstrip (code injection functionality), Captive Portal, AutoSSH, Meterpreter, Tcpdump and more. AutoSSH allows the user to create a reverse ssh connection, restarting it in case that the connection has been closed or dropped. It is useful to keep a permanent connection with FruityWifi. +Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngrep, nmap, Squid3 y SSLstrip (code injection functionality), Captive Portal, AutoSSH, Meterpreter, Tcpdump and more. **Note**: New modules are being developed continuously and can be installed from the modules page. From 60b4a2b8dbb329eb818d21380bceccc4e0be37b8 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Sep 2016 08:57:06 +0100 Subject: [PATCH 114/151] Update README.md --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/README.md b/README.md index 029e446..783496f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,53 @@ Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngre **Note**: New modules are being developed continuously and can be installed from the modules page. +## Install + Using the installation script all the required dependencies, scripts and setup can be installed. +### x86/x64 Version + +- You need Debian (or based) installed (or a Live CD version) to use this script. +- Download the zip file from https://github.com/xtr4nge/FruityWifi/archive/master.zip +- Unzip the file and run **install-FruityWifi.sh** (This script will install all the dependencies and setups) +- Done. + +Go to **http://localhost:8000** (for http)
+Go to **https://localhost:8443** (for https) + +user: admin
+pass: admin +

+ +### Kali Linux Version +FruityWifi is now part of Kali Linux repositories. +- `apt-get install fruitywifi` +- `/etc/init.d/fruitywifi start` +- `/etc/init.d/php5-fpm start` + +Go to **http://localhost:8000** (for http)
+Go to **https://localhost:8443** (for https) + +user: admin
+pass: admin +
+ +Note: installing `fruitywifi` will install all modules. If you want to install only some modules, you can install `fruitywifi-core` first and then each module, for example `fruitywifi-module-dnsspoof`. +

+ +### ARM version (Raspberry Pi) + +- You need a Raspbian, Pwnpi or Kali Linux version to use this script. +- Download the zip file from https://github.com/xtr4nge/FruityWifi/archive/master.zip +- Unzip the file and run **install-FruityWifi.sh** (This script will install all the dependencies and setups) +- Done. + +Go to **http://localhost:8000** (for http)
+Go to **https://localhost:8443** (for https) + +user: admin
+pass: admin +

+ ### More information [Wiki](https://github.com/xtr4nge/FruityWifi/wiki) From f7aa3ba3afeb22222c15dc9c5d58caaee7971d28 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 10 Sep 2016 11:11:19 +0100 Subject: [PATCH 115/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 40b7dc6..dcd816a 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -346,11 +346,11 @@
fruityproxy - 1.3 + 1.4 @xtr4nge fruityproxy interface module_fruityproxy - 2.2 + 2.4 bluepand From 4e698149a8569ea9577f59be43b2b75fc3162133 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 18 Sep 2016 12:50:16 +0100 Subject: [PATCH 116/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index dcd816a..4970466 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -10,7 +10,7 @@ ap - 1.4 + 1.5 @xtr4nge AP interface module_ap From 8c29211894e45dde34a7bc7f68b69074ed335387 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 18 Sep 2016 19:03:51 +0100 Subject: [PATCH 117/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 4970466..06f7c49 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -48,6 +48,14 @@ module_automaton 2.4 + + faraday + 1.0 + @xtr4nge + faraday interface + module_faraday + 2.4 + geolocation 1.0 From 2351c265152836c5523dc0c98ddf4c93bbcf6072 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 1 Oct 2016 11:10:15 +0100 Subject: [PATCH 118/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 06f7c49..d4df0a2 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -170,7 +170,7 @@ captive - 1.8 + 1.9 @xtr4nge captive portal module_captive From ccca87c3da7b0b95a1b9727d7bd21f10d663e4f3 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 1 Oct 2016 13:53:37 +0100 Subject: [PATCH 119/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index d4df0a2..1d5f20b 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -330,11 +330,11 @@ nginx - 1.0 + 1.1 @xtr4nge nginx interface module_nginx - 2.1 + 2.4 mitmf From 97ed6db3d36ace886af7ee891eb44b8d996a5d7b Mon Sep 17 00:00:00 2001 From: Aroop 'FinlayDaG33k' Roelofs Date: Mon, 3 Oct 2016 08:10:17 +0200 Subject: [PATCH 120/151] Update install-FruityWiFi-PHP7.sh Added check for root. --- install-FruityWiFi-PHP7.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh index fb551d9..6470ca8 100755 --- a/install-FruityWiFi-PHP7.sh +++ b/install-FruityWiFi-PHP7.sh @@ -18,6 +18,11 @@ fruitywifi_log_path="/usr/share/fruitywifi/logs" fruitywifi_init_defaults="onboot" # -------------------------------------------------------- +if [ "$EUID" -ne ] + then echo "Please run as root" + exit +fi + find FruityWifi -type d -exec chmod 755 {} \; find FruityWifi -type f -exec chmod 644 {} \; From e795de69e347b346cd6545fe9d9639667a6706a8 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 1 Apr 2017 10:54:49 +0100 Subject: [PATCH 121/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 1d5f20b..42c3c66 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -386,7 +386,7 @@ mgmt - 1.0 + 1.1 @xtr4nge mgmt interface module_mgmt From 1e5c4cffc11841f6dd64c0dc679c954b12aaa248 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 24 Jun 2017 16:23:04 +0100 Subject: [PATCH 122/151] git has been added --- install-FruityWiFi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWiFi.sh b/install-FruityWiFi.sh index 9ebc3ae..6caaf51 100755 --- a/install-FruityWiFi.sh +++ b/install-FruityWiFi.sh @@ -36,7 +36,7 @@ usermod -a -G inet fruitywifi echo "[fruitywifi user has been created]" echo -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git pip install netifaces From 8e5be2eebdcc41dab8818b6318c4c176c168ceb0 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 24 Jun 2017 16:23:24 +0100 Subject: [PATCH 123/151] git has been added --- install-FruityWiFi-PHP7.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh index fb551d9..376608f 100755 --- a/install-FruityWiFi-PHP7.sh +++ b/install-FruityWiFi-PHP7.sh @@ -37,7 +37,7 @@ usermod -a -G inet fruitywifi echo "[fruitywifi user has been created]" echo -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git pip install netifaces From eb9eecab2578c2610830df28db85be7326457404 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Thu, 25 Jan 2018 12:29:06 +0000 Subject: [PATCH 124/151] dependencies update --- install-FruityWiFi-PHP7.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh index 376608f..f71ae78 100755 --- a/install-FruityWiFi-PHP7.sh +++ b/install-FruityWiFi-PHP7.sh @@ -37,7 +37,7 @@ usermod -a -G inet fruitywifi echo "[fruitywifi user has been created]" echo -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git aircrack-ng net-tools pkg-config pip install netifaces From e62093922164841b3624549043c6e8229a8b160d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 28 Jul 2018 21:37:32 +0100 Subject: [PATCH 125/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 42c3c66..96cd540 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -34,7 +34,7 @@ mana - 1.5 + 1.6 @xtr4nge mana interface module_mana From 82a8b27d475f5ec60a35ac5ba055274376d36979 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 28 Jul 2018 22:26:22 +0100 Subject: [PATCH 126/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 96cd540..dabb7a8 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -10,7 +10,7 @@ ap - 1.5 + 1.6 @xtr4nge AP interface module_ap From 2423baa97b1eceb2bd33fbd0057b2b9e415a762c Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 29 Jul 2018 12:22:25 +0100 Subject: [PATCH 127/151] install-FruityWiFi.sh renamed to install-FruityWiFi-PHP5.sh --- install-FruityWiFi.sh => install-FruityWiFi-PHP5.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename install-FruityWiFi.sh => install-FruityWiFi-PHP5.sh (100%) diff --git a/install-FruityWiFi.sh b/install-FruityWiFi-PHP5.sh similarity index 100% rename from install-FruityWiFi.sh rename to install-FruityWiFi-PHP5.sh From 7ff11cd1fb8c9d41478bff09438b9874b4930c87 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 29 Jul 2018 12:26:21 +0100 Subject: [PATCH 128/151] Update README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 783496f..782faf3 100644 --- a/README.md +++ b/README.md @@ -25,11 +25,14 @@ Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngre Using the installation script all the required dependencies, scripts and setup can be installed. +On **Jessie** based systems use: install-FruityWifi-**PHP5**.sh +On **Stretch** based systems use: install-FruityWifi-**PHP7**.sh + ### x86/x64 Version - You need Debian (or based) installed (or a Live CD version) to use this script. - Download the zip file from https://github.com/xtr4nge/FruityWifi/archive/master.zip -- Unzip the file and run **install-FruityWifi.sh** (This script will install all the dependencies and setups) +- Unzip the file and run **install-FruityWifi-{PHPVersion}.sh** (This script will install all the dependencies and setups) - Done. Go to **http://localhost:8000** (for http)
@@ -59,7 +62,7 @@ Note: installing `fruitywifi` will install all modules. If you want to install o - You need a Raspbian, Pwnpi or Kali Linux version to use this script. - Download the zip file from https://github.com/xtr4nge/FruityWifi/archive/master.zip -- Unzip the file and run **install-FruityWifi.sh** (This script will install all the dependencies and setups) +- Unzip the file and run **install-FruityWifi-{PHPVersion}.sh** (This script will install all the dependencies and setups) - Done. Go to **http://localhost:8000** (for http)
From 03570e718680cf4777ba78c7034214cce0eb4880 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 29 Jul 2018 12:26:55 +0100 Subject: [PATCH 129/151] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 782faf3..406938b 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,10 @@ Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngre Using the installation script all the required dependencies, scripts and setup can be installed. On **Jessie** based systems use: install-FruityWifi-**PHP5**.sh + On **Stretch** based systems use: install-FruityWifi-**PHP7**.sh + ### x86/x64 Version - You need Debian (or based) installed (or a Live CD version) to use this script. From 99cb58dfbab2fe7aaf0ce2988bdae0446360aafd Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 29 Jul 2018 12:27:38 +0100 Subject: [PATCH 130/151] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 406938b..2431a33 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,8 @@ Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngre Using the installation script all the required dependencies, scripts and setup can be installed. On **Jessie** based systems use: install-FruityWifi-**PHP5**.sh - -On **Stretch** based systems use: install-FruityWifi-**PHP7**.sh - +
On **Stretch** based systems use: install-FruityWifi-**PHP7**.sh +

### x86/x64 Version From 00455f206e66cbb08987b5b582dbdb58edaf295a Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 14 Sep 2018 08:59:33 +0100 Subject: [PATCH 131/151] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 2431a33..b265344 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # FruityWiFi ###### Wireless network auditing tool http://www.fruitywifi.com/ +## Important Note (Debian Stretch): +Use **Debian Jessie** based systems until I can update dependencies for Debian Stretch. +

+ FruityWifi is an open source tool to audit wireless networks. It allows the user to deploy advanced attacks by directly using the web interface or by sending messages to it. Initialy the application was created to be used with the Raspberry-Pi, but it can be installed on any Debian based system. From 13e05d19c81edeba6bde68396367693619ca533e Mon Sep 17 00:00:00 2001 From: plonibarploni <44826203+plonibarploni@users.noreply.github.com> Date: Tue, 13 Nov 2018 23:25:43 -0500 Subject: [PATCH 132/151] Update php7 commands In the current form, only php7.0 can be installed, this patch allows newer versions (currently php7.2 on Ubuntu 18.04) to be installed. --- install-FruityWiFi-PHP7.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh index f71ae78..8d39249 100755 --- a/install-FruityWiFi-PHP7.sh +++ b/install-FruityWiFi-PHP7.sh @@ -162,15 +162,15 @@ cp nginx-setup/nginx.conf /etc/nginx/ if [[ $fruitywifi_php_version == "PHP7" ]] then # INSTALL PHP7 - apt-get -y install php7.0-fpm php7.0-curl php7.0-cli php7.0-xml + apt-get -y install php7.?-fpm php7.?-curl php7.?-cli php7.?-xml cp nginx-setup/FruityWiFi-PHP7 /etc/nginx/sites-enabled/ - cp nginx-setup/fpm-PHP7/8000.conf /etc/php/7.0/fpm/pool.d/ - cp nginx-setup/fpm-PHP7/8443.conf /etc/php/7.0/fpm/pool.d/ + cp nginx-setup/fpm-PHP7/8000.conf /etc/php/7.?/fpm/pool.d/ + cp nginx-setup/fpm-PHP7/8443.conf /etc/php/7.?/fpm/pool.d/ # RESTART NGINX + PHP7-FPM /etc/init.d/nginx restart - /etc/init.d/php7.0-fpm restart + /etc/init.d/php7.?-fpm restart else # INSTALL PHP5 apt-get -y install php5-fpm php5-curl php5-cli @@ -264,8 +264,8 @@ then /etc/init.d/nginx restart if [[ $fruitywifi_php_version == "PHP7" ]] then - update-rc.d php7.0-fpm defaults - /etc/init.d/php7.0-fpm restart + update-rc.d php7.?-fpm defaults + /etc/init.d/php7.?-fpm restart else update-rc.d php5-fpm defaults /etc/init.d/php5-fpm restart From 0125f3c197cd07ffe4acfe51cd40343c97fa070d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 6 Jan 2019 09:43:09 +0000 Subject: [PATCH 133/151] Added check for root. --- install-FruityWiFi-PHP7.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh index bd84741..427a1e2 100755 --- a/install-FruityWiFi-PHP7.sh +++ b/install-FruityWiFi-PHP7.sh @@ -18,7 +18,7 @@ fruitywifi_log_path="/usr/share/fruitywifi/logs" fruitywifi_init_defaults="onboot" # -------------------------------------------------------- -if [ "$EUID" -ne ] +if [[ $EUID -ne 0 ]] then echo "Please run as root" exit fi From 62f1ecd1b838f62a81b99a9eddc34fcfc9aa3ed2 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 6 Jan 2019 10:14:45 +0000 Subject: [PATCH 134/151] CVE-2018-19168 has been fixed. Issue #250. --- FruityWifi/www/modules/save.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FruityWifi/www/modules/save.php b/FruityWifi/www/modules/save.php index d4216c8..415f480 100644 --- a/FruityWifi/www/modules/save.php +++ b/FruityWifi/www/modules/save.php @@ -18,6 +18,7 @@ ?> \ No newline at end of file +?> From 9137d0d0e1bc6bb4084452ee495c7e47ed1a5f82 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 6 Jan 2019 11:09:04 +0000 Subject: [PATCH 135/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index dabb7a8..2bba77c 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -10,7 +10,7 @@
ap - 1.6 + 1.7 @xtr4nge AP interface module_ap From cc8dd81893e0ca5668d4f864b86e51599183ee1d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sun, 6 Jan 2019 12:04:20 +0000 Subject: [PATCH 136/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 2bba77c..3fa7a24 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -354,7 +354,7 @@ fruityproxy - 1.4 + 1.5 @xtr4nge fruityproxy interface module_fruityproxy From 3073e2e1cbf6d288e3f2fe729534800f072813c5 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 11:51:34 +0100 Subject: [PATCH 137/151] Installer has been updated for Debian 10 Buster --- {FruityWifi => FruityWiFi}/conf/dnsmasq.conf | 0 .../conf/hostapd-secure.conf | 0 {FruityWifi => FruityWiFi}/conf/hostapd.conf | 0 .../conf/pool-ssid.conf | 0 .../conf/pool-station.conf | 0 .../conf/spoofhost.conf | 0 {FruityWifi => FruityWiFi}/conf/ssid.conf | 0 .../conf/wpa_supplicant.conf | 0 {FruityWifi => FruityWiFi}/logs/dhcp.leases | 0 {FruityWifi => FruityWiFi}/logs/dnsmasq.log | 0 {FruityWifi => FruityWiFi}/logs/dnsspoof.log | 0 {FruityWifi => FruityWiFi}/logs/sslstrip.log | 0 {FruityWifi => FruityWiFi}/logs/urlsnarf.log | 0 {FruityWifi => FruityWiFi}/utils/network.py | 0 {FruityWifi => FruityWiFi}/www/action.php | 0 .../www/config/config.php | 0 .../www/css/bootstrap-menu.css | 0 .../www/css/bootstrap-switch.css | 0 .../www/css/bootstrap.css | 0 .../www/css/jquery-ui.css | 0 {FruityWifi => FruityWiFi}/www/functions.php | 0 {FruityWifi => FruityWiFi}/www/header.php | 0 .../www/img/favicon.ico | Bin .../glyphicons-195-circle-question-mark.png | Bin .../www/img/help-browser.png | Bin .../www/img/loader-wide.gif | Bin .../www/img/loading.gif | Bin .../www/img/logo-fw.png | Bin {FruityWifi => FruityWiFi}/www/img/logo.png | Bin {FruityWifi => FruityWiFi}/www/index.php | 0 .../www/js/bootstrap-switch.js | 0 .../www/js/bootstrap.js | 0 .../www/js/highlight.js | 0 .../www/js/jquery-ui.js | 0 {FruityWifi => FruityWiFi}/www/js/jquery.js | 0 {FruityWifi => FruityWiFi}/www/js/main.js | 0 {FruityWifi => FruityWiFi}/www/login.php | 0 .../www/login_check.php | 0 {FruityWifi => FruityWiFi}/www/logout.php | 0 {FruityWifi => FruityWiFi}/www/menu.php | 0 .../www/modules/action.php | 0 .../www/modules/css/jquery-ui.css | 0 .../www/modules/css/style.css | 0 .../www/modules/index.php | 0 .../www/modules/install.php | 0 .../www/modules/js/jquery-ui.js | 0 .../www/modules/js/jquery.js | 0 .../www/modules/menu.php | 0 .../www/modules/save.php | 0 .../www/modules/wait.php | 0 {FruityWifi => FruityWiFi}/www/msg.php | 0 .../www/page_config_adv.php | 0 {FruityWifi => FruityWiFi}/www/page_logs.php | 0 .../www/page_modules.php | 0 .../www/page_status.php | 0 .../www/page_status_ws.php | 0 .../www/page_status_wsdl.php | 0 .../www/scripts/Requests/Requests.php | 0 .../www/scripts/Requests/Requests/Auth.php | 0 .../scripts/Requests/Requests/Auth/Basic.php | 0 .../www/scripts/Requests/Requests/Cookie.php | 0 .../scripts/Requests/Requests/Cookie/Jar.php | 0 .../scripts/Requests/Requests/Exception.php | 0 .../Requests/Requests/Exception/HTTP.php | 0 .../Requests/Requests/Exception/HTTP/400.php | 0 .../Requests/Requests/Exception/HTTP/401.php | 0 .../Requests/Requests/Exception/HTTP/402.php | 0 .../Requests/Requests/Exception/HTTP/403.php | 0 .../Requests/Requests/Exception/HTTP/404.php | 0 .../Requests/Requests/Exception/HTTP/405.php | 0 .../Requests/Requests/Exception/HTTP/406.php | 0 .../Requests/Requests/Exception/HTTP/407.php | 0 .../Requests/Requests/Exception/HTTP/408.php | 0 .../Requests/Requests/Exception/HTTP/409.php | 0 .../Requests/Requests/Exception/HTTP/410.php | 0 .../Requests/Requests/Exception/HTTP/411.php | 0 .../Requests/Requests/Exception/HTTP/412.php | 0 .../Requests/Requests/Exception/HTTP/413.php | 0 .../Requests/Requests/Exception/HTTP/414.php | 0 .../Requests/Requests/Exception/HTTP/415.php | 0 .../Requests/Requests/Exception/HTTP/416.php | 0 .../Requests/Requests/Exception/HTTP/417.php | 0 .../Requests/Requests/Exception/HTTP/418.php | 0 .../Requests/Requests/Exception/HTTP/428.php | 0 .../Requests/Requests/Exception/HTTP/429.php | 0 .../Requests/Requests/Exception/HTTP/431.php | 0 .../Requests/Requests/Exception/HTTP/500.php | 0 .../Requests/Requests/Exception/HTTP/501.php | 0 .../Requests/Requests/Exception/HTTP/502.php | 0 .../Requests/Requests/Exception/HTTP/503.php | 0 .../Requests/Requests/Exception/HTTP/504.php | 0 .../Requests/Requests/Exception/HTTP/505.php | 0 .../Requests/Requests/Exception/HTTP/511.php | 0 .../Requests/Exception/HTTP/Unknown.php | 0 .../www/scripts/Requests/Requests/Hooker.php | 0 .../www/scripts/Requests/Requests/Hooks.php | 0 .../scripts/Requests/Requests/IDNAEncoder.php | 0 .../www/scripts/Requests/Requests/IPv6.php | 0 .../www/scripts/Requests/Requests/IRI.php | 0 .../www/scripts/Requests/Requests/Proxy.php | 0 .../scripts/Requests/Requests/Proxy/HTTP.php | 0 .../scripts/Requests/Requests/Response.php | 0 .../Requests/Requests/Response/Headers.php | 0 .../www/scripts/Requests/Requests/SSL.php | 0 .../www/scripts/Requests/Requests/Session.php | 0 .../scripts/Requests/Requests/Transport.php | 0 .../Requests/Requests/Transport/cURL.php | 0 .../Requests/Requests/Transport/cacert.pem | 0 .../Requests/Requests/Transport/fsockopen.php | 0 .../Utility/CaseInsensitiveDictionary.php | 0 .../Requests/Utility/FilteredIterator.php | 0 .../www/scripts/config_iface.php | 0 .../www/scripts/module_init.php | 0 .../www/scripts/module_status.php | 0 .../www/scripts/modules_action.php | 0 .../www/scripts/status_logs.php | 0 .../www/scripts/status_logs_dhcp.php | 0 .../www/scripts/status_logs_install.php | 0 .../www/scripts/status_logs_stations.php | 0 .../www/scripts/status_wireless.php | 0 .../www/scripts/switch_status.php | 0 .../www/scripts/view_log.php | 0 {FruityWifi => FruityWiFi}/www/scripts/ws.php | 0 {FruityWifi => FruityWiFi}/www/style.css | 0 {FruityWifi => FruityWiFi}/www/users.php | 0 {FruityWifi => FruityWiFi}/www/wait.php | 0 {FruityWifi => FruityWiFi}/www/wait_fruit.php | 0 .../www/wsdl/FruityWifi.php | 0 .../www/wsdl/FruityWifi_client.php | 0 .../www/wsdl/lib/changelog | 0 .../www/wsdl/lib/class.nusoap_base.php | 0 .../www/wsdl/lib/class.soap_fault.php | 0 .../www/wsdl/lib/class.soap_parser.php | 0 .../www/wsdl/lib/class.soap_server.php | 0 .../wsdl/lib/class.soap_transport_http.php | 0 .../www/wsdl/lib/class.soap_val.php | 0 .../www/wsdl/lib/class.soapclient.php | 0 .../www/wsdl/lib/class.wsdl.php | 0 .../www/wsdl/lib/class.wsdlcache.php | 0 .../www/wsdl/lib/class.xmlschema.php | 0 .../www/wsdl/lib/nusoap.php | 0 .../www/wsdl/lib/nusoapmime.php | 0 install-FruityWiFi.sh | 278 ++++++++++++++++++ 143 files changed, 278 insertions(+) rename {FruityWifi => FruityWiFi}/conf/dnsmasq.conf (100%) rename {FruityWifi => FruityWiFi}/conf/hostapd-secure.conf (100%) rename {FruityWifi => FruityWiFi}/conf/hostapd.conf (100%) rename {FruityWifi => FruityWiFi}/conf/pool-ssid.conf (100%) rename {FruityWifi => FruityWiFi}/conf/pool-station.conf (100%) rename {FruityWifi => FruityWiFi}/conf/spoofhost.conf (100%) rename {FruityWifi => FruityWiFi}/conf/ssid.conf (100%) rename {FruityWifi => FruityWiFi}/conf/wpa_supplicant.conf (100%) rename {FruityWifi => FruityWiFi}/logs/dhcp.leases (100%) rename {FruityWifi => FruityWiFi}/logs/dnsmasq.log (100%) rename {FruityWifi => FruityWiFi}/logs/dnsspoof.log (100%) rename {FruityWifi => FruityWiFi}/logs/sslstrip.log (100%) rename {FruityWifi => FruityWiFi}/logs/urlsnarf.log (100%) rename {FruityWifi => FruityWiFi}/utils/network.py (100%) rename {FruityWifi => FruityWiFi}/www/action.php (100%) rename {FruityWifi => FruityWiFi}/www/config/config.php (100%) rename {FruityWifi => FruityWiFi}/www/css/bootstrap-menu.css (100%) rename {FruityWifi => FruityWiFi}/www/css/bootstrap-switch.css (100%) rename {FruityWifi => FruityWiFi}/www/css/bootstrap.css (100%) rename {FruityWifi => FruityWiFi}/www/css/jquery-ui.css (100%) rename {FruityWifi => FruityWiFi}/www/functions.php (100%) rename {FruityWifi => FruityWiFi}/www/header.php (100%) rename {FruityWifi => FruityWiFi}/www/img/favicon.ico (100%) rename {FruityWifi => FruityWiFi}/www/img/glyphicons-195-circle-question-mark.png (100%) rename {FruityWifi => FruityWiFi}/www/img/help-browser.png (100%) rename {FruityWifi => FruityWiFi}/www/img/loader-wide.gif (100%) rename {FruityWifi => FruityWiFi}/www/img/loading.gif (100%) rename {FruityWifi => FruityWiFi}/www/img/logo-fw.png (100%) rename {FruityWifi => FruityWiFi}/www/img/logo.png (100%) rename {FruityWifi => FruityWiFi}/www/index.php (100%) rename {FruityWifi => FruityWiFi}/www/js/bootstrap-switch.js (100%) rename {FruityWifi => FruityWiFi}/www/js/bootstrap.js (100%) rename {FruityWifi => FruityWiFi}/www/js/highlight.js (100%) rename {FruityWifi => FruityWiFi}/www/js/jquery-ui.js (100%) rename {FruityWifi => FruityWiFi}/www/js/jquery.js (100%) rename {FruityWifi => FruityWiFi}/www/js/main.js (100%) rename {FruityWifi => FruityWiFi}/www/login.php (100%) rename {FruityWifi => FruityWiFi}/www/login_check.php (100%) rename {FruityWifi => FruityWiFi}/www/logout.php (100%) rename {FruityWifi => FruityWiFi}/www/menu.php (100%) rename {FruityWifi => FruityWiFi}/www/modules/action.php (100%) rename {FruityWifi => FruityWiFi}/www/modules/css/jquery-ui.css (100%) rename {FruityWifi => FruityWiFi}/www/modules/css/style.css (100%) rename {FruityWifi => FruityWiFi}/www/modules/index.php (100%) rename {FruityWifi => FruityWiFi}/www/modules/install.php (100%) rename {FruityWifi => FruityWiFi}/www/modules/js/jquery-ui.js (100%) rename {FruityWifi => FruityWiFi}/www/modules/js/jquery.js (100%) rename {FruityWifi => FruityWiFi}/www/modules/menu.php (100%) rename {FruityWifi => FruityWiFi}/www/modules/save.php (100%) rename {FruityWifi => FruityWiFi}/www/modules/wait.php (100%) rename {FruityWifi => FruityWiFi}/www/msg.php (100%) rename {FruityWifi => FruityWiFi}/www/page_config_adv.php (100%) rename {FruityWifi => FruityWiFi}/www/page_logs.php (100%) rename {FruityWifi => FruityWiFi}/www/page_modules.php (100%) rename {FruityWifi => FruityWiFi}/www/page_status.php (100%) rename {FruityWifi => FruityWiFi}/www/page_status_ws.php (100%) rename {FruityWifi => FruityWiFi}/www/page_status_wsdl.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Auth.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Auth/Basic.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Cookie.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Cookie/Jar.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/400.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/401.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/402.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/403.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/404.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/405.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/406.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/407.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/408.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/409.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/410.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/411.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/412.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/413.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/414.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/415.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/416.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/417.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/418.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/428.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/429.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/431.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/500.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/501.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/502.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/503.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/504.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/505.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/511.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Exception/HTTP/Unknown.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Hooker.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Hooks.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/IDNAEncoder.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/IPv6.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/IRI.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Proxy.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Proxy/HTTP.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Response.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Response/Headers.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/SSL.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Session.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Transport.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Transport/cURL.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Transport/cacert.pem (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Transport/fsockopen.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Utility/CaseInsensitiveDictionary.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/Requests/Requests/Utility/FilteredIterator.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/config_iface.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/module_init.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/module_status.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/modules_action.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/status_logs.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/status_logs_dhcp.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/status_logs_install.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/status_logs_stations.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/status_wireless.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/switch_status.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/view_log.php (100%) rename {FruityWifi => FruityWiFi}/www/scripts/ws.php (100%) rename {FruityWifi => FruityWiFi}/www/style.css (100%) rename {FruityWifi => FruityWiFi}/www/users.php (100%) rename {FruityWifi => FruityWiFi}/www/wait.php (100%) rename {FruityWifi => FruityWiFi}/www/wait_fruit.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/FruityWifi.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/FruityWifi_client.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/changelog (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.nusoap_base.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.soap_fault.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.soap_parser.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.soap_server.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.soap_transport_http.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.soap_val.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.soapclient.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.wsdl.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.wsdlcache.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/class.xmlschema.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/nusoap.php (100%) rename {FruityWifi => FruityWiFi}/www/wsdl/lib/nusoapmime.php (100%) create mode 100755 install-FruityWiFi.sh diff --git a/FruityWifi/conf/dnsmasq.conf b/FruityWiFi/conf/dnsmasq.conf similarity index 100% rename from FruityWifi/conf/dnsmasq.conf rename to FruityWiFi/conf/dnsmasq.conf diff --git a/FruityWifi/conf/hostapd-secure.conf b/FruityWiFi/conf/hostapd-secure.conf similarity index 100% rename from FruityWifi/conf/hostapd-secure.conf rename to FruityWiFi/conf/hostapd-secure.conf diff --git a/FruityWifi/conf/hostapd.conf b/FruityWiFi/conf/hostapd.conf similarity index 100% rename from FruityWifi/conf/hostapd.conf rename to FruityWiFi/conf/hostapd.conf diff --git a/FruityWifi/conf/pool-ssid.conf b/FruityWiFi/conf/pool-ssid.conf similarity index 100% rename from FruityWifi/conf/pool-ssid.conf rename to FruityWiFi/conf/pool-ssid.conf diff --git a/FruityWifi/conf/pool-station.conf b/FruityWiFi/conf/pool-station.conf similarity index 100% rename from FruityWifi/conf/pool-station.conf rename to FruityWiFi/conf/pool-station.conf diff --git a/FruityWifi/conf/spoofhost.conf b/FruityWiFi/conf/spoofhost.conf similarity index 100% rename from FruityWifi/conf/spoofhost.conf rename to FruityWiFi/conf/spoofhost.conf diff --git a/FruityWifi/conf/ssid.conf b/FruityWiFi/conf/ssid.conf similarity index 100% rename from FruityWifi/conf/ssid.conf rename to FruityWiFi/conf/ssid.conf diff --git a/FruityWifi/conf/wpa_supplicant.conf b/FruityWiFi/conf/wpa_supplicant.conf similarity index 100% rename from FruityWifi/conf/wpa_supplicant.conf rename to FruityWiFi/conf/wpa_supplicant.conf diff --git a/FruityWifi/logs/dhcp.leases b/FruityWiFi/logs/dhcp.leases similarity index 100% rename from FruityWifi/logs/dhcp.leases rename to FruityWiFi/logs/dhcp.leases diff --git a/FruityWifi/logs/dnsmasq.log b/FruityWiFi/logs/dnsmasq.log similarity index 100% rename from FruityWifi/logs/dnsmasq.log rename to FruityWiFi/logs/dnsmasq.log diff --git a/FruityWifi/logs/dnsspoof.log b/FruityWiFi/logs/dnsspoof.log similarity index 100% rename from FruityWifi/logs/dnsspoof.log rename to FruityWiFi/logs/dnsspoof.log diff --git a/FruityWifi/logs/sslstrip.log b/FruityWiFi/logs/sslstrip.log similarity index 100% rename from FruityWifi/logs/sslstrip.log rename to FruityWiFi/logs/sslstrip.log diff --git a/FruityWifi/logs/urlsnarf.log b/FruityWiFi/logs/urlsnarf.log similarity index 100% rename from FruityWifi/logs/urlsnarf.log rename to FruityWiFi/logs/urlsnarf.log diff --git a/FruityWifi/utils/network.py b/FruityWiFi/utils/network.py similarity index 100% rename from FruityWifi/utils/network.py rename to FruityWiFi/utils/network.py diff --git a/FruityWifi/www/action.php b/FruityWiFi/www/action.php similarity index 100% rename from FruityWifi/www/action.php rename to FruityWiFi/www/action.php diff --git a/FruityWifi/www/config/config.php b/FruityWiFi/www/config/config.php similarity index 100% rename from FruityWifi/www/config/config.php rename to FruityWiFi/www/config/config.php diff --git a/FruityWifi/www/css/bootstrap-menu.css b/FruityWiFi/www/css/bootstrap-menu.css similarity index 100% rename from FruityWifi/www/css/bootstrap-menu.css rename to FruityWiFi/www/css/bootstrap-menu.css diff --git a/FruityWifi/www/css/bootstrap-switch.css b/FruityWiFi/www/css/bootstrap-switch.css similarity index 100% rename from FruityWifi/www/css/bootstrap-switch.css rename to FruityWiFi/www/css/bootstrap-switch.css diff --git a/FruityWifi/www/css/bootstrap.css b/FruityWiFi/www/css/bootstrap.css similarity index 100% rename from FruityWifi/www/css/bootstrap.css rename to FruityWiFi/www/css/bootstrap.css diff --git a/FruityWifi/www/css/jquery-ui.css b/FruityWiFi/www/css/jquery-ui.css similarity index 100% rename from FruityWifi/www/css/jquery-ui.css rename to FruityWiFi/www/css/jquery-ui.css diff --git a/FruityWifi/www/functions.php b/FruityWiFi/www/functions.php similarity index 100% rename from FruityWifi/www/functions.php rename to FruityWiFi/www/functions.php diff --git a/FruityWifi/www/header.php b/FruityWiFi/www/header.php similarity index 100% rename from FruityWifi/www/header.php rename to FruityWiFi/www/header.php diff --git a/FruityWifi/www/img/favicon.ico b/FruityWiFi/www/img/favicon.ico similarity index 100% rename from FruityWifi/www/img/favicon.ico rename to FruityWiFi/www/img/favicon.ico diff --git a/FruityWifi/www/img/glyphicons-195-circle-question-mark.png b/FruityWiFi/www/img/glyphicons-195-circle-question-mark.png similarity index 100% rename from FruityWifi/www/img/glyphicons-195-circle-question-mark.png rename to FruityWiFi/www/img/glyphicons-195-circle-question-mark.png diff --git a/FruityWifi/www/img/help-browser.png b/FruityWiFi/www/img/help-browser.png similarity index 100% rename from FruityWifi/www/img/help-browser.png rename to FruityWiFi/www/img/help-browser.png diff --git a/FruityWifi/www/img/loader-wide.gif b/FruityWiFi/www/img/loader-wide.gif similarity index 100% rename from FruityWifi/www/img/loader-wide.gif rename to FruityWiFi/www/img/loader-wide.gif diff --git a/FruityWifi/www/img/loading.gif b/FruityWiFi/www/img/loading.gif similarity index 100% rename from FruityWifi/www/img/loading.gif rename to FruityWiFi/www/img/loading.gif diff --git a/FruityWifi/www/img/logo-fw.png b/FruityWiFi/www/img/logo-fw.png similarity index 100% rename from FruityWifi/www/img/logo-fw.png rename to FruityWiFi/www/img/logo-fw.png diff --git a/FruityWifi/www/img/logo.png b/FruityWiFi/www/img/logo.png similarity index 100% rename from FruityWifi/www/img/logo.png rename to FruityWiFi/www/img/logo.png diff --git a/FruityWifi/www/index.php b/FruityWiFi/www/index.php similarity index 100% rename from FruityWifi/www/index.php rename to FruityWiFi/www/index.php diff --git a/FruityWifi/www/js/bootstrap-switch.js b/FruityWiFi/www/js/bootstrap-switch.js similarity index 100% rename from FruityWifi/www/js/bootstrap-switch.js rename to FruityWiFi/www/js/bootstrap-switch.js diff --git a/FruityWifi/www/js/bootstrap.js b/FruityWiFi/www/js/bootstrap.js similarity index 100% rename from FruityWifi/www/js/bootstrap.js rename to FruityWiFi/www/js/bootstrap.js diff --git a/FruityWifi/www/js/highlight.js b/FruityWiFi/www/js/highlight.js similarity index 100% rename from FruityWifi/www/js/highlight.js rename to FruityWiFi/www/js/highlight.js diff --git a/FruityWifi/www/js/jquery-ui.js b/FruityWiFi/www/js/jquery-ui.js similarity index 100% rename from FruityWifi/www/js/jquery-ui.js rename to FruityWiFi/www/js/jquery-ui.js diff --git a/FruityWifi/www/js/jquery.js b/FruityWiFi/www/js/jquery.js similarity index 100% rename from FruityWifi/www/js/jquery.js rename to FruityWiFi/www/js/jquery.js diff --git a/FruityWifi/www/js/main.js b/FruityWiFi/www/js/main.js similarity index 100% rename from FruityWifi/www/js/main.js rename to FruityWiFi/www/js/main.js diff --git a/FruityWifi/www/login.php b/FruityWiFi/www/login.php similarity index 100% rename from FruityWifi/www/login.php rename to FruityWiFi/www/login.php diff --git a/FruityWifi/www/login_check.php b/FruityWiFi/www/login_check.php similarity index 100% rename from FruityWifi/www/login_check.php rename to FruityWiFi/www/login_check.php diff --git a/FruityWifi/www/logout.php b/FruityWiFi/www/logout.php similarity index 100% rename from FruityWifi/www/logout.php rename to FruityWiFi/www/logout.php diff --git a/FruityWifi/www/menu.php b/FruityWiFi/www/menu.php similarity index 100% rename from FruityWifi/www/menu.php rename to FruityWiFi/www/menu.php diff --git a/FruityWifi/www/modules/action.php b/FruityWiFi/www/modules/action.php similarity index 100% rename from FruityWifi/www/modules/action.php rename to FruityWiFi/www/modules/action.php diff --git a/FruityWifi/www/modules/css/jquery-ui.css b/FruityWiFi/www/modules/css/jquery-ui.css similarity index 100% rename from FruityWifi/www/modules/css/jquery-ui.css rename to FruityWiFi/www/modules/css/jquery-ui.css diff --git a/FruityWifi/www/modules/css/style.css b/FruityWiFi/www/modules/css/style.css similarity index 100% rename from FruityWifi/www/modules/css/style.css rename to FruityWiFi/www/modules/css/style.css diff --git a/FruityWifi/www/modules/index.php b/FruityWiFi/www/modules/index.php similarity index 100% rename from FruityWifi/www/modules/index.php rename to FruityWiFi/www/modules/index.php diff --git a/FruityWifi/www/modules/install.php b/FruityWiFi/www/modules/install.php similarity index 100% rename from FruityWifi/www/modules/install.php rename to FruityWiFi/www/modules/install.php diff --git a/FruityWifi/www/modules/js/jquery-ui.js b/FruityWiFi/www/modules/js/jquery-ui.js similarity index 100% rename from FruityWifi/www/modules/js/jquery-ui.js rename to FruityWiFi/www/modules/js/jquery-ui.js diff --git a/FruityWifi/www/modules/js/jquery.js b/FruityWiFi/www/modules/js/jquery.js similarity index 100% rename from FruityWifi/www/modules/js/jquery.js rename to FruityWiFi/www/modules/js/jquery.js diff --git a/FruityWifi/www/modules/menu.php b/FruityWiFi/www/modules/menu.php similarity index 100% rename from FruityWifi/www/modules/menu.php rename to FruityWiFi/www/modules/menu.php diff --git a/FruityWifi/www/modules/save.php b/FruityWiFi/www/modules/save.php similarity index 100% rename from FruityWifi/www/modules/save.php rename to FruityWiFi/www/modules/save.php diff --git a/FruityWifi/www/modules/wait.php b/FruityWiFi/www/modules/wait.php similarity index 100% rename from FruityWifi/www/modules/wait.php rename to FruityWiFi/www/modules/wait.php diff --git a/FruityWifi/www/msg.php b/FruityWiFi/www/msg.php similarity index 100% rename from FruityWifi/www/msg.php rename to FruityWiFi/www/msg.php diff --git a/FruityWifi/www/page_config_adv.php b/FruityWiFi/www/page_config_adv.php similarity index 100% rename from FruityWifi/www/page_config_adv.php rename to FruityWiFi/www/page_config_adv.php diff --git a/FruityWifi/www/page_logs.php b/FruityWiFi/www/page_logs.php similarity index 100% rename from FruityWifi/www/page_logs.php rename to FruityWiFi/www/page_logs.php diff --git a/FruityWifi/www/page_modules.php b/FruityWiFi/www/page_modules.php similarity index 100% rename from FruityWifi/www/page_modules.php rename to FruityWiFi/www/page_modules.php diff --git a/FruityWifi/www/page_status.php b/FruityWiFi/www/page_status.php similarity index 100% rename from FruityWifi/www/page_status.php rename to FruityWiFi/www/page_status.php diff --git a/FruityWifi/www/page_status_ws.php b/FruityWiFi/www/page_status_ws.php similarity index 100% rename from FruityWifi/www/page_status_ws.php rename to FruityWiFi/www/page_status_ws.php diff --git a/FruityWifi/www/page_status_wsdl.php b/FruityWiFi/www/page_status_wsdl.php similarity index 100% rename from FruityWifi/www/page_status_wsdl.php rename to FruityWiFi/www/page_status_wsdl.php diff --git a/FruityWifi/www/scripts/Requests/Requests.php b/FruityWiFi/www/scripts/Requests/Requests.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests.php rename to FruityWiFi/www/scripts/Requests/Requests.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Auth.php b/FruityWiFi/www/scripts/Requests/Requests/Auth.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Auth.php rename to FruityWiFi/www/scripts/Requests/Requests/Auth.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Auth/Basic.php b/FruityWiFi/www/scripts/Requests/Requests/Auth/Basic.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Auth/Basic.php rename to FruityWiFi/www/scripts/Requests/Requests/Auth/Basic.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Cookie.php b/FruityWiFi/www/scripts/Requests/Requests/Cookie.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Cookie.php rename to FruityWiFi/www/scripts/Requests/Requests/Cookie.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Cookie/Jar.php b/FruityWiFi/www/scripts/Requests/Requests/Cookie/Jar.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Cookie/Jar.php rename to FruityWiFi/www/scripts/Requests/Requests/Cookie/Jar.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception.php b/FruityWiFi/www/scripts/Requests/Requests/Exception.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/400.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/400.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/400.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/400.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/401.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/401.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/401.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/401.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/402.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/402.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/402.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/402.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/403.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/403.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/403.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/403.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/404.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/404.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/404.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/404.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/405.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/405.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/405.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/405.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/406.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/406.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/406.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/406.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/407.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/407.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/407.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/407.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/408.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/408.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/408.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/408.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/409.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/409.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/409.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/409.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/410.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/410.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/410.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/410.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/411.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/411.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/411.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/411.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/412.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/412.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/412.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/412.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/413.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/413.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/413.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/413.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/414.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/414.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/414.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/414.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/415.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/415.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/415.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/415.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/416.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/416.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/416.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/416.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/417.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/417.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/417.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/417.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/418.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/418.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/418.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/418.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/428.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/428.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/428.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/428.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/429.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/429.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/429.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/429.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/431.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/431.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/431.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/431.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/500.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/500.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/500.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/500.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/501.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/501.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/501.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/501.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/502.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/502.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/502.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/502.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/503.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/503.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/503.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/503.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/504.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/504.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/504.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/504.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/505.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/505.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/505.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/505.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/511.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/511.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/511.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/511.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/Unknown.php b/FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/Unknown.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Exception/HTTP/Unknown.php rename to FruityWiFi/www/scripts/Requests/Requests/Exception/HTTP/Unknown.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Hooker.php b/FruityWiFi/www/scripts/Requests/Requests/Hooker.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Hooker.php rename to FruityWiFi/www/scripts/Requests/Requests/Hooker.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Hooks.php b/FruityWiFi/www/scripts/Requests/Requests/Hooks.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Hooks.php rename to FruityWiFi/www/scripts/Requests/Requests/Hooks.php diff --git a/FruityWifi/www/scripts/Requests/Requests/IDNAEncoder.php b/FruityWiFi/www/scripts/Requests/Requests/IDNAEncoder.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/IDNAEncoder.php rename to FruityWiFi/www/scripts/Requests/Requests/IDNAEncoder.php diff --git a/FruityWifi/www/scripts/Requests/Requests/IPv6.php b/FruityWiFi/www/scripts/Requests/Requests/IPv6.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/IPv6.php rename to FruityWiFi/www/scripts/Requests/Requests/IPv6.php diff --git a/FruityWifi/www/scripts/Requests/Requests/IRI.php b/FruityWiFi/www/scripts/Requests/Requests/IRI.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/IRI.php rename to FruityWiFi/www/scripts/Requests/Requests/IRI.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Proxy.php b/FruityWiFi/www/scripts/Requests/Requests/Proxy.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Proxy.php rename to FruityWiFi/www/scripts/Requests/Requests/Proxy.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Proxy/HTTP.php b/FruityWiFi/www/scripts/Requests/Requests/Proxy/HTTP.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Proxy/HTTP.php rename to FruityWiFi/www/scripts/Requests/Requests/Proxy/HTTP.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Response.php b/FruityWiFi/www/scripts/Requests/Requests/Response.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Response.php rename to FruityWiFi/www/scripts/Requests/Requests/Response.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Response/Headers.php b/FruityWiFi/www/scripts/Requests/Requests/Response/Headers.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Response/Headers.php rename to FruityWiFi/www/scripts/Requests/Requests/Response/Headers.php diff --git a/FruityWifi/www/scripts/Requests/Requests/SSL.php b/FruityWiFi/www/scripts/Requests/Requests/SSL.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/SSL.php rename to FruityWiFi/www/scripts/Requests/Requests/SSL.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Session.php b/FruityWiFi/www/scripts/Requests/Requests/Session.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Session.php rename to FruityWiFi/www/scripts/Requests/Requests/Session.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Transport.php b/FruityWiFi/www/scripts/Requests/Requests/Transport.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Transport.php rename to FruityWiFi/www/scripts/Requests/Requests/Transport.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Transport/cURL.php b/FruityWiFi/www/scripts/Requests/Requests/Transport/cURL.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Transport/cURL.php rename to FruityWiFi/www/scripts/Requests/Requests/Transport/cURL.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Transport/cacert.pem b/FruityWiFi/www/scripts/Requests/Requests/Transport/cacert.pem similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Transport/cacert.pem rename to FruityWiFi/www/scripts/Requests/Requests/Transport/cacert.pem diff --git a/FruityWifi/www/scripts/Requests/Requests/Transport/fsockopen.php b/FruityWiFi/www/scripts/Requests/Requests/Transport/fsockopen.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Transport/fsockopen.php rename to FruityWiFi/www/scripts/Requests/Requests/Transport/fsockopen.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Utility/CaseInsensitiveDictionary.php b/FruityWiFi/www/scripts/Requests/Requests/Utility/CaseInsensitiveDictionary.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Utility/CaseInsensitiveDictionary.php rename to FruityWiFi/www/scripts/Requests/Requests/Utility/CaseInsensitiveDictionary.php diff --git a/FruityWifi/www/scripts/Requests/Requests/Utility/FilteredIterator.php b/FruityWiFi/www/scripts/Requests/Requests/Utility/FilteredIterator.php similarity index 100% rename from FruityWifi/www/scripts/Requests/Requests/Utility/FilteredIterator.php rename to FruityWiFi/www/scripts/Requests/Requests/Utility/FilteredIterator.php diff --git a/FruityWifi/www/scripts/config_iface.php b/FruityWiFi/www/scripts/config_iface.php similarity index 100% rename from FruityWifi/www/scripts/config_iface.php rename to FruityWiFi/www/scripts/config_iface.php diff --git a/FruityWifi/www/scripts/module_init.php b/FruityWiFi/www/scripts/module_init.php similarity index 100% rename from FruityWifi/www/scripts/module_init.php rename to FruityWiFi/www/scripts/module_init.php diff --git a/FruityWifi/www/scripts/module_status.php b/FruityWiFi/www/scripts/module_status.php similarity index 100% rename from FruityWifi/www/scripts/module_status.php rename to FruityWiFi/www/scripts/module_status.php diff --git a/FruityWifi/www/scripts/modules_action.php b/FruityWiFi/www/scripts/modules_action.php similarity index 100% rename from FruityWifi/www/scripts/modules_action.php rename to FruityWiFi/www/scripts/modules_action.php diff --git a/FruityWifi/www/scripts/status_logs.php b/FruityWiFi/www/scripts/status_logs.php similarity index 100% rename from FruityWifi/www/scripts/status_logs.php rename to FruityWiFi/www/scripts/status_logs.php diff --git a/FruityWifi/www/scripts/status_logs_dhcp.php b/FruityWiFi/www/scripts/status_logs_dhcp.php similarity index 100% rename from FruityWifi/www/scripts/status_logs_dhcp.php rename to FruityWiFi/www/scripts/status_logs_dhcp.php diff --git a/FruityWifi/www/scripts/status_logs_install.php b/FruityWiFi/www/scripts/status_logs_install.php similarity index 100% rename from FruityWifi/www/scripts/status_logs_install.php rename to FruityWiFi/www/scripts/status_logs_install.php diff --git a/FruityWifi/www/scripts/status_logs_stations.php b/FruityWiFi/www/scripts/status_logs_stations.php similarity index 100% rename from FruityWifi/www/scripts/status_logs_stations.php rename to FruityWiFi/www/scripts/status_logs_stations.php diff --git a/FruityWifi/www/scripts/status_wireless.php b/FruityWiFi/www/scripts/status_wireless.php similarity index 100% rename from FruityWifi/www/scripts/status_wireless.php rename to FruityWiFi/www/scripts/status_wireless.php diff --git a/FruityWifi/www/scripts/switch_status.php b/FruityWiFi/www/scripts/switch_status.php similarity index 100% rename from FruityWifi/www/scripts/switch_status.php rename to FruityWiFi/www/scripts/switch_status.php diff --git a/FruityWifi/www/scripts/view_log.php b/FruityWiFi/www/scripts/view_log.php similarity index 100% rename from FruityWifi/www/scripts/view_log.php rename to FruityWiFi/www/scripts/view_log.php diff --git a/FruityWifi/www/scripts/ws.php b/FruityWiFi/www/scripts/ws.php similarity index 100% rename from FruityWifi/www/scripts/ws.php rename to FruityWiFi/www/scripts/ws.php diff --git a/FruityWifi/www/style.css b/FruityWiFi/www/style.css similarity index 100% rename from FruityWifi/www/style.css rename to FruityWiFi/www/style.css diff --git a/FruityWifi/www/users.php b/FruityWiFi/www/users.php similarity index 100% rename from FruityWifi/www/users.php rename to FruityWiFi/www/users.php diff --git a/FruityWifi/www/wait.php b/FruityWiFi/www/wait.php similarity index 100% rename from FruityWifi/www/wait.php rename to FruityWiFi/www/wait.php diff --git a/FruityWifi/www/wait_fruit.php b/FruityWiFi/www/wait_fruit.php similarity index 100% rename from FruityWifi/www/wait_fruit.php rename to FruityWiFi/www/wait_fruit.php diff --git a/FruityWifi/www/wsdl/FruityWifi.php b/FruityWiFi/www/wsdl/FruityWifi.php similarity index 100% rename from FruityWifi/www/wsdl/FruityWifi.php rename to FruityWiFi/www/wsdl/FruityWifi.php diff --git a/FruityWifi/www/wsdl/FruityWifi_client.php b/FruityWiFi/www/wsdl/FruityWifi_client.php similarity index 100% rename from FruityWifi/www/wsdl/FruityWifi_client.php rename to FruityWiFi/www/wsdl/FruityWifi_client.php diff --git a/FruityWifi/www/wsdl/lib/changelog b/FruityWiFi/www/wsdl/lib/changelog similarity index 100% rename from FruityWifi/www/wsdl/lib/changelog rename to FruityWiFi/www/wsdl/lib/changelog diff --git a/FruityWifi/www/wsdl/lib/class.nusoap_base.php b/FruityWiFi/www/wsdl/lib/class.nusoap_base.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.nusoap_base.php rename to FruityWiFi/www/wsdl/lib/class.nusoap_base.php diff --git a/FruityWifi/www/wsdl/lib/class.soap_fault.php b/FruityWiFi/www/wsdl/lib/class.soap_fault.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.soap_fault.php rename to FruityWiFi/www/wsdl/lib/class.soap_fault.php diff --git a/FruityWifi/www/wsdl/lib/class.soap_parser.php b/FruityWiFi/www/wsdl/lib/class.soap_parser.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.soap_parser.php rename to FruityWiFi/www/wsdl/lib/class.soap_parser.php diff --git a/FruityWifi/www/wsdl/lib/class.soap_server.php b/FruityWiFi/www/wsdl/lib/class.soap_server.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.soap_server.php rename to FruityWiFi/www/wsdl/lib/class.soap_server.php diff --git a/FruityWifi/www/wsdl/lib/class.soap_transport_http.php b/FruityWiFi/www/wsdl/lib/class.soap_transport_http.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.soap_transport_http.php rename to FruityWiFi/www/wsdl/lib/class.soap_transport_http.php diff --git a/FruityWifi/www/wsdl/lib/class.soap_val.php b/FruityWiFi/www/wsdl/lib/class.soap_val.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.soap_val.php rename to FruityWiFi/www/wsdl/lib/class.soap_val.php diff --git a/FruityWifi/www/wsdl/lib/class.soapclient.php b/FruityWiFi/www/wsdl/lib/class.soapclient.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.soapclient.php rename to FruityWiFi/www/wsdl/lib/class.soapclient.php diff --git a/FruityWifi/www/wsdl/lib/class.wsdl.php b/FruityWiFi/www/wsdl/lib/class.wsdl.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.wsdl.php rename to FruityWiFi/www/wsdl/lib/class.wsdl.php diff --git a/FruityWifi/www/wsdl/lib/class.wsdlcache.php b/FruityWiFi/www/wsdl/lib/class.wsdlcache.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.wsdlcache.php rename to FruityWiFi/www/wsdl/lib/class.wsdlcache.php diff --git a/FruityWifi/www/wsdl/lib/class.xmlschema.php b/FruityWiFi/www/wsdl/lib/class.xmlschema.php similarity index 100% rename from FruityWifi/www/wsdl/lib/class.xmlschema.php rename to FruityWiFi/www/wsdl/lib/class.xmlschema.php diff --git a/FruityWifi/www/wsdl/lib/nusoap.php b/FruityWiFi/www/wsdl/lib/nusoap.php similarity index 100% rename from FruityWifi/www/wsdl/lib/nusoap.php rename to FruityWiFi/www/wsdl/lib/nusoap.php diff --git a/FruityWifi/www/wsdl/lib/nusoapmime.php b/FruityWiFi/www/wsdl/lib/nusoapmime.php similarity index 100% rename from FruityWifi/www/wsdl/lib/nusoapmime.php rename to FruityWiFi/www/wsdl/lib/nusoapmime.php diff --git a/install-FruityWiFi.sh b/install-FruityWiFi.sh new file mode 100755 index 0000000..62e4484 --- /dev/null +++ b/install-FruityWiFi.sh @@ -0,0 +1,278 @@ +#!/bin/bash + +# CONFIG +version="2.4.2" +# -------------------------------------------------------- +# Setup PHP version -> options: PHP5 | PHP7 +# The chosen version needs to be in the repository +# -------------------------------------------------------- +#fruitywifi_php_version="PHP7" +php_version="7.3" +# -------------------------------------------------------- +# Setup log path. default=/usr/share/fruitywifi/logs +# -------------------------------------------------------- +fruitywifi_log_path="/usr/share/fruitywifi/logs" +# -------------------------------------------------------- +# -------------------------------------------------------- +# FruityWiFi set defaults [init.d] +# -------------------------------------------------------- +fruitywifi_init_defaults="onboot" +# -------------------------------------------------------- + +find FruityWiFi -type d -exec chmod 755 {} \; +find FruityWiFi -type f -exec chmod 644 {} \; + +root_path=`pwd` + +mkdir tmp-install +cd tmp-install + +apt-get update + +echo "--------------------------------" +echo "Creates user fruitywifi" +echo "--------------------------------" +adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-create-home --gecos "FruityWiFi" --group fruitywifi +usermod -a -G inet fruitywifi # *****ERROR?!***** + +echo "[fruitywifi user has been created]" +echo + +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git ntp + +pip install netifaces + +#cmd=`gcc --version|grep "4.7"` +#if [[ $cmd == "" ]] +#then +# echo "--------------------------------" +# echo "Installing gcc 4.7" +# echo "--------------------------------" + +# apt-get -y install gcc-4.7 +# apt-get -y install g++-4.7 +# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 + +# echo "[gcc setup completed]" + +#else +# echo "--------------------------------" +# echo "gcc 4.7 already installed" +# echo "--------------------------------" +# echo +#fi + +echo + +if [ ! -f "/usr/sbin/dnsmasq" ] +then + echo "--------------------------------" + echo "Installing dnsmasq" + echo "--------------------------------" + + # INSTALL DNSMASQ + apt-get -y install dnsmasq + + echo "[dnsmasq setup completed]" + +else + echo "--------------------------------" + echo "dnsmasq already installed" + echo "--------------------------------" + echo +fi + +echo + +if [ ! -f "/usr/sbin/hostapd" ] +then + echo "--------------------------------" + echo "Installing hostapd" + echo "--------------------------------" + + # INSTALL HOSTAPD + apt-get -y install hostapd + + echo "[hostapd setup completed]" + +else + echo "--------------------------------" + echo "hostapd already installed" + echo "--------------------------------" + echo +fi + +echo + +if [ ! -f "/usr/sbin/airmon-ng" ] && [ ! -f "/usr/local/sbin/airmon-ng" ] +then + echo "--------------------------------" + echo "Installing aircrack-ng" + echo "--------------------------------" + + # INSTALL AIRCRACK-NG + apt-get -y install libssl-dev wireless-tools iw + # DEPENDENCIES FROM AIRCRACK INSTALLER + apt-get -y install build-essential autoconf automake libtool pkg-config libnl-3-dev libnl-genl-3-dev libssl-dev ethtool shtool rfkill zlib1g-dev libpcap-dev libsqlite3-dev libpcre3-dev libhwloc-dev libcmocka-dev + #VERSION="aircrack-ng-1.2-beta1" # [OLD_VERSION] + #VERSION="aircrack-ng-1.2-rc4" + VERSION="aircrack-ng-1.5.2" + wget http://download.aircrack-ng.org/$VERSION.tar.gz + tar -zxvf $VERSION.tar.gz + cd $VERSION + autoreconf -i + ./configure + make + make install + ldconfig + #ln -s /usr/local/sbin/airmon-ng /usr/sbin/airmon-ng + #ln -s /usr/local/sbin/airbase-ng /usr/sbin/airbase-ng + cd ../ + + echo "[aircrack-ng setup completed]" + +else + echo "--------------------------------" + echo "aircrack-ng already installed" + echo "--------------------------------" + echo +fi + +echo + +# BACK TO ROOT-INSTALL FOLDER +cd $root_path + +echo "--------------------------------" +echo "Installing Nginx" +echo "--------------------------------" + +# NGINX INSTALL +apt-get -y install nginx +#apt-get -y install nginx php5-fpm +echo + +# SSL +echo "--------------------------------" +echo "Create Nginx ssl certificate" +echo "--------------------------------" +cd $root_path +mkdir /etc/nginx/ssl +openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt + +# REMOVE DEFAULT SITE +rm /etc/nginx/sites-enabled/default + +# SETUP NGINX AND PHP5|PHP7 +cp nginx-setup/nginx.conf /etc/nginx/ + + +# INSTALL PHP GENERAL +apt-get -y install php-fpm php-curl php-cli php-xml + +cp nginx-setup/FruityWiFi /etc/nginx/sites-enabled/ +cp nginx-setup/fpm/8000.conf /etc/php/$php_version/fpm/pool.d/ +cp nginx-setup/fpm/8443.conf /etc/php/$php_version/fpm/pool.d/ + +# RESTART NGINX + PHP7-FPM +/etc/init.d/nginx restart +/etc/init.d/php$php_version-fpm restart + +echo "[nginx setup completed]" +echo + +DIR="/usr/share/fruitywifi" +if [ -d "$DIR" ]; then + echo "--------------------------------" + echo "BACKUP CORE AND MODULES" + echo "--------------------------------" + cmd=`date +"%Y-%m-%d-%H-%M-%S"` + mv $DIR fruitywifi.BAK.$cmd + echo +fi + +echo "--------------------------------" +echo "Setup FruityWiFi" +echo "--------------------------------" +cd $root_path +echo + +echo "--------------------------------" +echo "Config log path" +echo "--------------------------------" + +EXEC="s,^\$log_path=.*,\$log_path=\""$fruitywifi_log_path"\";,g" +sed -i "$EXEC" FruityWiFi/www/config/config.php +EXEC="s,^log-facility=.*,log-facility="$fruitywifi_log_path"/dnsmasq.log,g" +sed -i "$EXEC" FruityWiFi/conf/dnsmasq.conf +EXEC="s,^dhcp-leasefile=.*,dhcp-leasefile="$fruitywifi_log_path"/dhcp.leases,g" +sed -i "$EXEC" FruityWiFi/conf/dnsmasq.conf +EXEC="s,^Defaults:fruitywifi logfile =.*,Defaults:fruitywifi logfile = "$fruitywifi_log_path"/sudo.log,g" +sed -i "$EXEC" sudo-setup/fruitywifi + +echo "[logs setup completed]" +echo + +echo "--------------------------------" +echo "Setup Sudo" +echo "--------------------------------" +cd $root_path +cp -a sudo-setup/fruitywifi /etc/sudoers.d/ +chown root:root /etc/sudoers.d/fruitywifi + +echo "[sudo setup completed]" +echo + +#cmd=`lsb_release -c |grep -iEe "jessie|kali|sana"` +#if [[ ! -z $cmd ]] +#then +# echo "--------------------------------" +# echo "Setup DNSMASQ" +# echo "--------------------------------" + +# EXEC="s,^server=,#server=,g" +# sed -i $EXEC FruityWiFi/conf/dnsmasq.conf + +# echo "[dnsmasq setup completed]" +# echo + +#fi + +cp -a FruityWiFi /usr/share/fruitywifi +#mkdir $fruitywifi_log_path +ln -s $fruitywifi_log_path /usr/share/fruitywifi/www/logs + +echo + +# START/STOP SERVICES +if [[ $fruitywifi_init_defaults == "onboot" ]] +then + echo "--------------------------------" + echo "START SERVICES" + echo "--------------------------------" + + update-rc.d ssh defaults + update-rc.d nginx defaults + update-rc.d ntp defaults + + /etc/init.d/nginx restart + update-rc.d php$php_version-fpm defaults + /etc/init.d/php$php_version-fpm restart + +fi + +#apt-get -y remove ifplugd # *****RPI CONFLICT IF NOT REMOVED/UNINSTALLED?***** + +echo +echo "---------------------------" +echo "WEB-INTERFACE" +echo "---------------------------" +echo "http://localhost:8000 [http]" +echo "https://localhost:8443 [https]" +echo "user: admin" +echo "pass: admin" +echo +echo "GitHub: https://github.com/xtr4nge/FruityWifi" +echo "Twitter: @xtr4nge, @FruityWifi" +echo "ENJOY!" +echo "" From 62e83d23ae167cb4ec1bb85ac464e37930691273 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 11:54:01 +0100 Subject: [PATCH 138/151] Installer has been updated for Debian 10 Buster --- install-FruityWiFi-PHP5.sh | 256 -------------------------------- install-FruityWiFi-PHP7.sh | 294 ------------------------------------- 2 files changed, 550 deletions(-) delete mode 100755 install-FruityWiFi-PHP5.sh delete mode 100755 install-FruityWiFi-PHP7.sh diff --git a/install-FruityWiFi-PHP5.sh b/install-FruityWiFi-PHP5.sh deleted file mode 100755 index 6caaf51..0000000 --- a/install-FruityWiFi-PHP5.sh +++ /dev/null @@ -1,256 +0,0 @@ -#!/bin/bash - -# CONFIG -# -------------------------------------------------------- -# Setup 'sudo' or 'danger' (root exec). -# -------------------------------------------------------- -fruitywifi_exec_mode="sudo" -# -------------------------------------------------------- -# Setup log path. default=/usr/share/fruitywifi/logs -# -------------------------------------------------------- -fruitywifi_log_path="/usr/share/fruitywifi/logs" -# -------------------------------------------------------- -# 'all' option installs nginx webserver on ports 80 | 443, -# and it also installs FruityWifi on ports 8000 | 8443. -# If 'all' is not specified then only installs 8000 | 8443 -# -------------------------------------------------------- -fruitywifi_webserver="all" -# -------------------------------------------------------- - -find FruityWifi -type d -exec chmod 755 {} \; -find FruityWifi -type f -exec chmod 644 {} \; - -root_path=`pwd` - -mkdir tmp-install -cd tmp-install - -apt-get update - -echo "--------------------------------" -echo "Creates user fruitywifi" -echo "--------------------------------" -adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-create-home --gecos "FruityWifi" --group fruitywifi -usermod -a -G inet fruitywifi - -echo "[fruitywifi user has been created]" -echo - -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev php5-curl php5-cli dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git - -pip install netifaces - -cmd=`gcc --version|grep "4.7"` -if [[ $cmd == "" ]] -then - echo "--------------------------------" - echo "Installing gcc 4.7" - echo "--------------------------------" - - apt-get -y install gcc-4.7 - apt-get -y install g++-4.7 - update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 - - echo "[gcc setup completed]" - -else - echo "--------------------------------" - echo "gcc 4.7 already installed" - echo "--------------------------------" - echo -fi - -echo - -if [ ! -f "/usr/sbin/dnsmasq" ] -then - echo "--------------------------------" - echo "Installing dnsmasq" - echo "--------------------------------" - - # INSTALL DNSMASQ - apt-get -y install dnsmasq - - echo "[dnsmasq setup completed]" - -else - echo "--------------------------------" - echo "dnsmasq already installed" - echo "--------------------------------" - echo -fi - -echo - -if [ ! -f "/usr/sbin/hostapd" ] -then - echo "--------------------------------" - echo "Installing hostapd" - echo "--------------------------------" - - # INSTALL HOSTAPD - apt-get -y install hostapd - - echo "[hostapd setup completed]" - -else - echo "--------------------------------" - echo "hostapd already installed" - echo "--------------------------------" - echo -fi - -echo - -if [ ! -f "/usr/sbin/airmon-ng" ] && [ ! -f "/usr/local/sbin/airmon-ng" ] -then - echo "--------------------------------" - echo "Installing aircrack-ng" - echo "--------------------------------" - - # INSTALL AIRCRACK-NG - apt-get -y install libssl-dev wireless-tools iw - wget http://download.aircrack-ng.org/aircrack-ng-1.2-beta1.tar.gz - tar -zxvf aircrack-ng-1.2-beta1.tar.gz - cd aircrack-ng-1.2-beta1 - make - make install - ln -s /usr/local/sbin/airmon-ng /usr/sbin/airmon-ng - ln -s /usr/local/sbin/airbase-ng /usr/sbin/airbase-ng - cd ../ - - echo "[aircrack-ng setup completed]" - -else - echo "--------------------------------" - echo "aircrack-ng already installed" - echo "--------------------------------" - echo -fi - -echo - -# BACK TO ROOT-INSTALL FOLDER -cd $root_path - -echo "--------------------------------" -echo "Installing Nginx" -echo "--------------------------------" - -# NGINX INSTALL -apt-get -y install nginx php5-fpm -echo - -# SSL -echo "--------------------------------" -echo "Create Nginx ssl certificate" -echo "--------------------------------" -cd $root_path -mkdir /etc/nginx/ssl -openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt - -rm /etc/nginx/sites-enabled/default - -cp nginx-setup/nginx.conf /etc/nginx/ -cp nginx-setup/FruityWifi /etc/nginx/sites-enabled/ -cp nginx-setup/fpm/8000.conf /etc/php5/fpm/pool.d/ -cp nginx-setup/fpm/8443.conf /etc/php5/fpm/pool.d/ - -if [ $fruitywifi_webserver == "all" ] -then - mkdir /var/www/ - echo "." >> /var/www/index.php - chown -R fruitywifi:fruitywifi /var/www/ - #cp nginx-setup/default /etc/nginx/sites-enabled/ - cp nginx-setup/fpm/80.conf /etc/php5/fpm/pool.d/ - cp nginx-setup/fpm/443.conf /etc/php5/fpm/pool.d/ -fi - -# RESTAR NGINX + PHP5-FPM -/etc/init.d/nginx restart -/etc/init.d/php5-fpm restart - -echo "[nginx setup completed]" -echo - -echo "--------------------------------" -echo "BACKUP" -echo "--------------------------------" -cmd=`date +"%Y-%m-%d-%H-%M-%S"` -mv /usr/share/fruitywifi fruitywifi.BAK.$cmd -echo - -echo "--------------------------------" -echo "Setup FruityWifi" -echo "--------------------------------" -cd $root_path - -echo "--------------------------------" -echo "Config log path" -echo "--------------------------------" - -mkdir $fruitywifi_log_path -EXEC="s,^\$log_path=.*,\$log_path=\""$fruitywifi_log_path"\";,g" -sed -i "$EXEC" FruityWifi/www/config/config.php -EXEC="s,^log-facility=.*,log-facility="$fruitywifi_log_path"/dnsmasq.log,g" -sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf -EXEC="s,^dhcp-leasefile=.*,dhcp-leasefile="$fruitywifi_log_path"/dhcp.leases,g" -sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf -EXEC="s,^Defaults:fruitywifi logfile =.*,Defaults:fruitywifi logfile = "$fruitywifi_log_path"/sudo.log,g" -sed -i "$EXEC" sudo-setup/fruitywifi - -echo "[logs setup completed]" -echo - -echo "--------------------------------" -echo "Setup Sudo" -echo "--------------------------------" -cd $root_path -cp -a sudo-setup/fruitywifi /etc/sudoers.d/ -chown root:root /etc/sudoers.d/fruitywifi - -echo "[sudo setup completed]" -echo - -cmd=`lsb_release -c |grep -iEe "jessie|kali|sana"` -if [[ ! -z $cmd ]] -then - echo "--------------------------------" - echo "Setup DNSMASQ" - echo "--------------------------------" - - EXEC="s,^server=,#server=,g" - sed -i $EXEC FruityWifi/conf/dnsmasq.conf - - echo "[dnsmasq setup completed]" - echo - -fi - -cp -a FruityWifi /usr/share/fruitywifi -ln -s $fruitywifi_log_path /usr/share/fruitywifi/www/logs -ln -s /usr/share/fruitywifi/ /usr/share/FruityWifi - -echo - -# START/STOP SERVICES -echo "--------------------------------" -echo "Start Services" -echo "--------------------------------" -update-rc.d ssh defaults -update-rc.d nginx defaults -update-rc.d php5-fpm defaults -update-rc.d ntp defaults - -/etc/init.d/nginx restart -/etc/init.d/php5-fpm restart - - -apt-get -y remove ifplugd - -echo - -echo "GitHub: https://github.com/xtr4nge/FruityWifi" -echo "Twitter: @xtr4nge, @FruityWifi" -echo "ENJOY!" -echo "" diff --git a/install-FruityWiFi-PHP7.sh b/install-FruityWiFi-PHP7.sh deleted file mode 100755 index 427a1e2..0000000 --- a/install-FruityWiFi-PHP7.sh +++ /dev/null @@ -1,294 +0,0 @@ -#!/bin/bash - -# CONFIG -version="2.4.1" -# -------------------------------------------------------- -# Setup PHP version -> options: PHP5 | PHP7 -# The chosen version needs to be in the repository -# -------------------------------------------------------- -fruitywifi_php_version="PHP7" -# -------------------------------------------------------- -# Setup log path. default=/usr/share/fruitywifi/logs -# -------------------------------------------------------- -fruitywifi_log_path="/usr/share/fruitywifi/logs" -# -------------------------------------------------------- -# -------------------------------------------------------- -# FruityWiFi set defaults [init.d] -# -------------------------------------------------------- -fruitywifi_init_defaults="onboot" -# -------------------------------------------------------- - -if [[ $EUID -ne 0 ]] - then echo "Please run as root" - exit -fi - -find FruityWifi -type d -exec chmod 755 {} \; -find FruityWifi -type f -exec chmod 644 {} \; - -root_path=`pwd` - -mkdir tmp-install -cd tmp-install - -apt-get update - -echo "--------------------------------" -echo "Creates user fruitywifi" -echo "--------------------------------" -adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-create-home --gecos "FruityWiFi" --group fruitywifi -usermod -a -G inet fruitywifi - -echo "[fruitywifi user has been created]" -echo - -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git aircrack-ng net-tools pkg-config - -pip install netifaces - -cmd=`gcc --version|grep "4.7"` -if [[ $cmd == "" ]] -then - echo "--------------------------------" - echo "Installing gcc 4.7" - echo "--------------------------------" - - apt-get -y install gcc-4.7 - apt-get -y install g++-4.7 - update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 - - echo "[gcc setup completed]" - -else - echo "--------------------------------" - echo "gcc 4.7 already installed" - echo "--------------------------------" - echo -fi - -echo - -if [ ! -f "/usr/sbin/dnsmasq" ] -then - echo "--------------------------------" - echo "Installing dnsmasq" - echo "--------------------------------" - - # INSTALL DNSMASQ - apt-get -y install dnsmasq - - echo "[dnsmasq setup completed]" - -else - echo "--------------------------------" - echo "dnsmasq already installed" - echo "--------------------------------" - echo -fi - -echo - -if [ ! -f "/usr/sbin/hostapd" ] -then - echo "--------------------------------" - echo "Installing hostapd" - echo "--------------------------------" - - # INSTALL HOSTAPD - apt-get -y install hostapd - - echo "[hostapd setup completed]" - -else - echo "--------------------------------" - echo "hostapd already installed" - echo "--------------------------------" - echo -fi - -echo - -if [ ! -f "/usr/sbin/airmon-ng" ] && [ ! -f "/usr/local/sbin/airmon-ng" ] -then - echo "--------------------------------" - echo "Installing aircrack-ng" - echo "--------------------------------" - - # INSTALL AIRCRACK-NG - apt-get -y install libssl-dev wireless-tools iw - #VERSION="aircrack-ng-1.2-beta1" # [OLD_VERSION] - VERSION="aircrack-ng-1.2-rc4" - wget http://download.aircrack-ng.org/$VERSION.tar.gz - tar -zxvf $VERSION.tar.gz - cd $VERSION - make - make install - ln -s /usr/local/sbin/airmon-ng /usr/sbin/airmon-ng - ln -s /usr/local/sbin/airbase-ng /usr/sbin/airbase-ng - cd ../ - - echo "[aircrack-ng setup completed]" - -else - echo "--------------------------------" - echo "aircrack-ng already installed" - echo "--------------------------------" - echo -fi - -echo - -# BACK TO ROOT-INSTALL FOLDER -cd $root_path - -echo "--------------------------------" -echo "Installing Nginx" -echo "--------------------------------" - -# NGINX INSTALL -apt-get -y install nginx -#apt-get -y install nginx php5-fpm -echo - -# SSL -echo "--------------------------------" -echo "Create Nginx ssl certificate" -echo "--------------------------------" -cd $root_path -mkdir /etc/nginx/ssl -openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt - -# REMOVE DEFAULT SITE -rm /etc/nginx/sites-enabled/default - -# SETUP NGINX AND PHP5|PHP7 -cp nginx-setup/nginx.conf /etc/nginx/ - -if [[ $fruitywifi_php_version == "PHP7" ]] -then - # INSTALL PHP7 - apt-get -y install php7.?-fpm php7.?-curl php7.?-cli php7.?-xml - - cp nginx-setup/FruityWiFi-PHP7 /etc/nginx/sites-enabled/ - cp nginx-setup/fpm-PHP7/8000.conf /etc/php/7.?/fpm/pool.d/ - cp nginx-setup/fpm-PHP7/8443.conf /etc/php/7.?/fpm/pool.d/ - - # RESTART NGINX + PHP7-FPM - /etc/init.d/nginx restart - /etc/init.d/php7.?-fpm restart -else - # INSTALL PHP5 - apt-get -y install php5-fpm php5-curl php5-cli - - cp nginx-setup/FruityWifi /etc/nginx/sites-enabled/ - cp nginx-setup/fpm/8000.conf /etc/php5/fpm/pool.d/ - cp nginx-setup/fpm/8443.conf /etc/php5/fpm/pool.d/ - - # RESTART NGINX + PHP5-FPM - /etc/init.d/nginx restart - /etc/init.d/php5-fpm restart -fi - -echo "[nginx setup completed]" -echo - -DIR="/usr/share/fruitywifi" -if [ -d "$DIR" ]; then - echo "--------------------------------" - echo "BACKUP CORE AND MODULES" - echo "--------------------------------" - cmd=`date +"%Y-%m-%d-%H-%M-%S"` - mv $DIR fruitywifi.BAK.$cmd - echo -fi - -echo "--------------------------------" -echo "Setup FruityWiFi" -echo "--------------------------------" -cd $root_path -echo - -echo "--------------------------------" -echo "Config log path" -echo "--------------------------------" - -EXEC="s,^\$log_path=.*,\$log_path=\""$fruitywifi_log_path"\";,g" -sed -i "$EXEC" FruityWifi/www/config/config.php -EXEC="s,^log-facility=.*,log-facility="$fruitywifi_log_path"/dnsmasq.log,g" -sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf -EXEC="s,^dhcp-leasefile=.*,dhcp-leasefile="$fruitywifi_log_path"/dhcp.leases,g" -sed -i "$EXEC" FruityWifi/conf/dnsmasq.conf -EXEC="s,^Defaults:fruitywifi logfile =.*,Defaults:fruitywifi logfile = "$fruitywifi_log_path"/sudo.log,g" -sed -i "$EXEC" sudo-setup/fruitywifi - -echo "[logs setup completed]" -echo - -echo "--------------------------------" -echo "Setup Sudo" -echo "--------------------------------" -cd $root_path -cp -a sudo-setup/fruitywifi /etc/sudoers.d/ -chown root:root /etc/sudoers.d/fruitywifi - -echo "[sudo setup completed]" -echo - -cmd=`lsb_release -c |grep -iEe "jessie|kali|sana"` -if [[ ! -z $cmd ]] -then - echo "--------------------------------" - echo "Setup DNSMASQ" - echo "--------------------------------" - - EXEC="s,^server=,#server=,g" - sed -i $EXEC FruityWifi/conf/dnsmasq.conf - - echo "[dnsmasq setup completed]" - echo - -fi - -cp -a FruityWifi /usr/share/fruitywifi -#mkdir $fruitywifi_log_path -ln -s $fruitywifi_log_path /usr/share/fruitywifi/www/logs - -echo - -# START/STOP SERVICES -if [[ $fruitywifi_init_defaults == "onboot" ]] -then - echo "--------------------------------" - echo "START SERVICES" - echo "--------------------------------" - - update-rc.d ssh defaults - update-rc.d nginx defaults - update-rc.d ntp defaults - - /etc/init.d/nginx restart - if [[ $fruitywifi_php_version == "PHP7" ]] - then - update-rc.d php7.?-fpm defaults - /etc/init.d/php7.?-fpm restart - else - update-rc.d php5-fpm defaults - /etc/init.d/php5-fpm restart - fi -fi - -apt-get -y remove ifplugd - -echo -echo "---------------------------" -echo "WEB-INTERFACE" -echo "---------------------------" -echo "http://localhost:8000 [http]" -echo "https://localhost:8443 [https]" -echo "user: admin" -echo "pass: admin" -echo -echo "GitHub: https://github.com/xtr4nge/FruityWifi" -echo "Twitter: @xtr4nge, @FruityWifi" -echo "ENJOY!" -echo "" From b195930731d8facb4f0f66f20360fa217398db37 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 11:57:50 +0100 Subject: [PATCH 139/151] Installer has been updated for Debian 10 Buster --- nginx-setup/{FruityWifi => FruityWiFi} | 0 nginx-setup/FruityWiFi-PHP7 | 52 -------------------------- nginx-setup/fpm-PHP7/443.conf | 22 ----------- nginx-setup/fpm-PHP7/80.conf | 22 ----------- nginx-setup/fpm-PHP7/8000.conf | 22 ----------- nginx-setup/fpm-PHP7/8443.conf | 22 ----------- nginx-setup/fpm/443.conf | 3 +- nginx-setup/fpm/80.conf | 3 +- nginx-setup/fpm/8000.conf | 4 +- nginx-setup/fpm/8443.conf | 4 +- nginx-setup/nginx.conf | 13 ++++++- 11 files changed, 21 insertions(+), 146 deletions(-) rename nginx-setup/{FruityWifi => FruityWiFi} (100%) delete mode 100644 nginx-setup/FruityWiFi-PHP7 delete mode 100644 nginx-setup/fpm-PHP7/443.conf delete mode 100644 nginx-setup/fpm-PHP7/80.conf delete mode 100644 nginx-setup/fpm-PHP7/8000.conf delete mode 100644 nginx-setup/fpm-PHP7/8443.conf diff --git a/nginx-setup/FruityWifi b/nginx-setup/FruityWiFi similarity index 100% rename from nginx-setup/FruityWifi rename to nginx-setup/FruityWiFi diff --git a/nginx-setup/FruityWiFi-PHP7 b/nginx-setup/FruityWiFi-PHP7 deleted file mode 100644 index bc3e415..0000000 --- a/nginx-setup/FruityWiFi-PHP7 +++ /dev/null @@ -1,52 +0,0 @@ - -server { - listen 8000 default_server; - - root /usr/share/fruitywifi/www; - index index.php index.html index.htm; - - #server_name localhost; - - location ~ \.php$ { - try_files $uri =404; - #fastcgi_pass unix:/var/run/php5-fpm-8000.sock; - fastcgi_pass unix:/var/run/php/php7-fpm-8000.sock; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - } - - location / { - try_files $uri $uri/ =404; - } -} - -server { - - listen 8443 ssl; - - root /usr/share/fruitywifi/www; - index index.php index.html index.htm; - - #server_name localhost; - - ssl_certificate /etc/nginx/ssl/nginx.crt; - ssl_certificate_key /etc/nginx/ssl/nginx.key; - - - location ~ \.php$ { - try_files $uri =404; - #fastcgi_pass unix:/var/run/php5-fpm-8443.sock; - fastcgi_pass unix:/var/run/php/php7-fpm-8443.sock; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - } - - #access_log /var/log/nginx/access.log combined; - #error_log /var/log/nginx/error.log warn; - - location / { - try_files $uri $uri/ =404; - } -} diff --git a/nginx-setup/fpm-PHP7/443.conf b/nginx-setup/fpm-PHP7/443.conf deleted file mode 100644 index 30161d2..0000000 --- a/nginx-setup/fpm-PHP7/443.conf +++ /dev/null @@ -1,22 +0,0 @@ -[www-443] - -user = fruitywifi -group = fruitywifi - -;listen = /var/run/php5-fpm-443.sock -listen = /var/run/php/php7-fpm-443.sock - -listen.owner = fruitywifi -listen.group = fruitywifi - -pm = dynamic -pm.max_children = 5 -pm.start_servers = 2 -pm.min_spare_servers = 1 -pm.max_spare_servers = 3 - -chdir = / - -php_value[short_open_tag] = On -php_value[error_reporting] = E_ALL ^ E_NOTICE -php_admin_flag[opcache.enable] = off diff --git a/nginx-setup/fpm-PHP7/80.conf b/nginx-setup/fpm-PHP7/80.conf deleted file mode 100644 index ffabd0a..0000000 --- a/nginx-setup/fpm-PHP7/80.conf +++ /dev/null @@ -1,22 +0,0 @@ -[www-80] - -user = fruitywifi -group = fruitywifi - -;listen = /var/run/php5-fpm-80.sock -listen = /var/run/php/php7-fpm-80.sock - -listen.owner = fruitywifi -listen.group = fruitywifi - -pm = dynamic -pm.max_children = 5 -pm.start_servers = 2 -pm.min_spare_servers = 1 -pm.max_spare_servers = 3 - -chdir = / - -php_value[short_open_tag] = On -php_value[error_reporting] = E_ALL ^ E_NOTICE -php_admin_flag[opcache.enable] = off diff --git a/nginx-setup/fpm-PHP7/8000.conf b/nginx-setup/fpm-PHP7/8000.conf deleted file mode 100644 index bcd9059..0000000 --- a/nginx-setup/fpm-PHP7/8000.conf +++ /dev/null @@ -1,22 +0,0 @@ -[www-8000] - -user = fruitywifi -group = fruitywifi - -;listen = /var/run/php5-fpm-8000.sock -listen = /var/run/php/php7-fpm-8000.sock - -listen.owner = fruitywifi -listen.group = fruitywifi - -pm = dynamic -pm.max_children = 5 -pm.start_servers = 2 -pm.min_spare_servers = 1 -pm.max_spare_servers = 3 - -chdir = / - -php_value[short_open_tag] = On -php_value[error_reporting] = E_ALL ^ E_NOTICE -php_admin_flag[opcache.enable] = off diff --git a/nginx-setup/fpm-PHP7/8443.conf b/nginx-setup/fpm-PHP7/8443.conf deleted file mode 100644 index 3c2bf28..0000000 --- a/nginx-setup/fpm-PHP7/8443.conf +++ /dev/null @@ -1,22 +0,0 @@ -[www-8443] - -user = fruitywifi -group = fruitywifi - -;listen = /var/run/php5-fpm-8443.sock -listen = /var/run/php/php7-fpm-8443.sock - -listen.owner = fruitywifi -listen.group = fruitywifi - -pm = dynamic -pm.max_children = 5 -pm.start_servers = 2 -pm.min_spare_servers = 1 -pm.max_spare_servers = 3 - -chdir = / - -php_value[short_open_tag] = On -php_value[error_reporting] = E_ALL ^ E_NOTICE -php_admin_flag[opcache.enable] = off diff --git a/nginx-setup/fpm/443.conf b/nginx-setup/fpm/443.conf index c497756..53e4a24 100644 --- a/nginx-setup/fpm/443.conf +++ b/nginx-setup/fpm/443.conf @@ -3,7 +3,8 @@ user = fruitywifi group = fruitywifi -listen = /var/run/php5-fpm-443.sock +;listen = /var/run/php/php7.3-fpm-443.sock +listen = /var/run/php/fruitywifi-443.sock listen.owner = fruitywifi listen.group = fruitywifi diff --git a/nginx-setup/fpm/80.conf b/nginx-setup/fpm/80.conf index 9697c6b..20cd9c3 100644 --- a/nginx-setup/fpm/80.conf +++ b/nginx-setup/fpm/80.conf @@ -3,7 +3,8 @@ user = fruitywifi group = fruitywifi -listen = /var/run/php5-fpm-80.sock +;listen = /var/run/php/php7.3-fpm-80.sock +listen = /var/run/php/fruitywifi-80.sock listen.owner = fruitywifi listen.group = fruitywifi diff --git a/nginx-setup/fpm/8000.conf b/nginx-setup/fpm/8000.conf index af410f4..ab1cee6 100644 --- a/nginx-setup/fpm/8000.conf +++ b/nginx-setup/fpm/8000.conf @@ -3,7 +3,9 @@ user = fruitywifi group = fruitywifi -listen = /var/run/php5-fpm-8000.sock +;listen = /var/run/php/php7-fpm-8000.sock +;listen = /var/run/php/fruitywifi-8000.sock +listen = /var/run/fruitywifi-8000.sock listen.owner = fruitywifi listen.group = fruitywifi diff --git a/nginx-setup/fpm/8443.conf b/nginx-setup/fpm/8443.conf index 3e7799a..55e423f 100644 --- a/nginx-setup/fpm/8443.conf +++ b/nginx-setup/fpm/8443.conf @@ -3,7 +3,9 @@ user = fruitywifi group = fruitywifi -listen = /var/run/php5-fpm-8443.sock +;listen = /var/run/php/php7-fpm-8443.sock +;listen = /var/run/php/fruitywifi-8443.sock +listen = /var/run/fruitywifi-8443.sock listen.owner = fruitywifi listen.group = fruitywifi diff --git a/nginx-setup/nginx.conf b/nginx-setup/nginx.conf index 438c7c0..c754b72 100644 --- a/nginx-setup/nginx.conf +++ b/nginx-setup/nginx.conf @@ -1,6 +1,8 @@ user fruitywifi; -worker_processes 4; +worker_processes auto; +#worker_processes 4; pid /var/run/nginx.pid; +include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; @@ -26,6 +28,13 @@ http { include /etc/nginx/mime.types; default_type application/octet-stream; + ## + # SSL Settings + ## + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE + ssl_prefer_server_ciphers on; + ## # Logging Settings ## @@ -38,7 +47,7 @@ http { ## gzip on; - gzip_disable "msie6"; + #gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; From 20d37218f746b17d18165114692306d475dabc00 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 11:58:38 +0100 Subject: [PATCH 140/151] Installer has been updated for Debian 10 Buster --- nginx-setup/FruityWiFi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nginx-setup/FruityWiFi b/nginx-setup/FruityWiFi index 0ae1d11..9e54f52 100644 --- a/nginx-setup/FruityWiFi +++ b/nginx-setup/FruityWiFi @@ -9,7 +9,7 @@ server { location ~ \.php$ { try_files $uri =404; - fastcgi_pass unix:/var/run/php5-fpm-8000.sock; + fastcgi_pass unix:/var/run/fruitywifi-8000.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; @@ -35,7 +35,7 @@ server { location ~ \.php$ { try_files $uri =404; - fastcgi_pass unix:/var/run/php5-fpm-8443.sock; + fastcgi_pass unix:/var/run/fruitywifi-8443.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; From def6229a2f60bfc9a7af8c7a8663549428089785 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 12:00:55 +0100 Subject: [PATCH 141/151] Installer has been updated for Debian 10 Buster --- nginx-setup/default | 46 --------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 nginx-setup/default diff --git a/nginx-setup/default b/nginx-setup/default deleted file mode 100644 index eafc58e..0000000 --- a/nginx-setup/default +++ /dev/null @@ -1,46 +0,0 @@ - -server { - listen 80 default_server; - - root /var/www; - index index.php index.html index.htm; - - #server_name localhost; - - location ~ \.php$ { - try_files $uri =404; - fastcgi_pass unix:/var/run/php5-fpm-80.sock; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - } - - location / { - try_files $uri $uri/ =404; - } -} - -server { - - listen 443 ssl; - - root /var/www; - index index.php index.html index.htm; - - #server_name localhost; - - ssl_certificate /etc/nginx/ssl/nginx.crt; - ssl_certificate_key /etc/nginx/ssl/nginx.key; - - location ~ \.php$ { - try_files $uri =404; - fastcgi_pass unix:/var/run/php5-fpm-443.sock; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - } - - location / { - try_files $uri $uri/ =404; - } -} From f23c6e2af6a317a6bdc7629d8a0fba0497e5a964 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 12:02:15 +0100 Subject: [PATCH 142/151] Installer has been updated for Debian 10 Buster --- FruityWiFi/conf/hostapd-secure.conf | 4 ++-- FruityWiFi/conf/hostapd.conf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FruityWiFi/conf/hostapd-secure.conf b/FruityWiFi/conf/hostapd-secure.conf index 18c25f1..3e5f41a 100644 --- a/FruityWiFi/conf/hostapd-secure.conf +++ b/FruityWiFi/conf/hostapd-secure.conf @@ -51,7 +51,7 @@ interface=wlan0 disassoc_low_ack=1 auth_algs=1 #wpa=0 -ssid=FruityWifi +ssid=FruityWiFi #bridge=br-lan wmm_enabled=1 bssid=00:00:00:00:00:00 @@ -62,7 +62,7 @@ macaddr_acl=0 auth_algs=1 #ignore_broadcast_ssid=0 wpa=2 -wpa_passphrase=RaspberryWifi +wpa_passphrase=FruityWiFi wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP diff --git a/FruityWiFi/conf/hostapd.conf b/FruityWiFi/conf/hostapd.conf index 50efcf7..9535295 100644 --- a/FruityWiFi/conf/hostapd.conf +++ b/FruityWiFi/conf/hostapd.conf @@ -51,7 +51,7 @@ interface=wlan0 disassoc_low_ack=1 auth_algs=1 wpa=0 -ssid=FruityWifi +ssid=FruityWiFi #bridge=br-lan wmm_enabled=1 bssid=00:00:00:00:00:00 From 615dae30a783c7e4c964c12cd1a4f8b4e020992d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 12:26:23 +0100 Subject: [PATCH 143/151] Update README.md --- README.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b265344..7a65f5a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # FruityWiFi ###### Wireless network auditing tool http://www.fruitywifi.com/ -## Important Note (Debian Stretch): -Use **Debian Jessie** based systems until I can update dependencies for Debian Stretch. +## Important Note (Debian Buster): +Please use Use **Debian Buster** based systems. The Installer has been updated for resolving issues with old version.

FruityWifi is an open source tool to audit wireless networks. It allows the user to deploy advanced attacks by directly using the web interface or by sending messages to it. @@ -29,15 +29,14 @@ Within the available modules you can find URLsnarf, DNSspoof, Kismet, mdk3, ngre Using the installation script all the required dependencies, scripts and setup can be installed. -On **Jessie** based systems use: install-FruityWifi-**PHP5**.sh -
On **Stretch** based systems use: install-FruityWifi-**PHP7**.sh +On **Buster** based systems use: install-FruityWiFi.sh

### x86/x64 Version - You need Debian (or based) installed (or a Live CD version) to use this script. - Download the zip file from https://github.com/xtr4nge/FruityWifi/archive/master.zip -- Unzip the file and run **install-FruityWifi-{PHPVersion}.sh** (This script will install all the dependencies and setups) +- Unzip the file and run **install-FruityWiFi.sh** (This script will install all the dependencies and setups) - Done. Go to **http://localhost:8000** (for http)
@@ -48,7 +47,10 @@ pass: admin

### Kali Linux Version -FruityWifi is now part of Kali Linux repositories. + +**Note**: The Kali Linux version has not been updated in long time. I will try to work on this as soon as I can. For the moment use the GitHub installer for avoiding issues. + +FruityWiFi is now part of Kali Linux repositories. - `apt-get install fruitywifi` - `/etc/init.d/fruitywifi start` - `/etc/init.d/php5-fpm start` @@ -65,9 +67,11 @@ Note: installing `fruitywifi` will install all modules. If you want to install o ### ARM version (Raspberry Pi) +**Note**: The new installer has not been tested on Raspberry yet. I will try to work on this as soon as I can. + - You need a Raspbian, Pwnpi or Kali Linux version to use this script. - Download the zip file from https://github.com/xtr4nge/FruityWifi/archive/master.zip -- Unzip the file and run **install-FruityWifi-{PHPVersion}.sh** (This script will install all the dependencies and setups) +- Unzip the file and run **install-FruityWiFi.sh** (This script will install all the dependencies and setups) - Done. Go to **http://localhost:8000** (for http)
From 91143e19e2d56ffa7fb8778874fe9aaa9e4f116b Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 12:27:16 +0100 Subject: [PATCH 144/151] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a65f5a..a0f8c2b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Please use Use **Debian Buster** based systems. The Installer has been updated for resolving issues with old version.

-FruityWifi is an open source tool to audit wireless networks. It allows the user to deploy advanced attacks by directly using the web interface or by sending messages to it. +FruityWiFi is an open source tool to audit wireless networks. It allows the user to deploy advanced attacks by directly using the web interface or by sending messages to it. Initialy the application was created to be used with the Raspberry-Pi, but it can be installed on any Debian based system. From 8b9381282affe19c752b611bb04706f3bbc10882 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Fri, 2 Aug 2019 14:37:31 +0100 Subject: [PATCH 145/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 3fa7a24..eb4e39d 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -34,7 +34,7 @@
mana - 1.6 + 1.7 @xtr4nge mana interface module_mana From 4ef8d8a22878a398a1b3a0ffdd5ed7967226d97c Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 21 Sep 2019 09:57:18 +0100 Subject: [PATCH 146/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index eb4e39d..5784f41 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -202,11 +202,11 @@ autostart - 1.3 + 1.4 @xtr4nge Autostart interface module_autostart - 2.1 + 2.4 rpitwit From b0126ea3bb990e2e9792fd024d90a2ad8cf9818e Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Mon, 10 Feb 2020 10:58:57 +0000 Subject: [PATCH 147/151] Update modules-FruityWifi.xml --- modules-FruityWifi.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules-FruityWifi.xml b/modules-FruityWifi.xml index 5784f41..3cfcd47 100644 --- a/modules-FruityWifi.xml +++ b/modules-FruityWifi.xml @@ -194,7 +194,7 @@ responder - 1.5 + 1.6 @xtr4nge Responder interface module_responder From 52948d11543d5c2de9a438510ad0da9018444657 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 18 Dec 2021 12:35:25 +0000 Subject: [PATCH 148/151] Installer has been updated for Debian 11 Bullseye --- install-FruityWiFi.sh | 83 ++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 52 deletions(-) diff --git a/install-FruityWiFi.sh b/install-FruityWiFi.sh index 62e4484..221dcf2 100755 --- a/install-FruityWiFi.sh +++ b/install-FruityWiFi.sh @@ -1,13 +1,13 @@ #!/bin/bash # CONFIG -version="2.4.2" +version="2.4.3" # -------------------------------------------------------- # Setup PHP version -> options: PHP5 | PHP7 # The chosen version needs to be in the repository # -------------------------------------------------------- #fruitywifi_php_version="PHP7" -php_version="7.3" +php_version="7.4" # -------------------------------------------------------- # Setup log path. default=/usr/share/fruitywifi/logs # -------------------------------------------------------- @@ -33,35 +33,17 @@ echo "--------------------------------" echo "Creates user fruitywifi" echo "--------------------------------" adduser --disabled-password --quiet --system --home /var/run/fruitywifi --no-create-home --gecos "FruityWiFi" --group fruitywifi -usermod -a -G inet fruitywifi # *****ERROR?!***** +#usermod -a -G inet fruitywifi # *****ERROR?!***** REPLACED? REMOVED? COMMENT? echo "[fruitywifi user has been created]" echo -apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release python-scapy tcpdump python-netifaces python-pip git ntp +apt-get -y install gettext make intltool build-essential automake autoconf uuid uuid-dev dos2unix curl sudo unzip lsb-release tcpdump +apt-get -y install python3-netifaces python3-pip python3-scapy +apt-get -y install git ntp pip install netifaces -#cmd=`gcc --version|grep "4.7"` -#if [[ $cmd == "" ]] -#then -# echo "--------------------------------" -# echo "Installing gcc 4.7" -# echo "--------------------------------" - -# apt-get -y install gcc-4.7 -# apt-get -y install g++-4.7 -# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 - -# echo "[gcc setup completed]" - -#else -# echo "--------------------------------" -# echo "gcc 4.7 already installed" -# echo "--------------------------------" -# echo -#fi - echo if [ ! -f "/usr/sbin/dnsmasq" ] @@ -114,19 +96,19 @@ then apt-get -y install libssl-dev wireless-tools iw # DEPENDENCIES FROM AIRCRACK INSTALLER apt-get -y install build-essential autoconf automake libtool pkg-config libnl-3-dev libnl-genl-3-dev libssl-dev ethtool shtool rfkill zlib1g-dev libpcap-dev libsqlite3-dev libpcre3-dev libhwloc-dev libcmocka-dev - #VERSION="aircrack-ng-1.2-beta1" # [OLD_VERSION] - #VERSION="aircrack-ng-1.2-rc4" - VERSION="aircrack-ng-1.5.2" - wget http://download.aircrack-ng.org/$VERSION.tar.gz - tar -zxvf $VERSION.tar.gz - cd $VERSION - autoreconf -i - ./configure - make - make install - ldconfig - #ln -s /usr/local/sbin/airmon-ng /usr/sbin/airmon-ng - #ln -s /usr/local/sbin/airbase-ng /usr/sbin/airbase-ng + apt-get -y install aircrack-ng + + #VERSION="aircrack-ng-1.6" + #wget http://download.aircrack-ng.org/$VERSION.tar.gz + #tar -zxvf $VERSION.tar.gz + #cd $VERSION + #autoreconf -i + #./configure + #make + #make install + #ldconfig + ##ln -s /usr/local/sbin/airmon-ng /usr/sbin/airmon-ng + ##ln -s /usr/local/sbin/airbase-ng /usr/sbin/airbase-ng cd ../ echo "[aircrack-ng setup completed]" @@ -149,7 +131,6 @@ echo "--------------------------------" # NGINX INSTALL apt-get -y install nginx -#apt-get -y install nginx php5-fpm echo # SSL @@ -223,20 +204,6 @@ chown root:root /etc/sudoers.d/fruitywifi echo "[sudo setup completed]" echo -#cmd=`lsb_release -c |grep -iEe "jessie|kali|sana"` -#if [[ ! -z $cmd ]] -#then -# echo "--------------------------------" -# echo "Setup DNSMASQ" -# echo "--------------------------------" - -# EXEC="s,^server=,#server=,g" -# sed -i $EXEC FruityWiFi/conf/dnsmasq.conf - -# echo "[dnsmasq setup completed]" -# echo - -#fi cp -a FruityWiFi /usr/share/fruitywifi #mkdir $fruitywifi_log_path @@ -261,6 +228,18 @@ then fi +# WORKAROUNDs +ln -s /usr/sbin/ifconfig /usr/bin/ifconfig +#ln -s /usr/bin/python3 /usr/bin/python + +# REPLACE IFACE TO ETHx WLANx +#sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"/g' /etc/default/grub +#grub-mkconfig -o /boot/grub/grub.cfg + +# Monitor Mode [rt2800usb] +# https://wiki.debian.org/rt2800usb + + #apt-get -y remove ifplugd # *****RPI CONFLICT IF NOT REMOVED/UNINSTALLED?***** echo From 6139752e62fd0d793b57aea972c7cd4bbb965a13 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 18 Dec 2021 12:37:15 +0000 Subject: [PATCH 149/151] Installer has been updated for Debian 11 Bullseye --- FruityWiFi/utils/network.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/FruityWiFi/utils/network.py b/FruityWiFi/utils/network.py index 6ae42bc..04da294 100755 --- a/FruityWiFi/utils/network.py +++ b/FruityWiFi/utils/network.py @@ -5,15 +5,15 @@ import netifaces def usage(): - print "\nFruityWiFi utils v1.0 (@xtr4nge)" + print ("\nFruityWiFi utils v1.1 (@xtr4nge)") - print "Usage: network.py \n" - print "Options:" - print "-t , --type= TYPE" - print "-i , --iface= INTERFACE" - print "" - print "Author: @xtr4nge" - print "" + print ("Usage: network.py \n") + print ("Options:") + print ("-t , --type= TYPE") + print ("-i , --iface= INTERFACE") + print ("") + print ("Author: @xtr4nge") + print ("") def parseOptions(argv): TYPE = "" @@ -35,7 +35,7 @@ def parseOptions(argv): if TYPE == "": usage() print - print "[Required] \n -t (TYPE: getiface) \n" + print ("[Required] \n -t (TYPE: getiface) \n") print sys.exit(1) @@ -52,21 +52,21 @@ def getIface(): except: MAC = "" try: IP = netifaces.ifaddresses(i)[netifaces.AF_INET][0]["addr"] except: IP = "" - print str(i)+"|"+str(IP)+"|"+str(MAC) + print (str(i)+"|"+str(IP)+"|"+str(MAC)) def getIfaceNAME(): for i in netifaces.interfaces(): - print i + print (i) def getIfaceIP(iface): try: IP = netifaces.ifaddresses(iface)[netifaces.AF_INET][0]["addr"] except: IP = "" - print IP + print (IP) def getIfaceMAC(iface): try: MAC = netifaces.ifaddresses(iface)[netifaces.AF_LINK][0]["addr"] except: MAC = "" - print MAC + print (MAC) def main(argv): (TYPE, IFACE) = parseOptions(argv) From 03b0b4ced9acfead634c6f06c10772bb4806900d Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 18 Dec 2021 12:39:28 +0000 Subject: [PATCH 150/151] Installer has been updated for Debian 11 Bullseye --- FruityWiFi/www/functions.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/FruityWiFi/www/functions.php b/FruityWiFi/www/functions.php index 4495f60..6501637 100644 --- a/FruityWiFi/www/functions.php +++ b/FruityWiFi/www/functions.php @@ -1,6 +1,6 @@ \ No newline at end of file +?> From af18efdea1c39d3c23cec5e8a9594db951b58063 Mon Sep 17 00:00:00 2001 From: xtr4nge Date: Sat, 18 Dec 2021 12:42:21 +0000 Subject: [PATCH 151/151] Installer has been updated for Debian 11 Bullseye --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0f8c2b..b2ef6e5 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # FruityWiFi ###### Wireless network auditing tool http://www.fruitywifi.com/ -## Important Note (Debian Buster): -Please use Use **Debian Buster** based systems. The Installer has been updated for resolving issues with old version. +## Important Note (Debian 11 Bullseye): +Please use Use **Debian 11 Bullseye** based systems. The Installer has been updated for resolving issues with old version. +
+**Note**: Some modules will not work until they are upgraded to Python3

FruityWiFi is an open source tool to audit wireless networks. It allows the user to deploy advanced attacks by directly using the web interface or by sending messages to it.