Python-Scapy Различают между точкой доступа и станцией - PullRequest
0 голосов
/ 25 октября 2018

Я хочу различать точки доступа к станциям при прослушивании трафика Wi-Fi через python-scapy.

Я делаю это через 802.11b / g / n с кадрами управления, но это не работаетболее 5 ГГц (802.11ac / a), поскольку я не вижу никаких кадров управления, отправленных с моего iPhone X, но я вижу другие пакеты, которые отправляются в обоих направлениях, не имея возможности определить, какой из них является клиентом Wi-Fi, а какой -точка доступа.

Когда отправляется пакет, как понять, является ли отправитель точкой доступа или STA?

Best

J

EDIT:

`` `

От DS к STA через точку доступа получателя AP: 01: 00: 5e: 7f: ff: fa [STA] Адрес передатчика: a0: 4f: d4: 2a:f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

От DS к STA через AP Получатель Адрес: 01: 00: 5e: 7f: ff: fa [STA] Адрес передатчика: a0:4f: d4: 2a: f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

От DS к STA через AP Получатель Адрес: 01: 00: 5e: 7f: ff: fa [STA] Адрес передатчика: a0: 4f: d4: 2a: f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

От DS к STA через AP Получатель Адрес: 01: 00: 5e: 00: 00: fb [STA] Адрес передатчика: a0: 4f:d4: 2a: f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

От DS к STA через AP Приемник Адрес: 01: 00: 5e: 00: 00: fb [STA] ПередатчикАдрес: a0: 4f: d4: 2a: f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

От DS до STA через AP. Получатель Адрес: 01: 00: 5e: 7f: ff: fa [STA] Адрес передатчика: a0: 4f: d4: 2a: f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

От DS к STA через AP. Адрес получателя: 01:00: 5e: 7f: ff: fa [STA] Адрес передатчика: a0: 4f: d4: 2a: f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

От DS к STA через APАдрес получателя: 01: 00: 5e: 7f: ff: fa [STA] Адрес передатчика: a0: 4f: d4: 2a: f7: d2 Адрес источника d8: 8f: 76: 88: 10: 72

`` `

Вот результат, который я получаю.большинство из них почему-то транслируются

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете обрабатывать кадры данных следующим образом:

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"
...