Files
wifite2/py/AttackWPS.py
derv82 aaf7845177 --bully option to use bully (instead of reaver).
Previously used bully by-default.
Removed Configurations named 'reaver' (instead of 'WPS attack')

Should resolve #39
2018-02-28 04:36:06 -05:00

64 lines
2.0 KiB
Python

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
from Attack import Attack
from Airodump import Airodump
from Color import Color
from Configuration import Configuration
from CrackResultWPS import CrackResultWPS
from Process import Process
from Bully import Bully
from Reaver import Reaver
class AttackWPS(Attack):
def __init__(self, target):
super(AttackWPS, self).__init__(target)
self.success = False
self.crack_result = None
def run(self):
''' Run all WPS-related attacks '''
# Drop out if user specified to not use Reaver/Bully
if Configuration.no_wps:
self.success = False
return self.success
###################
# Pixie-Dust attack
if Configuration.use_bully:
# Bully: Pixie-dust
bully = Bully(self.target, pixie=True)
if bully.crack_result is not None:
self.crack_result = bully.crack_result
return True
else:
reaver = Reaver(self.target)
if reaver.is_pixiedust_supported():
# Reaver: Pixie-dust
reaver = Reaver(self.target)
if reaver.run_pixiedust_attack():
return True
else:
Color.pl("{!} {R}your version of 'reaver' does not support the {O}WPS pixie-dust attack{W}")
if Configuration.pixie_only:
Color.pl('\r{!} {O}--pixie{R} set, ignoring WPS-PIN attack{W}')
return False
###################
# PIN attack
if Configuration.use_bully:
# Bully: PIN guessing
bully = Bully(self.target, pixie=False)
if bully.crack_result is not None:
self.crack_result = bully.crack_result
return True
else:
# Reaver: PIN guessing
reaver = Reaver(self.target)
if reaver.run_wps_pin_attack():
return True
return False