ncat o nc es una utilidad de red con una funcionalidad similar al comando cat pero para Red. Es una herramienta de CLI de propósito general para leer, escribir, redirigir datos a través de una red. Está diseñado para ser una herramienta de back-end confiable que se puede utilizar con scripts u otros programas. También es una gran herramienta para la depuración de redes, ya que puede crear cualquier tipo de conexión que uno pueda necesitar.

ncat / nc puede ser una herramienta de escaneo de puertos, o una herramienta de seguridad, o una herramienta de monitoreo y también es un simple proxy TCP., Dado que tiene tantas características, se conoce como una navaja suiza de red. Es una de esas herramientas que todos los administradores del sistema deben conocer & master.

en la mayoría de las distribuciones Debian ‘nc’ está disponible y su paquete se instala automáticamente durante la instalación. Pero en una instalación mínima de CentOS 7 / RHEL 7 no encontrará nc como un paquete predeterminado. Necesita instalar usando el siguiente comando.,

# yum install nmap-ncat -y

los administradores del sistema pueden usarlo para auditar la seguridad de su sistema, pueden usarlo para encontrar los puertos que se abren & para protegerlos. Los administradores también pueden usarlo como cliente para auditar servidores web, servidores telnet, servidores de correo, etc., con ‘nc’ podemos controlar cada carácter enviado & también podemos ver las respuestas a las consultas enviadas.

También podemos hacer que capture los datos que envía el cliente para comprender qué son.,

en este tutorial, vamos a aprender sobre cómo usar el comando ‘nc’ con 10 ejemplos,

ejemplo: 1) escuchar conexiones entrantes

Ncat puede trabajar en modo de escucha & podemos escuchar conexiones entrantes en el número de puerto con la opción ‘l’. El comando completo es,

NC ncat-l port_number

por ejemplo,

$ ncat -l 8080

El Servidor ahora comenzará a escuchar el puerto 8080 para las conexiones entrantes.,

Ejemplo: 2) conectarse a un sistema remoto

para conectarse a un sistema remoto con nc, podemos usar el siguiente comando,

NC ncat IP_address port_number

tomemos un ejemplo,

$ ncat 192.168.1.100 80

ahora se realizará una conexión al servidor con la dirección IP 192.168.1.100 en el puerto 80 & ahora podemos enviar instrucciones al servidor. Como podemos obtener el contenido completo de la página con

GET / HTTP / 1.1

O obtener el nombre de la página,

GET / HTTP/1.1

O podemos obtener banner para la huella digital del sistema operativo con lo siguiente,

HEAD / HTTP/1.,1

esto le dirá qué software se está utilizando para ejecutar el servidor web.

Ejemplo: 3) Conexión a puertos UDP

de forma predeterminada , la utilidad nc realiza conexiones solo a puertos TCP.,eabfde»>

ahora nuestro sistema comenzará a escuchar un puerto udp ‘1234’, podemos verificar esto usando el siguiente comando netstat,

supongamos que queremos enviar o probar la conectividad del puerto UDP a un host remoto específico, luego use el siguiente comando,

NC ncat-v-u {host-ip} {udp-port}

ejemplo:

# ncat -v -u 192.168.105.150 53Ncat: Version 6.40 ( http://nmap.org/ncat )Ncat: Connected to 192.168.105.150:53.

ejemplo: 4) NC como herramienta de chat

NC también se puede utilizar como herramienta de chat, podemos configurar el servidor para escuchar un puerto & que puede hacer la conexión al servidor desde una máquina remota en el mismo puerto & iniciar el envío de mensajes., En el lado del servidor, ejecute

$ ncat -l 8080

en el equipo cliente remoto, ejecute

$ ncat 192.168.1.100 8080

luego comience a enviar mensajes & se mostrarán en el terminal del servidor.

ejemplo: 5) NC como proxy

NC también se puede usar como proxy con un simple comando. Tomemos un ejemplo,

$ ncat -l 8080 | ncat 192.168.1.200 80

ahora todas las conexiones que lleguen a nuestro servidor en el puerto 8080 se redirigirán automáticamente al servidor 192.168.1.200 en el puerto 80., Pero como estamos usando una tubería, los datos solo se pueden transferir & para poder recibir los datos de vuelta, necesitamos crear una tubería de dos vías. Utilice los siguientes comandos para hacerlo,

$ mkfifo 2way$ ncat -l 8080 0<2way | ncat 192.168.1.200 80 1>2way

ahora podrá enviar & recibir datos a través del proxy nc.

ejemplo: 6) copiar archivos usando nc / ncat

NC también se puede usar para copiar los archivos de un sistema a otro, aunque no se recomienda & casi todos los sistemas tienen SSH/scp instalado por defecto., Pero, sin embargo, si se ha encontrado con un sistema sin SSH / scp, también puede usar nc como último esfuerzo.

Comience con la máquina en la que los datos se recibieron & inicio nc se escucha modo,

$ ncat -l 8080 > file.txt

Ahora en la máquina desde donde los datos se copiarán, ejecute el siguiente comando,

$ ncat 192.168.1.100 8080 --send-only < data.txt

Aquí, de datos.txt es el archivo que tiene que ser enviado. – enviar-solo opción cerrará la conexión Una vez que el archivo ha sido copiado. Si no usa esta opción, entonces tendremos que presionar ctrl+c para cerrar la conexión manualmente.,

también podemos copiar particiones de disco enteras usando este método, pero debe hacerse con precaución.

Ejemplo: 7) crear una puerta trasera a través de nc/nact

el comando NC también se puede usar para crear una puerta trasera a sus sistemas & esta técnica es realmente utilizada por los hackers mucho. Debemos saber cómo funciona para asegurar nuestro sistema. Para crear una puerta trasera, el comando es,

$ ncat -l 10000 -e /bin/bash

la bandera’e’ adjunta un bash al puerto 10000., Ahora un cliente puede conectarse al puerto 10000 en el servidor & tendrá acceso completo a nuestro sistema a través de bash,

$ ncat 192.168.1.100 1000

ejemplo: 8) reenvío de puertos a través de nc/ncat

También podemos usar NC para reenvío de puertos con la ayuda de la opción ‘c’ , la sintaxis para realizar el reenvío de puertos es,

$ ncat -u -l 80 -c 'ncat -u -l 8080'

ahora todas las conexiones para el puerto 80 se enviarán al puerto 8080.

ejemplo: 9) establecer tiempos de espera de conexión

El modo de escucha en ncat continuará ejecutándose & tendría que terminarse manualmente., Pero podemos configurar los tiempos de espera con la opción ‘w’,

$ ncat -w 10 192.168.1.100 8080

esto hará que la conexión se termine en 10 segundos, pero solo se puede usar en el lado del cliente & no en el lado del servidor.

ejemplo: 10) forzar al servidor a permanecer activo usando la opción-k en ncat

Cuando el cliente se desconecta del servidor, después de algún tiempo el servidor también deja de escuchar. Pero podemos forzar al servidor a permanecer conectado & Continuando la escucha del puerto con la opción ‘k’., Ejecute el siguiente comando,

$ ncat -l -k 8080

ahora el servidor permanecerá activo, incluso si se rompe una conexión desde el cliente.