Decloaked ESSIDs will have a "*" next to their name. For #78 While testing, I found that Wifite did not parse Airodump's CSV correctly. Specifically, ESSIDs with commas or trailing spaces. Fixed in this commit. Also fixed hidden ESSID detection introduced by the new CSV parsing logic.
53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
#!/usr/bin/python2.7
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
sys.path.insert(0, '..')
|
|
|
|
from wifite.tools.airodump import Airodump
|
|
|
|
import unittest
|
|
|
|
class TestAirodump(unittest.TestCase):
|
|
''' Test suite for Wifite's interaction with the Airodump tool '''
|
|
|
|
|
|
def test_airodump_weird_characters(self):
|
|
csv_filename = self.getFile('airodump-weird-ssids.csv')
|
|
targets = Airodump.get_targets_from_csv(csv_filename)
|
|
|
|
target = targets[0]
|
|
expected = 'Comma, no trailing space'
|
|
assert target.essid == expected, 'Expected ESSID (%s) but got (%s)' % (expected, target.essid)
|
|
|
|
target = targets[1]
|
|
expected = '"Quoted ESSID, Comma, no trailing spaces. "'
|
|
assert target.essid == expected, 'Expected ESSID (%s) but got (%s)' % (expected, target.essid)
|
|
|
|
target = targets[2]
|
|
expected = 'Comma, Trailing space '
|
|
assert target.essid == expected, 'Expected ESSID (%s) but got (%s)' % (expected, target.essid)
|
|
|
|
target = targets[3]
|
|
expected = '"quote" comma, trailing space '
|
|
assert target.essid == expected, 'Expected ESSID (%s) but got (%s)' % (expected, target.essid)
|
|
|
|
# Hidden access point
|
|
target = targets[4]
|
|
assert target.essid_known == False, 'ESSID full of null characters should not be known'
|
|
expected = None
|
|
assert target.essid == expected, 'Expected ESSID (%s) but got (%s)' % (expected, target.essid)
|
|
assert target.essid_len == 19, 'ESSID length shold be 19, but got %s' % target.essid_len
|
|
|
|
|
|
def getFile(self, filename):
|
|
''' Helper method to parse targets from filename '''
|
|
import os, inspect
|
|
this_file = os.path.abspath(inspect.getsourcefile(self.getFile))
|
|
this_dir = os.path.dirname(this_file)
|
|
return os.path.join(this_dir, 'files', filename)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|