
Estoy intentando reproducir el archivo pcap en el servidor HTTP. Antes de eso, intento verificar manualmente que estoy usando tcpreplay correctamente.
Empecé netcat -l 12345
a escuchar en un puerto específico. Llamémoslo "servidor" En otra máquina que ejecuté tcpdump
para capturar todo el tráfico con destino al puerto específico en el archivo dummy.pcap
. Después de eso ejecuto netcat en la máquina cliente, me conecto al "servidor" y envío varios mensajes. Revisé el pcap resultante tshark
y muestra que se capturaron los paquetes.
Inicié netcat en el servidor nuevamente y en el cliente inicié tcpreplay:
tcpreplay -d 5 -i eth0 -t dummy.pcap
Pero no aparece nada en la consola netcat del servidor. Intenté ejecutar tcpdump en el "servidor" y muestra que se recibieron paquetes.
¿Por qué los paquetes no aparecen en la consola netcat?
Respuesta1
TCPreplay reproducirá el tráfico EN un servidor pero en realidad no se "comunica" con los servidores debido a la naturaleza del protocolo TCP. Básicamente, su servidor recibe paquetes TCP pero nunca establece una conexión TCP real porque la repetición no completa el protocolo de enlace adecuado. Esta es la razón por la que no aparecen sesiones TCP en su netcat.
En mi experiencia, este tipo de tcpdump solo es útil para el análisis y si le preocupa reproducir una secuencia de comandos/datos, necesita encontrar una herramienta específica para su protocolo (en mi caso implicó escribir un cliente personalizado).
Ver¿Cómo grabar y reproducir interacciones http?
De tcpreplaywiki:
Enviar tráfico a un servidor
Problema
Tiene una captura de pcap y le gustaría reproducir ese tráfico en otro servidor.
Solución
En primer lugar, esto sólo funcionará con tráfico ICMP y UDP. Tcpreplay no admite el envío de tráfico TCP a un servidor porque no sincroniza los números Syn/Ack en el flujo TCP.
Dicho esto, deberá cambiar las direcciones IP y MAC de destino para que coincidan con las del servidor de destino. En este caso, asumiremos que la IP del servidor de destino es 10.10.1.1 y su dirección MAC es 00:01:02:03:04:05.
Y ellosPreguntas más frecuentes:
=== ¿tcpreplay admite el envío de tráfico a un servidor? === Si por ''servidor'' te refieres a un demonio (Unix) o servicio (Windows) que escucha en un puerto (un servidor web o de correo serían ejemplos comunes), entonces probablemente no. El mayor problema es que tcpreplay no comprende el estado de protocolos comunes como TCP. Esto significa que no puede sincronizar Syn/Ack para crear sesiones TCP válidas.