jueves, 25 de septiembre de 2008

Capturar y redirigir tráfico con netcat

Cuando estamos comprobando el estado de la red o depurando el funcionamiento de un protocolo viene muy bien el comando netcat.

Una redirección de un puerto a otro con netcat se hace de la siguiente forma.

nc -l -p 5000 | nc localhost 5001

De esa forma se reenvía lo que llegue al puerto 5000 hasta el 5001.

Si agregamos el parámetro -o además podemos registrar el tráfico saliente.

nc -l -p 5000 -o log.txt | nc localhost 5001

La respuesta saldrá por consola, si tenemos una aplicación que se conecta a un host remoto y queremos saber que envía y que recibe de ese host lo podemos hacer de la siguiente forma.

iptables -t nat -A OUTPUT -p tcp -d host_remoto -j DNAT --to-destination 127.0.0.1:5000

nc -l -p 5000 -o log.txt | nc host_remoto puerto_remoto

Con esto redirigiremos todo el tráfico saliente a host_remoto a nuestro puerto 5000, guardaremos la petición en log.txt y volveremos a enviarlo a host_remoto, la respuesta a la petición nos aparecerá por consola.

0 comentarios: