0
所以這是我的腳本:如何使用Scapy的從探測請求中提取供應商的數據
#!/usr/bin/env python
import sys
from scapy.all import *
from subprocess import *
call(["clear"])
print "Probe Investigator"
print "-----------------------------------------------------"
intf = raw_input("Enter the Name of the interface to sniff: ")
print ("\n")
clients = []
uni = 0
mach = []
def phandle(p):
if p.haslayer(Dot11ProbeReq):
mac = p.addr2
if p.haslayer(Dot11Elt):
if p.ID == 0:
ssid = p.info
if ssid not in clients and ssid != "":
clients.append(ssid)
print len(clients),mac+"--Probing-->"+ssid
if mac not in mach:
mach.append(mac)
global uni
uni+=1
else:
return
sniff(iface=intf,prn=phandle, store=0)
print ("\n")
print "Unique MACs: ",uni
正如你所看到的,我對過濾探測請求,並過濾,看看是否請求不被播出但適用於特定的SSID。我分析在的Wireshark探測請求以看到,這樣的探針也有一個標籤在Dot11ELt
層指定供應商沒有。如果我只是改變了p.ID == 0
聲明p.ID == 221
那麼就應該在技術上給我的供應商信息,而是劇本只是掛起,從來沒有與腳本的其餘部分向前移動。
我如何提取從包供應商信息?
我的Python版本: 2.7.3(默認情況下,2014年3月13日,11點03分55秒)[4.7.2 GCC] 我的Linux版本:分銷商ID:卡利 描述:卡利的GNU/Linux 1.1.0 版本:1.1.0 代號:摩托 Linux版本的 3.18.0-kali3-AMD64 gcc版本4.7.2 Debian的4.7.2-5))#1 SMP的Debian 3.18.6-1〜 kali2(2015年3月2日)
好了,所以我現在就可以到達信息層,但它是用什麼我雖然是十六進制編碼,但事實並非如此。我將如何決定? –
你得到了什麼,你期望得到什麼? _wireshark_如何解析完全相同的數據? – Yoel
井Wireshark的標籤ID 221顯示蘋果或博通作爲製造商,而如果我看同樣的包在Scapy的dot11elt與標籤221或供應商給我看了編碼數據。 –