Ncat
Ncat en Linux
Section titled “Ncat en Linux”¿Qué hace ncat?
Section titled “¿Qué hace ncat?”ncat (o Ncat) es la versión moderna de netcat incluida con Nmap. Es una herramienta de línea de comandos para leer/escribir datos a través de conexiones TCP o UDP, con muchas mejoras: soporte SSL/TLS, proxys, ejecución remota de comandos, modo servidor/cliente, reconexiones, y más. Es el “cuchillo suizo” de redes pero con opciones extra de seguridad y flexibilidad.
Usos típicos
Section titled “Usos típicos”- Conectar a un puerto remoto (cliente).
- Poner un puerto en escucha (servidor).
- Transferir archivos entre máquinas.
- Crear shells remotos / reverse shells (solo en entornos controlados).
- Tunelizar con SSL/TLS o a través de proxies.
- Depuración y pruebas de red (chat, eco, escaneo, etc.).
Opciones comunes (útiles y seguras)
Section titled “Opciones comunes (útiles y seguras)”- -l : escuchar (modo server).
- -p <puerto> : especificar puerto local.
- -u : usar UDP en lugar de TCP.
- -v / -vv : verbose (más información de debug).
- -k : mantener el listener abierto para múltiples conexiones (keep-open).
- -n : no resolver DNS (usar solo IPs).
- -z : modo “scan” / zero-I/O (suele usarse para chequear puertos).
- —ssl : asegurar la conexión con TLS/SSL.
- —send-only / —recv-only : solo enviar o solo recibir (útil en transferencias).
- —proxy <host:puerto> y —proxy-type socks4, socks5, http : conectar a través de un proxy.
- —exec <comando> o -e <programa> : ejecutar un comando al conectar (p.ej. crear una shell remota).
ATENCIÓN: usar con extremo cuidado — esto permite ejecución remota y es peligroso sí se habilita en producción sin control.
Nota: Ncat tiene muchas más opciones (certificados TLS, límites de tasa, timeouts). Consulta ncat --help o man ncat para la lista completa en tú versión.---
Ejemplos prácticos
Section titled “Ejemplos prácticos”Cliente simple (TCP)
Section titled “Cliente simple (TCP)”ncat 192.168.1.10 8080Servidor que acepta una conexión
Section titled “Servidor que acepta una conexión”ncat -l -p 8080Servidor que acepta múltiples conexiones (keep-open)
Section titled “Servidor que acepta múltiples conexiones (keep-open)”ncat -l -k -p 8080UDP (cliente y servidor)
Section titled “UDP (cliente y servidor)”Servidor UDP:
ncat -u -l -p 6000Cliente UDP:
ncat -u 192.168.1.10 6000Transferir archivo (cliente -> servidor)
Section titled “Transferir archivo (cliente -> servidor)”Servidor (recibe):
ncat -l -p 9000 > recibido.binCliente (envía):
ncat 192.168.1.20 9000 < archivo.binConexión cifrada SSL/TLS (cliente)
Section titled “Conexión cifrada SSL/TLS (cliente)”ncat --ssl ejemplo.com 443Usar proxy SOCKS5
Section titled “Usar proxy SOCKS5”ncat --proxy 10.0.0.1:1080 --proxy-type socks5 ejemplo.com 80Ejecutar comando remota (solo en entornos controlados)
Section titled “Ejecutar comando remota (solo en entornos controlados)”Servidor (escucha y ejecuta /bin/bash cuando alguien conecta):
ncat -l -p 4444 --exec "/bin/bash" -kCliente (conecta y obtiene shell):
ncat 192.168.1.20 4444Nunca hagas esto en máquinas expuestas sin autorización.
Seguridad y buenas prácticas
Section titled “Seguridad y buenas prácticas”- —exec / -e y reverse shells son poderosas pero peligrosas: úsalas solo en entornos de laboratorio o con permiso explícito.
- Sí necesitas acceso remoto legítimo, prefiere SSH o túneles TLS con autenticación.
- Sí usas —ssl, verifica certificados cuando sea necesario (no deshabilites comprobaciones sin entender riesgos).
- Limita escucha a interfaces específicas (-l -s <ip>) sí tú ncat lo soporta, o usa firewall para restringir accesos.
- Mantén ncat actualizado (la implementación viene con Nmap).