Para monitorear el tráfico HTTP entre un servidor y un servidor web, actualmente estoy usando tcpdump
. Esto funciona bien, pero me gustaría deshacerme de algunos datos superfluos en la salida (lo sé tcpflow
y wireshark
no están disponibles en mi entorno).
Desde la tcpdump
página del manual:
Para imprimir todos los paquetes HTTP IPv4 hacia y desde el puerto 80, es decir, imprimir solo los paquetes que contienen datos, no, por ejemplo, los paquetes SYN y FIN y los paquetes solo ACK.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Este comando
sudo tcpdump -A 'src example.com y tcp puerto 80 y (((ip [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
proporciona el siguiente resultado:
19: 44: 03.529413 IP 192.0.32.10.http> 10.0.1.6.52369: Banderas [P.], seq 918827135: 918827862, ack 351213824, win 4316, opciones [nop, nop, TS val 4093273405 ecr 869959372], longitud 727
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 200 OK Servidor: Apache / 2.2.3 (Red Hat) Tipo de contenido: texto / html; charset = UTF-8 Fecha: sábado, 14 de noviembre de 2009 18:35:22 GMT Edad: 7149
Duración del contenido: 438<HTML> <HEAD> <TITLE> Ejemplo de página web </TITLE> </HEAD> <body>
<p> Ha llegado a esta página web ... </p> </BODY> </HTML>
Esto es casi perfecto, excepto por la parte resaltada. ¿Qué es esto, final, más importante, cómo me deshago de él? ¿Tal vez es solo un pequeño ajuste a la expresión al final del comando?
tcp port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420
. Agregué una página al sitio web de Wireshark hace un tiempo que lo ayuda a crear filtros de captura de coincidencia de cadenas: wireshark.org/tools/string-cf.htmlEche un vistazo a ngrep : puede ser útil para usted.
como referencia para otros httpry [el servidor parece estar inactivo ahora pero espero que sea temporal] y tshark también son útiles para el análisis de protocolo pasivo, primero solo para http, segundo, para mucho más.
fuente
Prueba httpry o justniffer
Justniffer funciona bien en paquetes tcp reordenando retrasmisiones y fragmentación de ip
fuente
Sugeriría usar una línea de comando tcpdump tonta que almacena todo en un archivo pcap para el proceso posterior. Dependiendo de lo que esté buscando exactamente para diagnosticar, tcpflow funciona muy bien para volver a unir las comunicaciones de manera coherente para el análisis.
Se puede encontrar otra buena información que incluye algunos usos para httpry en: http://taosecurity.blogspot.com/2008/06/logging-web-traffic-with-httpry.html
fuente
¿El servidor web que está utilizando no produce registros? Seguramente sería una forma mucho mejor de monitorear el tráfico HTTP, hay una gran cantidad de herramientas para analizar los datos y cualquier servidor web competente debería producir registros confiables.
fuente
Hay varias herramientas disponibles en el mercado diseñadas especialmente para monitorear el tráfico HTTP. Fiddler2 ( http://www.fiddler2.org ) y HTTP Debugger Pro son ejemplos de tales herramientas.
fuente