Esempio n. 1
0
    def main(self):
        ''' Either performs action based on arguments, or starts attack scanning '''

        if os.getuid() != 0:
            Color.pl('{!} {R}error: {O}wifite{R} must be run as {O}root{W}')
            Color.pl('{!} {O}re-run as: sudo ./Wifite.py{W}')
            return

        Configuration.initialize(load_interface=False)

        if Configuration.show_cracked:
            self.display_cracked()

        elif Configuration.check_handshake:
            self.check_handshake(Configuration.check_handshake)

        elif Configuration.crack_wpa:
            # TODO: Crack .cap file at crack_wpa
            Color.pl('{!} Unimplemented method: crack_wpa')
            pass
        elif Configuration.crack_wep:
            # TODO: Crack .cap file at crack_wep
            Color.pl('{!} Unimplemented method: crack_wep')
            pass
        elif Configuration.update:
            # TODO: Get latest version from github
            Color.pl('{!} Unimplemented method: update')
            pass
        else:
            Configuration.get_interface()
            self.run()
Esempio n. 2
0
    def dependency_check(self):
        ''' Check that required programs are installed '''
        required_apps = [
            'airmon-ng', 'iwconfig', 'ifconfig', 'aircrack-ng', 'aireplay-ng',
            'airodump-ng', 'tshark'
        ]
        optional_apps = [
            'packetforge-ng', 'reaver', 'bully', 'cowpatty', 'pyrit', 'stdbuf',
            'macchanger'
        ]
        missing_required = False
        missing_optional = False

        for app in required_apps:
            if not Process.exists(app):
                missing_required = True
                Color.pl('{!} {R}error: required app {O}%s{R} was not found' %
                         app)

        for app in optional_apps:
            if not Process.exists(app):
                missing_optional = True
                Color.pl(
                    '{!} {O}warning: recommended app {R}%s{O} was not found' %
                    app)

        if missing_required:
            Color.pl('{!} {R}required app(s) were not found, exiting.{W}')
            exit(-1)

        if missing_optional:
            Color.pl('{!} {O}recommended app(s) were not found')
            Color.pl('{!} {O}wifite may not work as expected{W}')
Esempio n. 3
0
    def main(self):
        ''' Either performs action based on arguments, or starts attack scanning '''

        if os.getuid() != 0:
            Color.pl('{!} {R}error: {O}wifite{R} must be run as {O}root{W}')
            Color.pl('{!} {O}re-run as: sudo ./Wifite.py{W}')
            return

        Configuration.initialize(load_interface=False)

        if Configuration.show_cracked:
            self.display_cracked()

        elif Configuration.check_handshake:
            self.check_handshake(Configuration.check_handshake)

        elif Configuration.crack_wpa:
            # TODO: Crack .cap file at crack_wpa
            Color.pl('{!} Unimplemented method: crack_wpa')
            pass
        elif Configuration.crack_wep:
            # TODO: Crack .cap file at crack_wep
            Color.pl('{!} Unimplemented method: crack_wep')
            pass
        elif Configuration.update:
            # TODO: Get latest version from github
            Color.pl('{!} Unimplemented method: update')
            pass
        else:
            Configuration.get_interface()
            self.run()
Esempio n. 4
0
 def check_handshake(self, capfile):
     ''' Analyzes .cap file for handshake '''
     Color.pl('{+} checking for handshake in .cap file {C}%s{W}' % capfile)
     if not os.path.exists(capfile):
         Color.pl('{!} {O}.cap file {C}%s{O} not found{W}' % capfile)
         return
     hs = Handshake(capfile)
     hs.analyze()
Esempio n. 5
0
 def check_handshake(self, capfile):
     ''' Analyzes .cap file for handshake '''
     Color.pl('{+} checking for handshake in .cap file {C}%s{W}' % capfile)
     if not os.path.exists(capfile):
         Color.pl('{!} {O}.cap file {C}%s{O} not found{W}' % capfile)
         return
     hs = Handshake(capfile, bssid=Configuration.target_bssid, essid=Configuration.target_essid)
     hs.analyze()
Esempio n. 6
0
 def check_handshake(self, capfile):
     ''' Analyzes .cap file for handshake '''
     Color.pl('{+} checking for handshake in .cap file {C}%s{W}' % capfile)
     if not os.path.exists(capfile):
         Color.pl('{!} {O}.cap file {C}%s{O} not found{W}' % capfile)
         return
     hs = Handshake(capfile)
     hs.analyze()
Esempio n. 7
0
    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
        s = Scanner()
        if s.target:
            # We found the target we want
            targets = [s.target]
        else:
            targets = s.select_targets()

        targets_remaining = len(targets)
        for index, t in enumerate(targets):
            targets_remaining -= 1

            Color.pl('\n{+} ({G}%d{W}/{G}%d{W})' % (index + 1, len(targets)) +
                     ' starting attacks against {C}%s{W} ({C}%s{W})' %
                     (t.bssid, t.essid))
            if 'WEP' in t.encryption:
                attack = AttackWEP(t)
            elif 'WPA' in t.encryption:
                if t.wps:
                    attack = AttackWPS(t)
                    result = False
                    try:
                        result = attack.run()
                    except KeyboardInterrupt:
                        if not self.user_wants_to_continue(
                                targets_remaining, 1):
                            break

                    if result and attack.success:
                        # We cracked it.
                        attack.crack_result.save()
                        continue
                    else:
                        # WPS failed, try WPA handshake.
                        attack = AttackWPA(t)
                else:
                    # Not using WPS, try WPA handshake.
                    attack = AttackWPA(t)
            else:
                Color.pl(
                    "{!} {R}Error: {O}unable to attack: encryption not WEP or WPA"
                )
                continue

            try:
                attack.run()
            except KeyboardInterrupt:
                if not self.user_wants_to_continue(targets_remaining):
                    break

            if attack.success:
                attack.crack_result.save()
Esempio n. 8
0
    def print_banner(self):
        """ Displays ASCII art of the highest caliber.  """
        Color.pl(r'''
{G}  .     {GR}{D}     {W}{G}     .    {W}
{G}.´  ·  .{GR}{D}     {W}{G}.  ·  `.  {G}wifite {D}%s{W}
{G}:  :  : {GR}{D} (¯) {W}{G} :  :  :  {W}{D}automated wireless auditor
{G}`.  ·  `{GR}{D} /¯\ {W}{G}´  ·  .´  {C}{D}https://github.com/derv82/wifite2
{G}  `     {GR}{D}/¯¯¯\{W}{G}     ´    {W}
''' % Configuration.version)
Esempio n. 9
0
 def check_handshake(self, capfile):
     ''' Analyzes .cap file for handshake '''
     if capfile == '<all>':
         Color.pl('{+} checking all handshakes in {G}"./hs"{W} directory\n')
         try:
             capfiles = [os.path.join('hs', x) for x in os.listdir('hs') if x.endswith('.cap')]
         except OSError, e:
             capfiles = []
         if len(capfiles) == 0:
             Color.pl('{!} {R}no .cap files found in {O}"./hs"{W}\n')
Esempio n. 10
0
 def check_handshake(self, capfile):
     ''' Analyzes .cap file for handshake '''
     if capfile == '<all>':
         Color.pl('{+} checking all handshakes in {G}"./hs"{W} directory\n')
         try:
             capfiles = [os.path.join('hs', x) for x in os.listdir('hs') if x.endswith('.cap')]
         except OSError, e:
             capfiles = []
         if len(capfiles) == 0:
             Color.pl('{!} {R}no .cap files found in {O}"./hs"{W}\n')
Esempio n. 11
0
    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
        s = Scanner()
        if s.target:
            # We found the target we want
            targets = [s.target]
        else:
            targets = s.select_targets()

        targets_remaining = len(targets)
        for index, t in enumerate(targets):
            targets_remaining -= 1

            Color.pl('\n{+} ({G}%d{W}/{G}%d{W})' % (index + 1, len(targets)) +
                     ' starting attacks against {C}%s{W} ({C}%s{W})'
                % (t.bssid, t.essid))
            if 'WEP' in t.encryption:
                attack = AttackWEP(t)
            elif 'WPA' in t.encryption:
                if t.wps:
                    attack = AttackWPS(t)
                    result = False
                    try:
                        result = attack.run()
                    except KeyboardInterrupt:
                        if not self.user_wants_to_continue(targets_remaining, 1):
                            break

                    if result and attack.success:
                        # We cracked it.
                        attack.crack_result.save()
                        continue
                    else:
                        # WPS failed, try WPA handshake.
                        attack = AttackWPA(t)
                else:
                    # Not using WPS, try WPA handshake.
                    attack = AttackWPA(t)
            else:
                Color.pl("{!} {R}Error: {O}unable to attack: encryption not WEP or WPA")
                continue

            try:
                attack.run()
            except KeyboardInterrupt:
                if not self.user_wants_to_continue(targets_remaining):
                    break

            if attack.success:
                attack.crack_result.save()
Esempio n. 12
0
    def main(self):
        ''' Either performs action based on arguments, or starts attack scanning '''

        if os.getuid() != 0:
            Color.pl('{!} {R}error: {O}wifite{R} must be run as {O}root{W}')
            Color.pl('{!} {O}re-run as: sudo ./Wifite.py{W}')
            return

        Configuration.initialize(load_interface=False)

        if Configuration.show_cracked:
            self.display_cracked()

        elif Configuration.check_handshake:
            self.check_handshake(Configuration.check_handshake)
        else:
            Configuration.get_interface()
            self.run()
Esempio n. 13
0
    def main(self):
        ''' Either performs action based on arguments, or starts attack scanning '''

        if os.getuid() != 0:
            Color.pl('{!} {R}error: {O}wifite{R} must be run as {O}root{W}')
            Color.pl('{!} {O}re-run as: sudo ./Wifite.py{W}')
            return

        Configuration.initialize(load_interface=False)

        if Configuration.show_cracked:
            self.display_cracked()

        elif Configuration.check_handshake:
            self.check_handshake(Configuration.check_handshake)
        else:
            Configuration.get_interface()
            self.run()
Esempio n. 14
0
    def user_wants_to_continue(self, targets_remaining, attacks_remaining=0):
        ''' Asks user if attacks should continue onto other targets '''
        if attacks_remaining == 0 and targets_remaining == 0:
            # No targets or attacksleft, drop out
            return

        prompt_list = []
        if attacks_remaining > 0:
            prompt_list.append(Color.s('{C}%d{W} attack(s)' % attacks_remaining))
        if targets_remaining > 0:
            prompt_list.append(Color.s('{C}%d{W} target(s)' % targets_remaining))
        prompt = ' and '.join(prompt_list)
        Color.pl('{+} %s remain, do you want to continue?' % prompt)

        prompt = Color.s('{+} type {G}c{W} to {G}continue{W}' +
                         ' or {R}s{W} to {R}stop{W}: ')

        if raw_input(prompt).lower().startswith('s'):
            return False
        else:
            return True
Esempio n. 15
0
    def user_wants_to_continue(self, targets_remaining, attacks_remaining=0):
        ''' Asks user if attacks should continue onto other targets '''
        if attacks_remaining == 0 and targets_remaining == 0:
            # No targets or attacksleft, drop out
            return

        prompt_list = []
        if attacks_remaining > 0:
            prompt_list.append(
                Color.s('{C}%d{W} attack(s)' % attacks_remaining))
        if targets_remaining > 0:
            prompt_list.append(
                Color.s('{C}%d{W} target(s)' % targets_remaining))
        prompt = ' and '.join(prompt_list)
        Color.pl('{+} %s remain, do you want to continue?' % prompt)

        prompt = Color.s('{+} type {G}c{W} to {G}continue{W}' +
                         ' or {R}s{W} to {R}stop{W}: ')

        if raw_input(prompt).lower().startswith('s'):
            return False
        else:
            return True
Esempio n. 16
0
 def display_cracked(self):
     ''' Show cracked targets from cracked.txt '''
     Color.pl('{+} displaying {C}cracked target(s){W}')
     name = CrackResult.cracked_file
     if not os.path.exists(name):
         Color.pl('{!} {O}file {C}%s{O} not found{W}' % name)
         return
     with open(name, 'r') as fid:
         json = loads(fid.read())
     for idx, item in enumerate(json, start=1):
         Color.pl('\n{+} Cracked target #%d:' % (idx))
         cr = CrackResult.load(item)
         cr.dump()
Esempio n. 17
0
 def display_cracked(self):
     ''' Show cracked targets from cracked.txt '''
     Color.pl('{+} displaying {C}cracked target(s){W}')
     name = CrackResult.cracked_file
     if not os.path.exists(name):
         Color.pl('{!} {O}file {C}%s{O} not found{W}' % name)
         return
     f = open(name, 'r')
     json = loads(f.read())
     f.close()
     for (index, item) in enumerate(json):
         Color.pl('\n{+} Cracked target #%d:' % (index + 1))
         cr = CrackResult.load(item)
         cr.dump()
Esempio n. 18
0
 def display_cracked(self):
     ''' Show cracked targets from cracked.txt '''
     Color.pl('{+} displaying {C}cracked target(s){W}')
     name = CrackResult.cracked_file
     if not os.path.exists(name):
         Color.pl('{!} {O}file {C}%s{O} not found{W}' % name)
         return
     f = open(name, 'r')
     json = loads(f.read())
     f.close()
     for (index, item) in enumerate(json):
         Color.pl('\n{+} Cracked target #%d:' % (index + 1))
         cr = CrackResult.load(item)
         cr.dump()
Esempio n. 19
0
    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
        s = Scanner()
        if s.target:
            # We found the target we want
            targets = [s.target]
        else:
            targets = s.select_targets()

        attacked_targets = 0
        targets_remaining = len(targets)
        for idx, t in enumerate(targets, start=1):
            attacked_targets += 1
            targets_remaining -= 1

            Color.pl(
                '\n{+} ({G}%d{W}/{G}%d{W})' % (idx, len(targets)) +
                ' starting attacks against {C}%s{W} ({C}%s{W})' %
                (t.bssid, t.essid if t.essid_known else "{O}ESSID unknown"))
            if 'WEP' in t.encryption:
                attack = AttackWEP(t)
            elif 'WPA' in t.encryption:
                if t.wps:
                    attack = AttackWPS(t)
                    result = False
                    try:
                        result = attack.run()
                    except Exception, e:
                        Color.pl("\n{!} {R}Error: {O}%s" % str(e))
                        if Configuration.verbose > 0 or True:
                            Color.pl('\n{!} {O}Full stack trace below')
                            from traceback import format_exc
                            Color.p('\n{!}    ')
                            err = format_exc().strip()
                            err = err.replace('\n', '\n{!} {C}   ')
                            err = err.replace('  File', '{W}File')
                            err = err.replace('  Exception: ',
                                              '{R}Exception: {O}')
                            Color.pl(err)
                    except KeyboardInterrupt:
                        Color.pl('\n{!} {O}interrupted{W}\n')
                        if not self.user_wants_to_continue(
                                targets_remaining, 1):
                            break

                    if result and attack.success:
                        # We cracked it.
                        attack.crack_result.save()
                        continue
                    else:
                        # WPS failed, try WPA handshake.
                        attack = AttackWPA(t)
                else:
                    # Not using WPS, try WPA handshake.
                    attack = AttackWPA(t)
Esempio n. 20
0
 def print_banner(self):
     """ Displays ASCII art of the highest caliber.  """
     Color.pl("")
     Color.pl("{G}  .;'                     `;,    ")
     Color.pl("{G} .;'  ,;'             `;,  `;,  {W}WiFite v%.2f" % Configuration.version)
     Color.pl("{G}.;'  ,;'  ,;'     `;,  `;,  `;,  ")
     Color.pl("{G}::   ::   :   {GR}( ){G}   :   ::   ::  {W}Automated Wireless Auditor")
     Color.pl("{G}':.  ':.  ':. {GR}/_\\{G} ,:'  ,:'  ,:'  ")
     Color.pl("{G} ':.  ':.    {GR}/___\\{G}   ,:'  ,:'   {C}https://github.com/derv82/wifite2{W}")
     Color.pl("{G}  ':.       {GR}/_____\\{G}     ,:'     ")
     Color.pl("{G}           {GR}/       \\{G}         ")
     Color.pl("{W}")
Esempio n. 21
0
            cr.dump()

    def check_handshake(self, capfile):
        ''' Analyzes .cap file for handshake '''
        if capfile == '<all>':
            Color.pl('{+} checking all handshakes in {G}"./hs"{W} directory\n')
            try:
                capfiles = [os.path.join('hs', x) for x in os.listdir('hs') if x.endswith('.cap')]
            except OSError, e:
                capfiles = []
            if len(capfiles) == 0:
                Color.pl('{!} {R}no .cap files found in {O}"./hs"{W}\n')
        else:
            capfiles = [capfile]
        for capfile in capfiles:
            Color.pl('{+} checking for handshake in .cap file {C}%s{W}' % capfile)
            if not os.path.exists(capfile):
                Color.pl('{!} {O}.cap file {C}%s{O} not found{W}' % capfile)
                return
            hs = Handshake(capfile, bssid=Configuration.target_bssid, essid=Configuration.target_essid)
            hs.analyze()
            Color.pl('')

    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
        s = Scanner()
        if s.target:
Esempio n. 22
0
        if attacks_remaining > 0:
            prompt_list.append(Color.s('{C}%d{W} attack(s)' % attacks_remaining))
        if targets_remaining > 0:
            prompt_list.append(Color.s('{C}%d{W} target(s)' % targets_remaining))
        prompt = ' and '.join(prompt_list)
        Color.pl('{+} %s remain, do you want to continue?' % prompt)

        prompt = Color.s('{+} type {G}c{W} to {G}continue{W}' +
                         ' or {R}s{W} to {R}stop{W}: ')

        if raw_input(prompt).lower().startswith('s'):
            return False
        else:
            return True


if __name__ == '__main__':
    w = Wifite()
    try:
        w.print_banner()
        w.main()
    except Exception, e:
        Color.pl('\n{!} {R}Error:{O} %s{W}' % str(e))
        from traceback import format_exc
        print '\n    '
        print format_exc().replace('\n', '\n    ')
    except KeyboardInterrupt:
        Color.pl('\n{!} {O}interrupted{W}')
    Configuration.exit_gracefully(0)

Esempio n. 23
0
        prompt = Color.s('{+} type {G}c{W} to {G}continue{W}' +
                         ' or {R}s{W} to {R}stop{W}: ')

        if raw_input(prompt).lower().startswith('s'):
            return False
        else:
            return True


if __name__ == '__main__':
    w = Wifite()
    try:
        w.print_banner()
        w.main()
    except Exception, e:
        Color.pl('\n{!} {R}Error:{O} %s{W}' % str(e))
        if Configuration.verbose > 0:
            Color.pl('\n{!} {O}Full stack trace below')
            from traceback import format_exc
            Color.p('\n{!}    ')
            err = format_exc().strip()
            err = err.replace('\n', '\n{!} {C}   ')
            err = err.replace('  File', '{W}File')
            err = err.replace('  Exception: ', '{R}Exception: {O}')
            Color.pl(err)
        Color.pl('\n{!} {R}Exiting{W}\n')
    except KeyboardInterrupt:
        Color.pl('\n{!} {O}interrupted{W}')
    Configuration.exit_gracefully(0)

Esempio n. 24
0
 def print_banner(self):
     """ Displays ASCII art of the highest caliber.  """
     Color.pl("")
     Color.pl("{G}  .;'                     `;,    ")
     Color.pl("{G} .;'  ,;'             `;,  `;,  " +
         "{W}WiFite v%.2f" % Configuration.version)
     Color.pl("{G}.;'  ,;'  ,;'     `;,  `;,  `;,  ")
     Color.pl("{G}::   ::   :   {GR}( ){G}   :   ::   ::  " +
         "{W}automated wireless auditor")
     Color.pl("{G}':.  ':.  ':. {GR}/_\\{G} ,:'  ,:'  ,:'  ")
     Color.pl("{G} ':.  ':.    {GR}/___\\{G}   ,:'  ,:'   " +
         "{W}designed for Linux")
     Color.pl("{G}  ':.       {GR}/_____\\{G}     ,:'     ")
     Color.pl("{G}           {GR}/       \\{G}            ")
     Color.pl("{W}")
Esempio n. 25
0
            cr.dump()

    def check_handshake(self, capfile):
        ''' Analyzes .cap file for handshake '''
        if capfile == '<all>':
            Color.pl('{+} checking all handshakes in {G}"./hs"{W} directory\n')
            try:
                capfiles = [os.path.join('hs', x) for x in os.listdir('hs') if x.endswith('.cap')]
            except OSError, e:
                capfiles = []
            if len(capfiles) == 0:
                Color.pl('{!} {R}no .cap files found in {O}"./hs"{W}\n')
        else:
            capfiles = [capfile]
        for capfile in capfiles:
            Color.pl('{+} checking for handshake in .cap file {C}%s{W}' % capfile)
            if not os.path.exists(capfile):
                Color.pl('{!} {O}.cap file {C}%s{O} not found{W}' % capfile)
                return
            hs = Handshake(capfile, bssid=Configuration.target_bssid, essid=Configuration.target_essid)
            hs.analyze()
            Color.pl('')


    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
        s = Scanner()
Esempio n. 26
0
    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
        s = Scanner()
        if s.target:
            # We found the target we want
            targets = [s.target]
        else:
            targets = s.select_targets()

        attacked_targets = 0
        targets_remaining = len(targets)
        for index, t in enumerate(targets):
            attacked_targets += 1
            targets_remaining -= 1

            Color.pl('\n{+} ({G}%d{W}/{G}%d{W})' % (index + 1, len(targets)) +
                     ' starting attacks against {C}%s{W} ({C}%s{W})'
                % (t.bssid, t.essid if t.essid_known else "{O}ESSID unknown"))
            if 'WEP' in t.encryption:
                attack = AttackWEP(t)
            elif 'WPA' in t.encryption:
                if t.wps:
                    attack = AttackWPS(t)
                    result = False
                    try:
                        result = attack.run()
                    except Exception, e:
                        Color.pl("\n{!} {R}Error: {O}%s" % str(e))
                        if Configuration.verbose > 0 or True:
                            Color.pl('\n{!} {O}Full stack trace below')
                            from traceback import format_exc
                            Color.p('\n{!}    ')
                            err = format_exc().strip()
                            err = err.replace('\n', '\n{!} {C}   ')
                            err = err.replace('  File', '{W}File')
                            err = err.replace('  Exception: ', '{R}Exception: {O}')
                            Color.pl(err)
                    except KeyboardInterrupt:
                        Color.pl('\n{!} {O}interrupted{W}\n')
                        if not self.user_wants_to_continue(targets_remaining, 1):
                            break

                    if result and attack.success:
                        # We cracked it.
                        attack.crack_result.save()
                        continue
                    else:
                        # WPS failed, try WPA handshake.
                        attack = AttackWPA(t)
                else:
                    # Not using WPS, try WPA handshake.
                    attack = AttackWPA(t)
Esempio n. 27
0
        prompt = Color.s('{+} type {G}c{W} to {G}continue{W}' +
                         ' or {R}s{W} to {R}stop{W}: ')

        if raw_input(prompt).lower().startswith('s'):
            return False
        else:
            return True


if __name__ == '__main__':
    w = Wifite()
    try:
        w.print_banner()
        w.main()
    except Exception, e:
        Color.pl('\n{!} {R}Error:{O} %s{W}' % str(e))
        if Configuration.verbose > 0:
            Color.pl('\n{!} {O}Full stack trace below')
            from traceback import format_exc
            Color.p('\n{!}    ')
            err = format_exc().strip()
            err = err.replace('\n', '\n{!} {C}   ')
            err = err.replace('  File', '{W}File')
            err = err.replace('  Exception: ', '{R}Exception: {O}')
            Color.pl(err)
        Color.pl('\n{!} {R}Exiting{W}\n')
    except KeyboardInterrupt:
        Color.pl('\n{!} {O}interrupted{W}')
    Configuration.exit_gracefully(0)

Esempio n. 28
0
        ''' Analyzes .cap file for handshake '''
        if capfile == '<all>':
            Color.pl('{+} checking all handshakes in {G}"./hs"{W} directory\n')
            try:
                capfiles = [
                    os.path.join('hs', x) for x in os.listdir('hs')
                    if x.endswith('.cap')
                ]
            except OSError, e:
                capfiles = []
            if len(capfiles) == 0:
                Color.pl('{!} {R}no .cap files found in {O}"./hs"{W}\n')
        else:
            capfiles = [capfile]
        for capfile in capfiles:
            Color.pl('{+} checking for handshake in .cap file {C}%s{W}' %
                     capfile)
            if not os.path.exists(capfile):
                Color.pl('{!} {O}.cap file {C}%s{O} not found{W}' % capfile)
                return
            hs = Handshake(capfile,
                           bssid=Configuration.target_bssid,
                           essid=Configuration.target_essid)
            hs.analyze()
            Color.pl('')

    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
Esempio n. 29
0
            cr.dump()

    def check_handshake(self, capfile):
        ''' Analyzes .cap file for handshake '''
        if capfile == '<all>':
            Color.pl('{+} checking all handshakes in {G}"./hs"{W} directory\n')
            try:
                capfiles = [os.path.join('hs', x) for x in os.listdir('hs') if x.endswith('.cap')]
            except OSError, e:
                capfiles = []
            if len(capfiles) == 0:
                Color.pl('{!} {R}no .cap files found in {O}"./hs"{W}\n')
        else:
            capfiles = [capfile]
        for capfile in capfiles:
            Color.pl('{+} checking for handshake in .cap file {C}%s{W}' % capfile)
            if not os.path.exists(capfile):
                Color.pl('{!} {O}.cap file {C}%s{O} not found{W}' % capfile)
                return
            hs = Handshake(capfile, bssid=Configuration.target_bssid, essid=Configuration.target_essid)
            hs.analyze()
            Color.pl('')


    def run(self):
        '''
            Main program.
            1) Scans for targets, asks user to select targets
            2) Attacks each target
        '''
        s = Scanner()
Esempio n. 30
0
 def print_banner(self):
     """ Displays ASCII art of the highest caliber.  """
     Color.pl("")
     Color.pl("{G}  .;'                     `;,    ")
     Color.pl("{G} .;'  ,;'             `;,  `;,  {W}WiFite v%.2f" %
              Configuration.version)
     Color.pl("{G}.;'  ,;'  ,;'     `;,  `;,  `;,  ")
     Color.pl(
         "{G}::   ::   :   {GR}( ){G}   :   ::   ::  {W}Automated Wireless Auditor"
     )
     Color.pl("{G}':.  ':.  ':. {GR}/_\\{G} ,:'  ,:'  ,:'  ")
     Color.pl(
         "{G} ':.  ':.    {GR}/___\\{G}   ,:'  ,:'   {C}https://github.com/derv82/wifite2{W}"
     )
     Color.pl("{G}  ':.       {GR}/_____\\{G}     ,:'     ")
     Color.pl("{G}           {GR}/       \\{G}         ")
     Color.pl("{W}")