Bring back --showb due to popular demand

Closes #69 (heh)
This commit is contained in:
derv82
2018-03-03 02:27:18 -05:00
parent 222b89dee6
commit 22e655215c
5 changed files with 35 additions and 16 deletions

View File

@@ -299,9 +299,8 @@ if __name__ == '__main__':
from Color import Color
targets = airodump.get_targets()
Target.print_header()
for idx, target in enumerate(targets, start=1):
Color.pl(' {G}%s %s' % (str(idx).rjust(3), target))
Color.pl(' {G}%s %s' % (str(idx).rjust(3), target.to_str()))
Configuration.delete_temp()

View File

@@ -54,6 +54,10 @@ class Arguments(object):
type=str,
help=Color.s('ESSID (e.g. {GR}NETGEAR07{W}) of access point to attack'))
glob.add_argument('--essid', help=argparse.SUPPRESS, action='store', dest='target_essid', type=str)
glob.add_argument('--showb',
action='store_true',
dest='show_bssids',
help=Color.s('Show BSSIDs of targets while scanning'))
glob.add_argument('-v',
'--verbose',
action='count',

View File

@@ -37,6 +37,7 @@ class Configuration(object):
Configuration.target_essid = None # User-defined AP name
Configuration.target_bssid = None # User-defined AP BSSID
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.
Configuration.no_deauth = False # Deauth hidden networks & WPA handshake targets
Configuration.num_deauths = 1 # Number of deauth packets to send to each target.
@@ -133,6 +134,9 @@ class Configuration(object):
if args.five_ghz == True:
Configuration.five_ghz = True
Color.pl('{+} {C}option:{W} including {G}5Ghz networks{W} in scans')
if args.show_bssids == True:
Configuration.show_bssids = True
Color.pl('{+} {C}option:{W} showing {G}bssids{W} of targets during scan')
if args.no_deauth == True:
Configuration.no_deauth = True
Color.pl('{+} {C}option:{W} will {R}not{W} {O}deauth{W} clients during scans or captures')

View File

@@ -132,10 +132,25 @@ class Scanner(object):
# Overwrite the current line
Color.p('\r')
Target.print_header()
# First row: columns
Color.p(' NUM')
Color.p(' ESSID')
if Configuration.show_bssids:
Color.p(' BSSID')
Color.pl(' CH ENCR POWER WPS? CLIENT')
# Second row: separator
Color.p(' ---')
Color.p(' -------------------------')
if Configuration.show_bssids:
Color.p(' -----------------')
Color.pl(' --- ---- ----- ---- ------')
# Remaining rows: targets
for idx, target in enumerate(self.targets, start=1):
Color.clear_entire_line()
Color.pl(' {G}%s %s' % (str(idx).rjust(3), target))
Color.p(' {G}%s ' % str(idx).rjust(3))
Color.pl(target.to_str(Configuration.show_bssids))
@staticmethod
def get_terminal_height():

View File

@@ -78,7 +78,7 @@ class Target(object):
if bssid_multicast.match(self.bssid):
raise Exception("Ignoring target with Multicast BSSID (%s)" % self.bssid)
def __str__(self):
def to_str(self, show_bssid=False):
'''
*Colored* string representation of this Target.
Specifically formatted for the "scanning" table view.
@@ -99,6 +99,11 @@ class Target(object):
# Unknown ESSID
essid = Color.s("{O}%s" % essid)
if show_bssid:
bssid = Color.s('{O}%s ' % self.bssid)
else:
bssid = ''
channel_color = "{G}"
if int(self.channel) > 14:
channel_color = "{C}"
@@ -131,24 +136,16 @@ class Target(object):
if len(self.clients) > 0:
clients = Color.s('{G} ' + str(len(self.clients)))
result = '%s %s %s %s %s %s' % (essid, channel,
encryption, power,
wps, clients)
result = '%s %s%s %s %s %s %s' % (
essid, bssid, channel, encryption, power, wps, clients)
result += Color.s("{W}")
return result
@staticmethod
def print_header():
''' Prints header rows for "scanning" table view '''
print ' NUM ESSID CH ENCR POWER WPS? CLIENT'
print ' --- ------------------------- --- ---- ----- ---- ------'
if __name__ == '__main__':
fields = 'AA:BB:CC:DD:EE:FF,2015-05-27 19:28:44,2015-05-27 19:28:46,1,54,WPA2,CCMP TKIP,PSK,-58,2,0,0.0.0.0,9,HOME-ABCD,'.split(',')
t = Target(fields)
t.clients.append("asdf")
t.clients.append("asdf")
Target.print_header()
Color.pl(' {G}%s %s' % ('1'.rjust(3), t))
print t.to_str()