Netcat: la navaja suiza

Netcat es una herramienta gratuita que para los administradores de sistemas/redes resulta imprescindible. Puede correr en multitud de plataformas y desde luego está para las más comunes (sistemas Microsoft Windows, UNIX y derivados). Podemos descargarla desde aquí .
Se trata de una herramienta que permite enviar/recibir datos a través de conexiones de red utilizando TCP o UDP. Indistintamente trabaja como servidor o cliente.
Se muestra superior a telnet para los habituales testeos de demonios por entre otras razones:
- Telnet presenta el problema de la entrada estandard EOF. Netcat no.
- Telnet no permite transferir datos en binario porque se pueden interpretar como caracteres especiales. Netcat sí.
- Telnet mezcla datos de diagnóstico con los propios de la salida estandard. Netcat no.
- Telnet no puede escuchar para conexiones entrantes. Netcat sí.
- Telnet no puede utilizar UDP. Netcat sí.
- Netcat es más pequeño y más rápido que telnet.
Puede ser desde luego utilizado para el bien o para el mal. Veamos algunos ejemplos de su uso (para mayor información leer el README que viene con el programa y mirar en el directorio scripts los ejemplos que incluye):
- Realizar un simple chat.
En la estación 1 ejecutamos: nc -l -p 1234, esto hace que un servidor escuche (-l) en el puerto 1234 (-p).
En la estación 2 ejecutamos: nc estacion1 1234, esto hace que se conecte a la estacion1 al puerto 1234. A partir de ahí todo lo que se teclee será visto por ambas.
- Testeo de puertos abiertos.
Ejecutar nc -vv ip_maquina_testear inicio-fin, donde -vv hace que muestre información detallada, maquina_testear es la IP o nombre de la máquina a testear, inicio es el número de puerto de inicio y fin el de fin del testeo.
- Transferencia de archivos.
En la estación 1 ejecutamos: nc -l -p 1234 > fichero
En la estación 2 ejecutamos: cat fichero | nc estacion1 1234
Esto hará que desde la estacion2 pasemos fichero a la estacion1 a través del puerto 1234.
- Ejecución de programas.
En la estación 1 ejecutamos: nc -l -p 1234 -e ‘/bin/ls’
En la estación 2 ejecutamos: nc estacion1 1234
Esto hace que cuando la estacion 2 se conecte al puerto 1234 de la estación 1 se ejecute un ls de la primera. Se puede utilizar para ejecutar una shell por ejemplo también.

12.21.2005 a las 2:08 pm
Felicidades. Senzillo, bien explicado, bien resumido, y ademas funciona todo, jeje