El comando «nc», comúnmente conocido como «Netcat», es una herramienta flexible y robusta utilizada en entornos Linux y otros sistemas operativos basados en Unix. Es una utilidad poderosa para leer y escribir en conexiones de red utilizando UDP o TCP. Si eres un profesional como administrador de redes, administrador de sistemas o profesional de seguridad, esta herramienta puede ayudarte a realizar tareas importantes como:
- Comunicación simple entre cliente y servidor
- Transferencia de archivos
- Depuración de redes
- Escaneo de puertos
En este artículo, veremos cómo se utiliza ampliamente el comando nc, sus características y algunos ejemplos prácticos para comprender mejor esta utilidad.
Características destacadas del comando nc
- Comunicación cliente-servidor: Puedes conectar dos máquinas usando esta utilidad para transmitir mensajes simples entre las máquinas.
- Escaneo de puertos: Esta utilidad puede ayudarte a ver qué puertos están abiertos en un sistema objetivo.
- Escuchar puertos: Es posible configurar un servidor para escuchar conexiones entrantes en un puerto con el comando nc.
- Capturar banners de servicio: Puedes capturar banners de servicio para conocer los servicios en ejecución y sus respectivas versiones.
- Encontrar errores de red: Este es el uso principal del comando nc. Puedes probar la conectividad de la red y su rendimiento.
- Transferencia de archivos o datos: Usando el comando nc puedes enviar y recibir datos entre dos dispositivos conectados a través de la red.
Cómo instalar nc en máquinas Linux
Antes de pasar a la parte donde explicamos cómo se usará frecuentemente el comando nc, asegúrate de tener nc o Netcat instalado en tu sistema. Hoy en día, en la mayoría de las distribuciones de Linux como Ubuntu, Netcat viene preinstalado. Si no está disponible, puedes instalarlo usando el comando apt. Aquí está el comando para instalar Netcat:
sudo apt-get install netcat
Una vez instalado nc, puedes comenzar a usarlo sin reinicios ni configuraciones.
Uso básico del comando nc
Una vez que hayas instalado Netcat, aquí hay algunas acciones básicas que puedes realizar con él para comenzar:
Escaneo básico de puertos
El uso principal de Netcat es escanear puertos abiertos en una máquina remota. Para hacer esto, ejecuta el siguiente comando:
nc -zv IPAddress Port
¿Ves los parámetros junto con la utilidad nc? Son para ajustar el comando. Veamos cada uno de ellos ahora.
- -z: Para indicar a Netcat que solo escanee y no envíe ningún dato.
- -v: Para obtener una salida detallada habilitando la salida detallada.
- IPAddress: Esta es solo una dirección IP de destino de muestra.
- Port: Este es el rango especificado de puertos para escanear.
Netcat intentará conectarse a cada puerto en el rango especificado al ejecutar este comando. Luego informará si el puerto está abierto.
Configurar un servidor usando Netcat
Puedes usar el comando nc para configurar un servidor TCP simple. Para iniciar un servidor que escuche en un puerto particular, ejecuta este comando:
nc -l XXXX
El parámetro «-l» indica a Netcat que escuche cualquier conexión entrante y «xxxx» es solo un número de puerto de muestra en el que Netcat debe escuchar. La ventana de la terminal mostrará inmediatamente cualquier dato enviado a este puerto.
Comunicación simple entre cliente y servidor
Puedes configurar una comunicación básica entre cliente y servidor usando Netcat. Ejecuta este comando para configurar un servidor en una de las máquinas:
nc -l XXXX
En otra máquina con nc instalado, conéctate al servidor usando el comando:
nc YYY.YYY.Y.Y XXXX
Aquí, YYY.YYY.Y.Y es la dirección IP y XXXX es el puerto de destino. Netcat envía cualquier cosa que escribas en la terminal del cliente a la terminal del servidor y viceversa. Esto ayuda a transmitir mensajes de texto simples entre máquinas con nc instalado.
Transferencia de archivos usando Netcat
Con el comando nc puedes transferir archivos entre dos máquinas conectadas. En la máquina con el paquete de archivos, ejecuta este comando:
nc -l XXXX < unixmen.txt
En la máquina receptora, ejecuta el siguiente comando:
nc YYY.YYY.Y.Y XXXX > unixmen.txt
La utilidad nc transfiere el archivo llamado «unixmen.txt» del remitente al receptor.
Cómo capturar banners de servicio
Puedes usar el comando nc para capturar banners de los servicios que se ejecutan en servidores remotos conectados. Capturar banners te ayuda a identificar la versión del servicio que se ejecuta en un puerto especificado.
nc YYY.YYY.Y.Y XXXX
Ingresa «HEAD / HTTP/1.0» y presiona la tecla Enter dos veces. Esto recibe los encabezados HTTP, incluido el banner del servidor, que generalmente contiene todos los detalles sobre el software del servidor.
Limitaciones de Netcat
Muchas herramientas de seguridad marcan a Netcat o el comando nc como flageado por muchos softwares de seguridad y no es preferido en muchos entornos. También hay posibilidades de usar Netcat o el comando nc de manera maliciosa. Las capacidades del comando nc también incluyen la configuración de shells inversas y conexiones proxy. Esto ayuda a los atacantes a usar Netcat para penetrar sistemas.
Conclusión
La utilidad Netcat es una herramienta esencial para trabajar con redes, incluso si solo estás jugando con varias máquinas en una red. El comando nc puede capacitarte para solucionar problemas de red de manera efectiva y administrar conexiones de red. Utiliza Netcat para usar tus redes de manera efectiva y hacer más. Para obtener más información, consulta la documentación oficial de Netcat.