Cuando estaba trabajando en un entorno de redes de una empresa, tuve que probar la conectividad entre dos sistemas, enviar datos y depurar servicios. Fue una de esas situaciones en las que busqué una solución simple pero efectiva y la encontré en la navaja suiza de las redes, Netcat. He quedado fascinado con su flexibilidad y ligereza para realizar tareas simples como transferir archivos, hasta otras más complejas como crear servidores o explorar puertos.
Conoce el pentesting para entender qué es Netcat
Antes de entrar de lleno en lo que es Netcat, es necesario que conozcas un poco sobre el pentesting, especialmente en aplicaciones web. El pentesting, o test de penetración, es una técnica esencial en el hacking ético, que busca imitar ataques cibernéticos reales para evaluar la seguridad de una aplicación.
No necesitas ser un desarrollador para hacerlo, aunque te ayudaría, pero sí es crucial tener nociones sobre los protocolos de navegación web, como HTTP y HTTPS. Estos protocolos funcionan en una estructura de servidor-cliente, donde el cliente manda peticiones y el servidor responde. La gran diferencia entre HTTP y HTTPS es que este último cifra la comunicación para aumentar la seguridad.
¿Qué es Netcat?
Ahora sí, Netcat, comúnmente conocido como “nc”, es una herramienta de línea de comandos que se utiliza para leer, escribir y gestionar conexiones de red utilizando el protocolo TCP o UDP. Fue desarrollado originalmente para sistemas operativos tipo Unix, pero versiones de Netcat también están disponibles para sistemas operativos Windows y otras plataformas.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaNetcat permite conectarse con un servidor HTTP sin necesidad de hacerlo por medio de un navegador. De hecho, permite ver la comunicación con el servidor en RAW, es decir, en su lenguaje HTML.
Además, es muy conocido por su versatilidad y se le llama a veces el “cuchillo suizo de la red”.
¿Para qué sirve Netcat? Conoce sus usos
Transferencia de archivos entre sistemas
Te muestro cómo mover un archivo de un equipo a otro, solo con un comando.
En el servidor receptor (equipo B):
nc -l -p 6790 > archivo.txt
En el cliente emisor (equipo A):
nc [dirección IP de equipo B] 6790 < archivo.txt
Mira que el archivo archivo.txt se transfiere del equipo A al equipo B sin necesidad de que hagas configuraciones complicadas.
Escaneo de puertos
Aquí te muestro cómo escanear puertos abiertos en un dispositivo para identificar servicios en ejecución o posibles vulnerabilidades.
nc -v -z -w 2 192.168.11.1 1-1024
Este comando hace lo siguiente:
- Escanea puertos del 1 al 1024.
- Usa la opción
-v
para obtener detalles adicionales. - La opción
-z
asegura que Netcat solo verifique los servicios abiertos sin enviar datos.
Comunicación directa (Chat simple)
Te explico cómo establecer un canal de comunicación TCP o UDP simple entre dos computadoras, como una aplicación de chat básica.
En el sistema que actúa como receptor:
nc -l -p 1605
En el sistema emisor:
nc [dirección IP del receptor] 1605
Ambos equipos pueden intercambiar mensajes directamente a través de la conexión establecida.
Servidor web simple
Así lo puedes configurar como un servidor web básico para responder solicitudes con un archivo HTML predefinido.
nc -l -v -p 8080 -w 10 < pagina.html
Lo que hace este comando:
- Escucha solicitudes en el puerto 8080.
- Responde con el contenido del archivo
pagina.html
. - Termina la conexión después de 10 segundos de inactividad (
-w 10
).
Clonación de particiones o discos
También puedes clonar discos completos o particiones individuales mediante su capacidad de copiar datos en bruto.
En el receptor (destino):
nc -l -p 9000 | dd of=/dev/sdX
En el emisor (origen):
dd if=/dev/sdX | nc [dirección IP del receptor] 9000
Este proceso transfiere los datos del disco de un sistema a otro.
Depuración de redes
Úsalo para depurar y diagnosticar problemas de conectividad o transferencia de datos, aprovechando su opción de habilitar la depuración.
nc -v -D -z 192.168.11.1 22
Este comando proporciona detalles sobre el estado de la conexión al puerto 22 (normalmente SSH).
Funciones de Netcat que debes aprender
Para activar la herramienta en Kali Linux y aprender de primera mano qué es Netcat, abre un terminal en cualquier directorio del sistema. Para verificar que el programa esté instalado, usa el comando:
//Qué es Netcat which nc
Si la ruta donde se encuentra el programa instalado aparece en pantalla, significa que está listo para ejecutarse. Para ver la lista de comandos de Netcat y conocer sus funciones, ejecuta el comando:
//Qué es Netcat nc -h
Ese comando te mostrará todas las funciones de Netcat. Algunas de ellas incluyen avisos de peligro, pues permiten ejecutar tareas maliciosas en un sistema. Recuerda que el propósito de enseñar estas herramientas es estrictamente educativo, por lo que su uso debe aplicarse únicamente con fines éticos.
Dentro de las funciones de Netcat encontrarás:
- Shell commands: permite ejecutar comandos dentro de la aplicación web vulnerada.
- Filename: permite ejecutar archivos dentro de la aplicación web vulnerada.
- Listen: permite poner a escuchar puertos en un ordenador para ejecutar payloads o chats en servidores.
Otras herramientas de pentesting web
Te dejo otras herramientas para analizar o, incluso, influir en la comunicación con un servidor HTTP.
Wireshark
Wireshark es un software para analizar el tráfico de red de un ordenador. Con este programa, es posible capturar paquetes de datos de diferentes protocolos. Entre ellos, el protocolo HTTP. Dado que este protocolo de navegación web no está cifrado, Wireshark permite ver cada una de las peticiones del cliente y respuestas del servidor, lo cual le da la capacidad de analizar ciertas vulnerabilidades.
Wireshark también se utiliza mucho en el mundo académico del desarrollo de aplicaciones web.
BurpSuite
BurpSuite es una plataforma que junta herramientas para el pentesting de aplicaciones web. Su herramienta más conocida permite crear proxies HTTP.
Estos proxies permiten controlar detalladamente el tráfico entre un cliente y un servidor. BurpSuite permite interceptar, modificar, aceptar o rechazar cada petición y respuesta. Por medio de esta herramienta, se pueden ejecutar ataques de intermediario en tests de penetración.
¿Fascinado con la Ciberseguridad? ¿Quieres volverte un experto en este campo? Entonces, no te pierdas el programa de nuestro Bootcamp de Ciberseguridad, la formación intensiva en la que podrás convertirte en un experto en tan solo 7 meses. ¿Qué estás esperando para cambiar tu vida? ¡Entra y pide más información!