Error de sintaxis de tcpdump al especificar portrange como está documentado

Error de sintaxis de tcpdump al especificar portrange como está documentado

Estoy usando tcpdump en OpenBSD e intento aprenderlo de unimprimación sobre ello.

Quiero capturar una variedad de puertos, pero parece que la forma de hacerlo ha cambiado. Ni siquiera puedo encontrar portrange como palabra clave en la página del manual que también sugiere esto.

# tcpdump portrange 100-65535 
tcpdump: syntax error

No es una cosa:

# man tcpdump | grep portrange
# 

Supongo que esto ha cambiado o es diferente en OpenBSD. Si alguien pudiera decirme qué hacer para esto, ya que mis primeras lecciones vamos a ser con algo práctico, sería genial. Sería incluso mejor si alguien me informara sobre un manual actualizado sobre tcpdump.

OpenBSD viene con su propio tcpdump que podría ser una bifurcación, no estoy muy seguro.

Respuesta1

portrangeno está en el filtro pcap de OpenBSD, pero puedes falsificarlo.

tcpdump -i em0 tcp[2:2] > 79 and tcp[2:2] < 85

Puede abordar partes de los paquetes y compararlas. El primer número se desplaza en el paquete (comenzando en cero) y el segundo número es cuántos bytes usar. Entonces, el ejemplo anterior coincide con cualquier paquete tcp con un puerto de destino de 80 a 84. También puede usar <= y >= para hacer las cosas más intuitivas.

La comparación con el puerto de origen sería tcp[0:2]. En realidad, UDP sería lo mismo ya que los puertos tienen las mismas compensaciones.

Respuesta2

Los filtros de visualización son manejados por libpcap, y OpenBSD tiene sus propios libpcap y tcpdump, que no necesariamente recogen los cambios de libpcap y tcpdump de tcpdump.org.

Si portrangeno funciona, su soporte es probablemente una de las cosas que OpenBSD no adquirió.

Respuesta3

man pcap-filterno deberías usarman tcpdump

De acuerdo a man pcap-filter:

dst portrange port1-port2
              True  if  the packet is ip/tcp, ip/udp, ip6/tcp or ip6/udp and has a destination port value between port1 and port2.  port1 and port2 are interpreted
              in the same fashion as the port parameter for port.


   src portrange port1-port2
          True if the packet has a source port value between port1 and port2.

   portrange port1-port2
          True if either the source or destination port of the packet is between port1 and port2.

          Any of the above port or port range expressions can be prepended with the keywords, tcp or udp, as in:
               tcp src port port
          which matches only tcp packets whose source port is port.

información relacionada