Python improvements, messaging improvements.

Small code changed as proposed in #128.
This should close #128.

Slowly moving towards Camel-case in script output.
This commit is contained in:
derv82
2018-08-24 19:37:55 -07:00
parent 7f0197e80e
commit 17bd96f297
8 changed files with 17 additions and 20 deletions

View File

@@ -22,7 +22,7 @@ class AttackAll(object):
essid = target.essid if target.essid_known else '{O}ESSID unknown{W}' essid = target.essid if target.essid_known else '{O}ESSID unknown{W}'
Color.pl('\n{+} ({G}%d{W}/{G}%d{W})' % (index, len(targets)) + Color.pl('\n{+} ({G}%d{W}/{G}%d{W})' % (index, len(targets)) +
' starting attacks against {C}%s{W} ({C}%s{W})' % (bssid, essid)) ' Starting attacks against {C}%s{W} ({C}%s{W})' % (bssid, essid))
should_continue = cls.attack_single(target, targets_remaining) should_continue = cls.attack_single(target, targets_remaining)
if not should_continue: if not should_continue:
@@ -67,7 +67,7 @@ class AttackAll(object):
attacks.append(AttackWPA(target)) attacks.append(AttackWPA(target))
if len(attacks) == 0: if len(attacks) == 0:
Color.pl('{!} {R}Error: {O}unable to attack: encryption not WEP or WPA') Color.pl('{!} {R}Error: {O}Unable to attack: encryption not WEP or WPA')
return return
while len(attacks) > 0: while len(attacks) > 0:
@@ -80,7 +80,7 @@ class AttackAll(object):
Color.pexception(e) Color.pexception(e)
continue continue
except KeyboardInterrupt: except KeyboardInterrupt:
Color.pl('\n{!} {O}interrupted{W}\n') Color.pl('\n{!} {O}Interrupted{W}\n')
if not cls.user_wants_to_continue(targets_remaining, len(attacks)): if not cls.user_wants_to_continue(targets_remaining, len(attacks)):
return False # Stop attacking other targets return False # Stop attacking other targets
@@ -106,9 +106,9 @@ class AttackAll(object):
if targets_remaining > 0: if targets_remaining > 0:
prompt_list.append(Color.s('{C}%d{W} target(s)' % targets_remaining)) prompt_list.append(Color.s('{C}%d{W} target(s)' % targets_remaining))
prompt = ' and '.join(prompt_list) prompt = ' and '.join(prompt_list)
Color.pl('{+} %s remain, do you want to continue?' % prompt) Color.pl('{+} %s remain, Do you want to continue?' % prompt)
prompt = Color.s('{+} type {G}c{W} to {G}continue{W}' + prompt = Color.s('{+} Type {G}c{W} to {G}continue{W}' +
' or {R}s{W} to {R}stop{W}: ') ' or {R}s{W} to {R}stop{W}: ')
from ..util.input import raw_input from ..util.input import raw_input

View File

@@ -192,7 +192,7 @@ class AttackPMKID(Attack):
dumptool = HcxDumpTool(self.target, self.pcapng_file) dumptool = HcxDumpTool(self.target, self.pcapng_file)
# Let the dump tool run until we have the hash. # Let the dump tool run until we have the hash.
while self.keep_capturing and dumptool.poll() == None: while self.keep_capturing and dumptool.poll() is None:
time.sleep(0.5) time.sleep(0.5)
dumptool.interrupt() dumptool.interrupt()
@@ -202,7 +202,7 @@ class AttackPMKID(Attack):
'''Saves a copy of the pmkid (handshake) to hs/ directory.''' '''Saves a copy of the pmkid (handshake) to hs/ directory.'''
# Create handshake dir # Create handshake dir
if not os.path.exists(Configuration.wpa_handshake_dir): if not os.path.exists(Configuration.wpa_handshake_dir):
os.mkdir(Configuration.wpa_handshake_dir) os.makedirs(Configuration.wpa_handshake_dir)
# Generate filesystem-safe filename from bssid, essid and date # Generate filesystem-safe filename from bssid, essid and date
essid_safe = re.sub('[^a-zA-Z0-9]', '', self.target.essid) essid_safe = re.sub('[^a-zA-Z0-9]', '', self.target.essid)

View File

@@ -205,7 +205,7 @@ class AttackWPA(Attack):
''' '''
# Create handshake dir # Create handshake dir
if not os.path.exists(Configuration.wpa_handshake_dir): if not os.path.exists(Configuration.wpa_handshake_dir):
os.mkdir(Configuration.wpa_handshake_dir) os.makedirs(Configuration.wpa_handshake_dir)
# Generate filesystem-safe filename from bssid, essid and date # Generate filesystem-safe filename from bssid, essid and date
if handshake.essid and type(handshake.essid) is str: if handshake.essid and type(handshake.essid) is str:

View File

@@ -17,26 +17,22 @@ class AttackWPS(Attack):
# Drop out if user specified to not use Reaver/Bully # Drop out if user specified to not use Reaver/Bully
if Configuration.use_pmkid_only: if Configuration.use_pmkid_only:
Color.pl('\r{!} {O}--pmkid{R} set, ignoring WPS attack on ' +
'{O}%s{W}' % self.target.essid)
self.success = False self.success = False
return False return False
if Configuration.no_wps: if Configuration.no_wps:
Color.pl('\r{!} {O}--no-wps{R} set, ignoring WPS attack on ' +
'{O}%s{W}' % self.target.essid)
self.success = False self.success = False
return False return False
if not Configuration.wps_pixie and self.pixie_dust: if not Configuration.wps_pixie and self.pixie_dust:
Color.pl('\r{!} {O}--no-pixie{R} set, ignoring WPS attack on ' + Color.pl('\r{!} {O}--no-pixie{R} was given, ignoring WPS PIN Attack on ' +
'{O}%s{W}' % self.target.essid) '{O}%s{W}' % self.target.essid)
self.success = False self.success = False
return False return False
if not Configuration.wps_pin and not self.pixie_dust: if not Configuration.wps_pin and not self.pixie_dust:
Color.pl('\r{!} {O}--no-pin{R} set, ignoring WPS attack on ' + Color.pl('\r{!} {O}--no-pin{R} was given, ignoring WPS Pixie-Dust Attack ' +
'{O}%s{W}' % self.target.essid) 'on {O}%s{W}' % self.target.essid)
self.success = False self.success = False
return False return False

View File

@@ -316,7 +316,8 @@ class Configuration(object):
if args.wps_only: if args.wps_only:
cls.wps_only = True cls.wps_only = True
Color.pl('{+} {C}option:{W} will *only* attack non-WEP networks with ' + cls.wps_filter = True # Also only show WPS networks
Color.pl('{+} {C}option:{W} will *only* attack WPS networks with ' +
'{G}WPS attacks{W} (avoids handshake and PMKID)') '{G}WPS attacks{W} (avoids handshake and PMKID)')
if args.no_wps: if args.no_wps:

View File

@@ -28,7 +28,7 @@ class Hashcat(Dependency):
key = None key = None
# Crack hccapx # Crack hccapx
for additional_arg in [ [], ['--show']]: for additional_arg in ([], ['--show']):
command = [ command = [
'hashcat', 'hashcat',
'--quiet', '--quiet',
@@ -65,7 +65,7 @@ class Hashcat(Dependency):
# Run hashcat once normally, then with --show if it failed # Run hashcat once normally, then with --show if it failed
# To catch cases where the password is already in the pot file. # To catch cases where the password is already in the pot file.
for additional_arg in [ [], ['--show']]: for additional_arg in ([], ['--show']):
command = [ command = [
'hashcat', 'hashcat',
'--quiet', # Only output the password if found. '--quiet', # Only output the password if found.

View File

@@ -443,7 +443,7 @@ executing pixiewps -e d0141b15656e96b85fcead2e8e76330d2b1ac1576bb026e7a328c0e1ba
(pin, psk, ssid) = Reaver.get_pin_psk_ssid(new_stdout) (pin, psk, ssid) = Reaver.get_pin_psk_ssid(new_stdout)
assert pin == '11867722', 'pin was "%s", should have been "11867722"' % pin assert pin == '11867722', 'pin was "%s", should have been "11867722"' % pin
assert psk == None, 'psk was "%s", should have been "None"' % psk assert psk is None, 'psk was "%s", should have been "None"' % psk
assert ssid == 'belkin.00e', 'ssid was "%s", should have been "belkin.00e"' % repr(ssid) assert ssid == 'belkin.00e', 'ssid was "%s", should have been "belkin.00e"' % repr(ssid)
result = CrackResultWPS('AA:BB:CC:DD:EE:FF', ssid, pin, psk) result = CrackResultWPS('AA:BB:CC:DD:EE:FF', ssid, pin, psk)
result.dump() result.dump()

View File

@@ -54,7 +54,7 @@ class Scanner(object):
self.print_targets() self.print_targets()
target_count = len(self.targets) target_count = len(self.targets)
client_count = sum([len(t.clients) for t in self.targets]) client_count = sum(len(t.clients) for t in self.targets)
outline = '\r{+} Scanning' outline = '\r{+} Scanning'
if airodump.decloaking: if airodump.decloaking: