В kismet предусмотрено использование баз данных wireshark для указания связи MAC к имени производителю чипов. Если по какой-то причине(например при сборе данных о сетях в системе не был установлен wireshark (wireshark-common) с соответствующей базой данных, можно использовать данный скрипт для пост-модернизации базы данных giskismet с целью добавить название производителя по собранным сетям.
UPD:
если преобразовать текстовый файл в словарь и работать с данными записанными в словарь можно увеличить производительность программы минимум на 50%:
Последнюю версию базы данных MAC адресов можно скачать на сайте wireshark:
https://www.wireshark.org/tools/oui-lookup.html
mac_ database.txt
mergedb.py
import sqlite3 import codecs #Подключаемся к базе данных сгенерированной giskismet con = sqlite3.connect('wireless.dbl') cur = con.cursor() cur.execute("SELECT id,BSSID FROM wireless") rows = cur.fetchall() #Функция которая открывает базу данных MAC адресов для сверки с MAC из базы данных #Если находит совпадения вносит соответствие в поле Manuf (производитель) def ScanData(f,i): filetxt = codecs.open("mac_database.txt", 'r', 'utf-8') for line in filetxt: if f==line.split(" ")[0]: print (clmac+" vendor: "+line.split(" ")[1]) cur.execute("UPDATE wireless SET Manuf=? WHERE id=?", (line.split(' ')[1], i)) con.commit() filetxt.close #Построчно считываем MAC адреса из БД и применяем к ним функцию выше for row in rows: mac=row[1] i=row[0] clmac=mac[:8] ScanData(clmac,i)
UPD:
если преобразовать текстовый файл в словарь и работать с данными записанными в словарь можно увеличить производительность программы минимум на 50%:
import sqlite3 import codecs con = sqlite3.connect('wireless.dbl') cur = con.cursor() cur.execute("SELECT id,BSSID FROM wireless") rows = cur.fetchall() d = {} for line in open('mac_database.txt'): line = line.split(" ") d[line[0]]= line[1] def ScanData(f,i): for line in d: if f==line: print (clmac+" vendor: "+d[line]) cur.execute("UPDATE wireless SET Manuf=? WHERE id=?", (d[line], i)) con.commit() for row in rows: mac=row[1] i=row[0] clmac=mac[:8] ScanData(clmac,i)
Последнюю версию базы данных MAC адресов можно скачать на сайте wireshark:
https://www.wireshark.org/tools/oui-lookup.html
mac_ database.txt
mergedb.py
Комментариев нет:
Отправить комментарий