Использование python/scapy для определения имен устройств
Я писал скрипт на Python, чтобы обнаруживать запросы зондов и распечатывать MAC-адрес устройства, производителя и SSID, для которого выполняется проверка. Теперь я хочу добавить функциональность, чтобы узнать имя устройства (например, Gio's Iphone 5) и распечатать его вместе с другими результатами.
if p.haslayer(Dot11ProbeReq):
mac = str(p.addr2)
if p.haslayer(Dot11Elt):
if p.ID == 0:
ssid = p.info
if ssid not in clients and ssid != "":
clients.append(ssid)
maco = EUI(mac)
macf = maco.oui.registration().org
print len(clients),mac+" ("+macf+") <--Probing--> "+ssid
f.write (str(len(clients))+" "+mac+" ("+macf+") //"+" <--Probing--> "+ssid+"\n")
if mac not in mach:
mach.append(mac)
uni+=1
Как я могу получить имя устройства с помощью Python/ Scapy? Я знаю сети, которые проверяют устройства, поэтому я могу подделать имя сети и попытаться подключиться и получить имя устройства таким образом. Но это кажется слишком длинным, есть ли другой способ сделать это? Может быть, создать пакет, хотя scapy, чтобы заставить устройство разглашать детали?
Любая помощь приветствуется!
Моя версия на python: 2.7.3 (по умолчанию, 13 марта 2014 г., 11:03:55) [GCC 4.7.2] Моя версия для Linux: ID распространителя:Kali Описание:Kali GNU/Linux 1.1.0 Release:1.1.0 Кодовое имя:moto Linux версия 3.18.0-kali3-amd64 gcc версия 4.7.2 Debian 4.7.2-5)) #1 SMP Debian 3.18.6-1~kali2 (2015-03-02)
1 ответ
Короче говоря: вы не получите имя устройства WiFi. Имя устройства никогда не отправляется в пределах фреймов 802.11 [ хорошее описание фреймов см. Здесь ].
Но вы можете использовать Bluetooth для архивирования получения имени устройства, но будьте осторожны: между bluetooth mac и mac адресом на стороне wifi нет общей связи.