daniel comandos filtering tcpdump

filtering - comandos - Cómo filtrar la salida de tcpdump en función de la longitud del paquete



tcpdump ubuntu (1)

greater longitud funciona, pero tiene que usarla como parte de una expresión de filtro completa, y la expresión de filtro debe aparecer después de todos los argumentos de marca de línea de comando.

Ejemplo de trabajo:

tcpdump -n -i eth0 -A -x dst port 443 and greater 100

Debería funcionar: el dst port 443 and greater 100 es una expresión de filtro completa, que comprueba los paquetes que se envían al puerto TCP o UDP 443 y que tienen una longitud total (incluidos los encabezados de capa de enlace, IP y TCP) mayor que 100.

NO funciona ejemplo:

tcpdump -n -i eth0 dst port 443 -A -x greater 100

No funcionará: la dst en el dst port 443 se trata como el comienzo de una expresión de filtro, lo que significa que esta y todos los elementos posteriores, incluidos -A y -x , se tratan como parte de la expresión de filtro, pero -A y -x No son componentes válidos de una expresión de filtro. Se supone que están pensadas para ser opciones de línea de comandos, por lo que deben ir antes que todos los argumentos que no sean indicadores, incluidos los componentes de la expresión de filtro.

He estado tratando de filtrar la salida de tcpdump en función de la longitud de los paquetes. Pero no tuve suerte.

Esta es la salida simple para un comando;

tcpdump -n -i eth0 dst puerto 443 -A

17:03:30.866890 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [S], seq 2685064927, win 14600, options [mss 1460,sackOK,TS val 7028787 ecr 0,nop,wscale 4], length 0 E..<..@.@.......>K.<.0... ........9............ .k@3........ 17:03:30.867658 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 2285019097, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 0 E..4..@.@.......>K.<.0... ...2............. .k@3:..U 17:03:30.867928 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 0:171, ack 1, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 171 E.....@[email protected]....>K.<.0... ...2............. .k@3:..U...........Opw2.....l..".T.7.q.]h..8W..%.....H... .......9.8.......5... .....E.D.3.2...........A...../......... ...1.........alice.sni.velox.ch. .................#.. 17:03:30.869712 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 0 E..4..@.@.......>K.<.0... ...2.....6....... .k@4:..W 17:03:30.870724 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 171:178, ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 7 E..;..@.@.......>K.<.0... ...2.....6....... .k@4:..W......0

Quiero ver paquetes solo si tienen más de 100 bytes de longitud. Para este caso, solo el 3er paquete.

opciones [nop, nop, TS val 7028787 ecr 974439509], longitud 171

He mirado las páginas man para tcpdump, pero no pude encontrar ningún parámetro útil. Hay una expresión ''mayor longitud'' mencionada aquí; http://www.ethereal.com/docs/man-pages/tcpdump.8.html pero tampoco pude usar esa expresión.

$ tcpdump -n -i eth0 dst port 443 -A -x greater 100 tcpdump: syntax error

Gracias por cualquier ayuda.