J'essaie d'utiliser un Raspberry Pi pour trouver des demandes ARP à partir d'un appareil sans fil spécifique sur mon réseau. C'est l'un de ces boutons de tableau de bord Amazon. Quelqu'un a utilisé ce code pour écouter lorsque le tableau de bord se connecte au wifi.
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
if pkt[ARP].hwsrc == '74:75:48:5f:99:30': # button 1
print "Pushed Huggies"
elif pkt[ARP].hwsrc == '10:ae:60:00:4d:f3': # button 2
print "Pushed Elements"
else:
print "ARP Probe from unknown device: " + pkt[ARP].hwsrc
print sniff(prn=arp_display, filter="arp", store=0, count=10)
Lorsque j'exécute cela sur Raspbian (avec python et scapy installés), j'obtiens une erreur
"IndexError: Layer [ARP] not found"
Je ne connais pas du tout la scapy et je plonge juste pour la première fois. Merci pour toutes les idées.
Réponses:
Moi aussi je fais la même chose. Ce que j'ai trouvé, c'est qu'il
tcpdump
n'était pas installé.Un simple a
sudo apt-get install tcpdump
corrigé cette erreur pour moi.la source
J'ai eu la même erreur, mais j'ai constaté que cela ne se produit pas de manière fiable, parfois il échoue immédiatement avec:
et parfois ça tourne pour toujours.
Astuce: défini
count=0
dans la ligne d'impression sniff pour qu'il s'exécute pour toujours, le nombre semble être dépassé.J'avais initialement installé scapy à partir du site Web, mais j'ai fini par faire:
et il semble fonctionner très bien quand il fonctionne. Je ne sais pas si j'avais besoin de tout ce qui précède, mais python-scapy les a recommandés (et un tas de routines graphiques) lorsque je l'ai installé.
Addenda: Chaque fois que je tripote le code, la probabilité qu'il s'exécute sans planter les modifications, il se passe donc quelque chose de vraiment bizarre.
la source
Nous avons eu le même problème ici, et il s'avère que nous avons oublié de vérifier une condition.
Ajoutez simplement cette ligne avant tous les blocs if:
la source
sur mon Raspy B 2012, il consomme> 50% du CPU.
J'ai essayé
sniff (filter = "tcp and port 123", prn = print_summary, store = 0)
J'ai redirigé les demandes du bouton Dash vers l'adresse IP de la machine sur laquelle Scapy s'exécute via mon pare-feu. L'idée était d'économiser des ressources et non de surveiller tout le trafic pour les adresses mac mais seulement de regarder les demandes de connexion sur le port.
Cela consomme environ 30% de CPU. Cela fonctionne sur une machine Ubuntu, mais sur un Raspi B, cela prend environ 5 minutes pour commencer à fonctionner, puis affiche les connexions de tout mon réseau - ce qu'il ne fait pas sur la machine Ubuntu. Je suppose que son image Raspy Musicbox est cassée.
la source