2015-05-07 5 views
8

Es scheint, dass die filter von sniff Funktion nicht ordnungsgemäß funktioniert.der Filter der Sniff-Funktion in Scapy funktioniert nicht richtig

Ich bin der sniff mit folgendem Filter

a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010") 

Aber einige Zeit die sniff fangen ein UDP Paket wie folgt ausführen:

>>> a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010") 
>>> a 
<Sniffed: TCP:0 UDP:1 ICMP:0 Other:0> 

Und einige Zeit die sniff Fang ein TCP-Paket mit falschen Anschlüsse:

>>> a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010") 
>>> a 
<Sniffed: TCP:1 UDP:0 ICMP:0 Other:0> 
>>> a[0] 
<Ether dst=00:26:55:cb:3b:10 src=00:22:64:55:c8:89 type=0x800 |<IP version=4L ihl=5L tos=0x10 len=92 id=8683 flags=DF frag=0L ttl=64 proto=tcp chksum=0x9484 src=192.168.1.71 dst=192.168.1.133 options=[] |<TCP sport=ssh dport=1874 seq=350107599 ack=2484345720 dataofs=5L reserved=0L flags=PA window=254 chksum=0x846b urgptr=0 options=[] |<Raw load="yn\x01\x9d\xfca\xc9V-8\x18|\xc4\t\xf1\xc4\xd8\xd3\xc6\x95E\x19'h\xc0\x89\xf1\x08g\xa3\x9a\xa9\xf51RF\xc2\x1f\xe5a\xac\x83M\xc9\x0b\x80\x85\x1b\xcf\xb6f\xcc" |>>>> 

Und einige Zeit die sniff ein ARP Paket wie diese fangen:

>>> a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010") 
>>> a 
<Sniffed: TCP:0 UDP:0 ICMP:0 Other:1> 
>>> a[0] 
<Ether dst=ff:ff:ff:ff:ff:ff src=00:22:07:2c:53:97 type=0x806 |<ARP hwtype=0x1 ptype=0x800 hwlen=6 plen=4 op=who-has hwsrc=00:22:07:2c:53:97 psrc=192.168.1.178 hwdst=ff:ff:ff:ff:ff:ff pdst=192.168.1.179 |<Padding load='\x00\x07\x00\x00\x00\x00\x00\x00p\x00\x00\x00\x00\x00\x01\x14\x00\x00' |>>> 

ich etwas in meinem Filter fehle? Wie kann ich dieses Problem vermeiden?

+0

Wilde Vermutung: Haben Sie ungewöhnliche Netzwerkschnittstellen auf der Maschine, wo Sie scapy laufen? Ich denke an die Grenzen der virtuellen Maschine (wie Virtualbox oder VMWare) Schnittstellen tun/tap oder so. Funktioniert es, wenn Sie "iface = eth0" (oder wie auch immer Ihre primäre Ethernet-Schnittstelle heißt) zur Parameterliste "sniff" hinzufügen? Beachten Sie, dass einige TCP-Pakete unter "Other" kategorisiert werden können. Verwenden Sie daher 'a.summary()' anstelle von 'a', um das Ergebnis zu überprüfen. – Wintermute

+0

@Wintermute Ich habe 'iface =" eth0 "' verwendet, aber immer habe ich die gleichen Probleme – MOHAMED

+1

Haben Sie 'tcpdump' installiert? Gibt 'scapy -d' irgendwelche Warnungen? – Wintermute

Antwort

-1

Ich hatte das gleiche oder ein ähnliches Problem - der Sniff-Filter hat nicht funktioniert.

Die Installation von TCPDPump löste das Problem für mich.

0

Ich hatte das gleiche Problem mit Centos auf VM. Ich habe IP-Host für Filter anstelle von Host verwendet. Das scheint das Problem in meinem Fall gelöst zu haben.

Falsche Filter #

>>> packets = sniff (filter = "host 176.96.135.80", count =2, iface = "eth0", timeout =10) 
>>> packets.summary() 
Ether/IP/UDP 172.7.198.136:netbios_ns > 172.7.199.255:netbios_ns/NBNSQueryRequest 
Ether/IP/TCP 176.96.135.80:53527 > 172.7.19.58:ssh A/Padding 

Fix #

>>> packets = sniff (filter = "ip host 176.96.135.80", count =2, iface = "eth0", timeout =10) 

hatte keine Probleme danach.

Verwandte Themen