Gestión de red con Netcat
Netcat es una utilidad versátil que lee y escribe datos a través de
conexiones de red usando el protocolo TCP/IP. Es una herramienta útil para
depurar y explorar redes, y también se emplea en distintas
actividades de seguridad como el escaneo de puertos, la transferencia de archivos y la creación de
una puerta trasera durante pruebas de penetración. Este artículo ofrece una
guía paso a paso para instalar y usar la función de escucha de Netcat en sistemas
Ubuntu o Debian.
Instalación de
Netcat
Netcat es una utilidad estándar disponible en los repositorios de la mayoría de las
distribuciones Linux. A continuación se indican las instrucciones de instalación para algunas de las
distribuciones Linux más comunes.
nc -h

Ubuntu/Debian
En Ubuntu o Debian, puedes instalar Netcat con los siguientes
comandos:
sudo apt-get update
sudo apt-get install netcat
CentOS/RHEL
En CentOS o Red Hat Enterprise Linux, puedes usar YUM (o DNF en
versiones más recientes) para instalar Netcat:
sudo yum install nc
Uso de Netcat
Escucha
La función de escucha de Netcat permite monitorizar el tráfico de red en
puertos específicos, ofreciendo información en tiempo real sobre la transmisión de datos y
facilitando el diagnóstico de red o el análisis de seguridad.
Parte 1: Escaneo de
Puertos abiertos
Antes de configurar un listener, conviene identificar los puertos abiertos en
tu servidor. Netcat puede escanear un puerto individual o un rango de puertos.
Escaneo de un rango de puertos:
Para escanear un rango de puertos, usa el siguiente comando, sustituyendo
[REMOTE_COMPUTER_IP] por la dirección IP del servidor y
[PORT_RANGE] con el rango de puertos a escanear, como
2000-5000:
netcat -z -v -n [REMOTE_COMPUTER_IP] [PORT_RANGE]
Ejemplo:
Para escanear los puertos del 2999 al 3014 en un servidor con IP
127.0.0.1, el comando sería:

Para filtrar los resultados y mostrar solo los puertos abiertos, puedes usar
usar grep:
netcat -z -v -n 172.86.74.34 2000-5000 2>&1 | grep succeeded!

Escaneo de un puerto específico:
Si necesitas comprobar un solo puerto, puedes usar:
netcat -z -v -n [REMOTE_COMPUTER_IP] [PORT]
Por ejemplo, para escanear el puerto 3000 en el servidor:
netcat -z -v -n 172.86.74.34 3000

Este comando indicará si el puerto 3000 está abierto o cerrado.
Parte 2: Configurar
un listener de Netcat
Una vez que hayas identificado un puerto abierto, o si tienes un puerto concreto
que quieres monitorizar, puedes configurar un listener de Netcat. Para escuchar en el puerto
2200, por ejemplo, usa el siguiente comando:
netcat -l -p 2200

Este comando indica a Netcat que escuche en el puerto 2200 cualquier
dato entrante.
Parte 3: Enviar un mensaje
de prueba
Para verificar que tu listener de Netcat está correctamente configurado, puedes enviar
un mensaje de prueba desde otra máquina. Abre una terminal en otro equipo
y usa el siguiente comando:
netcat [SERVER_IP] 2200
Sustituye [SERVER_IP] con la dirección IP del
servidor donde está ejecutándose el listener de Netcat. Una vez establecida
la conexión, escribe tu mensaje y pulsa Intro. El mensaje
debería aparecer en el servidor donde está configurado el listener de Netcat.

Parte 4: Guardar datos en un
Archivo
Si quieres conservar un registro de los datos que pasan por el puerto
que estás monitorizando con Netcat, puedes redirigir la salida a un archivo.
Así se guardan los datos entrantes en un archivo llamado
output.txt:
netcat -l -p 2200 > output.txt
Al ejecutar este comando, todo lo que reciba el listener de Netcat
en el puerto 2200 al archivo
output.txt Puedes revisar este archivo más adelante con cualquier editor
de texto.

Parte 5: Enviar un
Archivo
Para enviar un archivo con Netcat, debes realizar acciones en ambas
máquinas: la emisora y la receptora.
En la máquina receptora:
Configura Netcat para escuchar en un puerto específico y redirige los datos
entrantes a un archivo. Por ejemplo, para escuchar en el puerto 2200 y guardar el
datos entrantes a output.zip, usa:
netcat -l -p 2200 > archive.zip
En la máquina emisora:
Envía un archivo con Netcat conectándote a la IP del receptor
y el puerto, redirigiendo el archivo a Netcat. Sustituye
[RECEIVER_IP] por la dirección IP de la máquina
receptora:
netcat [RECEIVER_IP] 2200 < yourfile.zip
Sustituye yourfile.zip con la ruta y el nombre del
archivo zip que quieres enviar.

Nota: Al transferir archivos, asegúrate de que no haya
ningún cortafuegos bloqueando la conexión y de que el proceso de
Netcat en la máquina receptora esté en marcha antes de ejecutar el comando de envío.
Opciones adicionales
Capacidades de Netcat
Netcat va mucho más allá de la simple transferencia de archivos y la
escucha de puertos. Es una herramienta versátil que cubre múltiples
necesidades de red, desde seguridad hasta comunicación. Un vistazo a
algunas de sus capacidades adicionales:
-
Creación de un servidor de chat: Netcat puede configurarse
para facilitar la comunicación de texto en tiempo real entre usuarios, actuando como un
servidor de chat básico. -
Obtención de banners de servicio: Al conectarse a puertos abiertos
puertos, Netcat puede recuperar banners de servicio, lo que ayuda a identificar
versiones de software potencialmente vulnerables. -
Depuración de red: Es una herramienta excelente para
diagnosticar servicios de red, permitiéndote enviar solicitudes personalizadas y
analizar las respuestas para resolver problemas. -
Administración remota: Netcat puede vincular una shell
a un puerto de red, habilitando el acceso remoto por línea de comandos a otro
equipo, lo que resulta especialmente útil para los administradores
de sistemas. -
Pruebas de daemons de red: Los desarrolladores pueden usar
Netcat para interactuar con daemons de red, enviando datos de prueba y comandos
para observar el comportamiento del servicio. -
Funcionalidad de servidor proxy: Con Netcat, configurar
un proxy básico es sencillo, permitiéndote reenviar tráfico y
supervisarlo o analizarlo para distintos fines. -
Emulación de servicios de red: Puede simular
servicios de red, devolviendo una respuesta simulada a las solicitudes de red
entrantes, lo que es útil para probar aplicaciones del lado cliente. -
Configuración básica de servidor TCP/UDP: Netcat puede escuchar en
puertos específicos para solicitudes TCP o UDP entrantes, lo que lo convierte en una herramienta para
crear servidores simples. -
Scripting y automatización: Su naturaleza de
línea de comandos permite integrar Netcat fácilmente en scripts y en tareas de
automatización más amplias, simplificando operaciones de red repetitivas. -
Tunelización de datos: Netcat puede usarse para crear un
túnel de datos, permitiendo redirigir flujos de datos de una
red a otra. -
Sincronización horaria: Puede facilitar la
sincronización de los relojes del sistema en una red enviando datos de tiempo
entre máquinas. -
Pruebas de seguridad: Netcat es un recurso habitual en las pruebas de
seguridad: se utiliza para simular ataques de red o evaluar la efectividad de
las configuraciones del cortafuegos. -
Pruebas de conectividad: Comprueba de forma rápida y eficiente
la capacidad de establecer conexiones TCP o UDP, algo esencial para la
configuración y el mantenimiento de redes.
Cada una de estas capacidades pone de manifiesto la versatilidad de Netcat,
convirtiéndolo en una herramienta indispensable en cualquier kit de redes. Ya sea para
desarrollo, resolución de problemas o análisis de seguridad, la sencillez de Netcat
y la potencia lo convierten en la herramienta de referencia para los profesionales de redes. Si
¿Tienes alguna pregunta? No dudes en contactarnos por enviando un
ticket.
También en Secure Shell Protocol (SSH)
Guías relacionadas.
¿Necesitas ayuda con otra cosa?
Tiempo de respuesta medio inferior a 1 hora. Personas reales, no bots.