From 2b7870cb7c04297ef3d369b7179eb743340f4faf Mon Sep 17 00:00:00 2001 From: derv82 Date: Fri, 6 Apr 2018 17:25:31 -0400 Subject: [PATCH] 2.1.1: Option to ignore APs without clients (--clients-only or -co) Requested in #79 --- wifite/args.py | 5 +++++ wifite/config.py | 6 +++++- wifite/tools/airodump.py | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/wifite/args.py b/wifite/args.py index 4e59185..3416403 100755 --- a/wifite/args.py +++ b/wifite/args.py @@ -118,6 +118,11 @@ class Arguments(object): help=self._verbose('Hides targets with ESSIDs that match the given text')) glob.add_argument('--ignore-essid', help=argparse.SUPPRESS, action='store', dest='ignore_essid', type=str) + glob.add_argument('--clients-only', '-co', + action='store_true', + dest='clients_only', + help=Color.s('Only show targets that have associated clients (default: {G}off{W})')) + glob.add_argument('--showb', action='store_true', dest='show_bssids', diff --git a/wifite/config.py b/wifite/config.py index 3252597..225a36e 100755 --- a/wifite/config.py +++ b/wifite/config.py @@ -12,7 +12,7 @@ class Configuration(object): initialized = False # Flag indicating config has been initialized temp_dir = None # Temporary directory - version = '2.1.0' + version = '2.1.1' @staticmethod def initialize(load_interface=True): @@ -40,6 +40,7 @@ class Configuration(object): Configuration.target_essid = None # User-defined AP name Configuration.target_bssid = None # User-defined AP BSSID Configuration.ignore_essid = None # ESSIDs to ignore + Configuration.clients_only = False # Only show targets that have associated clients Configuration.five_ghz = False # Scan 5Ghz channels Configuration.show_bssids = False # Show BSSIDs in targets list Configuration.random_mac = False # Should generate a random Mac address at startup. @@ -150,6 +151,9 @@ class Configuration(object): if args.ignore_essid is not None: Configuration.ignore_essid = args.ignore_essid Color.pl('{+} {C}option:{W} {O}ignoring ESSIDs that include {R}%s{W}' % args.ignore_essid) + if args.clients_only == True: + Configuration.clients_only = True + Color.pl('{+} {C}option:{W} {O}ignoring targets that do not have associated clients') if args.scan_time: Configuration.scan_time = args.scan_time Color.pl('{+} {C}option:{W} ({G}pillage{W}) attack all targets after {G}%d{W}s' % args.scan_time) diff --git a/wifite/tools/airodump.py b/wifite/tools/airodump.py index aa79aa5..91786c0 100755 --- a/wifite/tools/airodump.py +++ b/wifite/tools/airodump.py @@ -237,6 +237,8 @@ class Airodump(object): result = [] # Filter based on Encryption for target in targets: + if Configuration.clients_only and len(target.clients) == 0: + continue if 'WEP' in Configuration.encryption_filter and 'WEP' in target.encryption: result.append(target) elif 'WPA' in Configuration.encryption_filter and 'WPA' in target.encryption: