2012-03-26 20 views
18

He intentado filtrar la salida de tcpdump en función de la longitud de los paquetes. Pero no tuve suerte.Cómo filtrar la salida de tcpdump en función de la longitud del paquete

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..<[email protected]@.......>K.<.0... 
........9............ 
[email protected] 


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 
[email protected]@.......>K.<.0... 
...2............. 
[email protected]:..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 
[email protected]@..f....>K.<.0... 
...2............. 
[email protected]:..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 
[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..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..;[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..W......0 

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

opciones [nop, nop, TS val 7028787 ECR 974 439 509], longitud 171

He mirado páginas del manual de tcpdump, pero no pudo encontrar ningún parámetro útil. hay una expresión 'mayor longitud' aquí mencionada; http://www.ethereal.com/docs/man-pages/tcpdump.8.html pero no pude usar esa expresión también.

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

Gracias por cualquier ayuda.

Respuesta

26

greaterlongitud obras, pero hay que utilizarlo como parte de una expresión de filtro completa, y la expresión de filtro tiene que venir después de todo los argumentos bandera de línea de comandos.

ejemplo de trabajo:

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

debe trabajar - dst port 443 and greater 100 es una expresión de filtro completa, que comprueba para los paquetes que están siendo enviados a TCP o UDP puerto 443 y que tienen una longitud total(incluyendo la capa de enlace, IP y cabeceras TCP) superior a 100.

NO trabajando ejemplo:

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

no funciona - el dst en dst port 443 se trata como el comienzo de una expresión de filtro, lo que significa que él y todo después de ella, incluyendo-A y -x, son tratados como parte de la expresión de filtro, pero -A y -x no son componentes válidos de una expresión de filtro. Presumiblemente, están destinadas a ser opciones de línea de comandos, por lo que deben ir a antes de todos los argumentos no de marca, incluidos los componentes de la expresión de filtro.

Cuestiones relacionadas