Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos). Fue originalmente desarrollada por Hobbit en 1996 y liberada bajo una licencia de software libre permisiva (no copyleft, similar a BSD, MIT) para UNIX. Posteriormente fue portada a Windows y Mac OS X entre otras plataformas. Existen muchos forks de esta herramienta que añaden características nuevas como GNU Netcat o Cryptcat.

netcat
Información general
Tipo de programa Utilidad de red
Lanzamiento inicial 28 de octubre de 1995
Licencia GNU GPL
Información técnica
Plataformas admitidas Microsoft Windows
Versiones
Última versión estable 0.7.1 ( 10 de enero de 2004)
Enlaces

Entre sus múltiples aplicaciones, es frecuente la depuración de aplicaciones de red. También es utilizada a menudo para abrir puertas traseras en un sistema.

Funcionamiento básico

editar

La forma más básica de operar de netcat consiste en:

  • Crear un socket para conectarse a un servidor (o bien para hacer de servidor)
  • Enviar todo lo que entre por la entrada estándar por el socket
  • Sacar por la salida estándar todo lo recibido por el socket

Parámetros

editar

A continuación se listan algunos de los parámetros más usados con Netcat:

  • -l: Indica que Netcat abre el puerto para Escucha (Listen): Acepta una única conexión de un Cliente y se cierra.
  • -p: Especifica el puerto.
  • -k: Fuerza a que el puerto permanezca abierto tras haber recibido una Conexión. Se usa con el parámetro -l y permite infinitas Conexiones.
  • -u: El puerto abierto se abre como UDP, en vez de TCP que es la opción por defecto.
  • -v: Muestra información de la conexión.
  • -t: Las respuestas son compatibles para sesiones de Telnet.
  • -q segundos: Tras haber recibido el EOF de la Entrada de datos, espera los segundos indicados para enviarla.
  • -i segundos: Especifica un delay (retraso) de tiempo para el envío o recepción de las líneas de texto.

Ejemplos

editar

Abrir nueva conexión al puerto 25 (como telnet):

nc mail.server.net 25.

Abrir una conexión para enviar un Archivo de manera RAW (Binario) a un Cliente:

cat ARCHIVO | nc -l PUERTO

Abrir una conexión y volcar la Información recibida en ARCHIVO (Cliente del Ejemplo anterior):

nc HOST PUERTO > ARCHIVO

Simular una Respuesta HTTP (austera) a un Cliente que se conecta con un navegador web (https://web.archive.org/web/19961229112017/http://localhost/):

echo -en "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\<h1>Hola Mundo</h1>" | nc -l -p 80

Véase también

editar

Enlaces externos

editar