Capturando (solo 1x) Solicitud POST HTTP [tcpdump]

2

De vez en cuando;
Me gusta encender tcpdump y simplemente observar el tráfico de la red a medida que los paquetes fluyen.

Por ejemplo:

user@host:~$ sudo tcpdump -Aevvv

Se analizará & imprima todo el tráfico de la red local en la salida estándar, en tiempo real, en lugar de escribir (guardar) en un archivo. Es genial para echar un vistazo rápido a lo que está sucediendo en la red local.

No es raro encontrar paquetes que lleguen en cantidades mayores / a velocidades más altas de lo que es cómodo analizar y / o leer. En tales casos, normalmente indico un host de destino deseado como este:

user@host:~$ sudo tcpdump -Aevvv host security.stackexchange.com

Obviamente, el host de destino deseado en este ejemplo es security.stackexchange.com . Esto es por ninguna otra razón que no sea la primera en llegar a la mente y, por supuesto, puede configurarse para cualquier host que desee. El uso del filtro host puede limpiar los resultados bastante bien, pero me gustaría ir un paso más allá y especificar ciertos tipos de HTTP Solicitud web como HEAD, GET, POST , & etc.

Para continuar con el espíritu de nuestro ejemplo, me gustaría especificar una regla tcpdump paquete-filtro para capturar Solicitudes HTTP POST; para demostrar lo que está sucediendo entre bambalinas al enviar contenido a un host remoto como security.stackexchange.com .

Esa es mi pregunta: (Cuando se usa tcpdump ..)
¿Cómo puedo especificar un filtro para la solicitud POST? solo paquetes?

    
pregunta tjt263 20.09.2015 - 06:50
fuente

1 respuesta

3

No puedes por varias razones:

  • tcpdump no tiene idea de los protocolos de nivel de aplicación.
  • El hecho de que se trata de una conexión TCP que contiene una POST solo se conoce después de que TCP se haya completado, es decir, perderá la configuración de la conexión o necesitará capturar todo y almacenarlo en algún lugar en caso de que resulte ser un POST más tarde.
  • Puede haber varias solicitudes HTTP dentro de una conexión TCP y la POST podría no ser la primera.

Tenga en cuenta que puede intentar capturar solo los paquetes que comienzan con "POST" como se propone en una respuesta diferente. Pero, esto también capturará otros paquetes que comiencen con POST (y no solo las solicitudes POST), no capturará la carga útil en la mayoría de los casos (solo si es realmente pequeño y está contenido en el mismo paquete) y no capturará la respuesta. / p>

En su lugar, recomiendo capturar todo el tráfico que pueda contener un POST y luego filtrar el tráfico capturado usando wireshark / tshark, consulte enlace

    
respondido por el Steffen Ullrich 20.09.2015 - 07:20
fuente

Lea otras preguntas en las etiquetas