Comando nc en Linux: Una herramienta para depurar problemas de red

Published:

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.

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles