在Acesspoint和Station之间区分Python-Scapy

时间:2018-10-25 04:49:47

标签: python wifi scapy 802.11

我想在通过python-scapy监听Wi-Fi流量时区分站点的接入点。

我在带有管理框架的802.11b / g / n上进行此操作,但是在5GHz(802.11ac / a)上却无法工作,因为我看不到iPhone X发送的任何管理框架,但是我确实看到了发送到两个方向的其他数据包,而没有办法区分哪个是wifi客户端和哪个是接入点。

发送数据包时,如何理解发送方是AP还是STA?

最佳

J

编辑:

```

通过AP从DS到STA 收件人地址:01:00:5e:7f:ff:fa [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

通过AP从DS到STA 收件人地址:01:00:5e:7f:ff:fa [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

通过AP从DS到STA 收件人地址:01:00:5e:7f:ff:fa [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

通过AP从DS到STA 收件人地址:01:00:5e:00:00:fb [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

通过AP从DS到STA 收件人地址:01:00:5e:00:00:fb [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

通过AP从DS到STA 收件人地址:01:00:5e:7f:ff:fa [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

通过AP从DS到STA 收件人地址:01:00:5e:7f:ff:fa [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

通过AP从DS到STA 收件人地址:01:00:5e:7f:ff:fa [STA] 发射器地址:a0:4f:d4:2a:f7:d2 源地址d8:8f:76:88:10:72

```

那就是我得到的结果。其中大多数是出于某种原因广播的

1 个答案:

答案 0 :(得分:1)

您可以像这样处理数据帧:

from scapy.all import *

pcap = rdpcap('test_data.pcap')
for pkt in pcap:
    if pkt.haslayer(Dot11) and pkt.type == 2: #Data frames
        DS = pkt.FCfield & 0x3
        toDS = DS & 0x01 != 0
        fromDS = DS & 0x2 != 0
        if toDS and not fromDS:
            print "From STA to DS via AP"
            print "Receiver Address: %s" % (pkt.addr1)
            print "Transmitter Address: %s" % (pkt.addr2)
            print "Destination Address: %s" % (pkt.addr3)
        if not toDS and fromDS:
            print "From DS to STA via AP"
            print "Receiver Address: %s" % (pkt.addr1)
            print "Transmitter Address: %s" % (pkt.addr2)
            print "Source Address %s" % (pkt.addr3)
        print "\n"