2016-09-02 4 views
1

Ich habe Aufnehmen das folgenden Programme ausgeführt (schließlich nach der Installation von libnet usw.) auf meinem Mac versucht, für eine Dash-Taste der MAC-Adresse zu hören:scapy keine einzige ARP-Anfrage

from scapy.all import * 

def arp_display(pkt): 
    if pkt[ARP].op == 1: #who-has (request) 
    if pkt[ARP].psrc == '0.0.0.0': # ARP Probe 
     print ("ARP Probe from: " + pkt[ARP].hwsrc) 

print (sniff(prn=arp_display, filter="arp", store=0, count=300)) 

Dies ist jedoch nur läuft auf unbestimmte Zeit und Auch nach zahlreichen Drücken auf den Dash und vielen anderen Geräten wird nichts mehr auf- und abgeklemmt.

Ich versuchte, das zu folgenden

from scapy.all import * 

print (sniff(filter="arp",count=10).summary()) 

Welche auch keine Ergebnisse liefert. Nichts, was ich online finde, sagt mir, was das verursachen könnte.

Irgendwelche Ideen? Oder wie könnte ich debuggen?

+0

Sie müssen Ihren Wi-Fi-Adapter in den Überwachungsmodus versetzen. Dies verhindert, dass Sie es während des Zeitraums, in dem Sie es im Überwachungsmodus haben, als normale Netzwerkverbindung verwenden. –

+0

Müsste ich es die ganze Zeit im Monitor-Modus halten – NickP

+0

Sie können nur im Monitor-Modus die Luft schnüffeln. Wenn Sie mit dem Sniffing fertig sind, können Sie den Monitor-Modus beenden. –

Antwort

2

Die neuen Schaltflächen geben nicht die gleiche ARP-Anforderung aus wie die alten. Entfernen Sie diese Zeile und es sollte funktionieren.

if pkt[ARP].psrc == '0.0.0.0': # ARP Probe 
+0

"0.0.0.0" ist ein wesentlicher Bestandteil von ARP und hat nichts damit zu tun, dass der Dash-Button eine spätere Revision hat. Die Taste, wie sie nach einem Drücken hochfährt, muss sicherstellen, dass ihre MAC-Adresse eindeutig ist und sendet so eine Sendung (auch "an das gesamte Netzwerk" aka "an 0.0.0.0") eine ARP, die Anfrage hat. Führen Sie in Linux "sudo tcpdump -e -i eth0 arp" aus, um diese Broadcast-Ereignisse zusammen mit Antworten anzuzeigen. Ich habe Gesprächstasten gekauft gestern, und sie alle tun dies. Ich denke, das Problem liegt tiefer in der Scapy-Bibliothek, da ich gerade verschiedene Dinge in meinem tcpdump und in scapy sehe. – belial

+0

Ok, ich werde ein wenig auf meinen früheren Kommentar zurückgehen. Es scheint, dass der Dash einen Cache der IP-Adresse enthält, die er zuletzt von DHCP erhalten hat, und verwendet diesen. Wenn Sie diese Zeile entfernen, sehen Sie das Paket. Zusätzlich können Sie auf oberster Ebene "if pkt.haslayer (ARP):" hinzufügen, um zuerst nach ARP-Paketen zu suchen. Ich habe viele "IndexError: Layer [ARP] nicht gefunden" -Ausnahmen bekommen, und das macht das klar. – belial