python - instalar - el filtro de la función sniff en Scapy no funciona correctamente
scapy python 3 (3)
Parece que el filter
de la función de sniff
no funciona correctamente.
Estoy ejecutando el olfateo con el siguiente filtro
a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010")
Pero, en algún momento, el sniff
atrapa un paquete UDP
como este:
>>> 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>
Y a veces el sniff
captura un paquete TCP con puertos incorrectos:
>>> 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" |>>>>
Y en algún momento el sniff
atrapa un paquete ARP
como este:
>>> 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'' |>>>
¿Me estoy perdiendo algo en mi filtro? ¿Cómo puedo evitar este problema?
Tuve el mismo problema o uno similar: el filtro de inhalación no funcionó.
La instalación de tcpdump resolvió el problema para mí.
Puede consultar la sintaxis de los filtros en el siguiente sitio http://biot.com/capstats/bpf.html . Estaba enfrentando problemas similares y funcionó para mí.
Puede hacer referencia a esta pregunta: https://.com/questions/37453283/filter-options-for-sniff-function-in-scapy# =
También puede intentar probar su programa abriendo los puertos necesarios antes de ejecutar el código.
Tuve el mismo problema con Centos en VM. Usé el host ip para el filtro en lugar del host. Eso parece haber solucionado el problema en mi caso.
Filtro incorrecto #
>>> 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
Fijar#
>>> packets = sniff (filter = "ip host 176.96.135.80", count =2, iface = "eth0", timeout =10)
No tuve ningún problema después de esto.