GNU/Linux >> Tutoriales Linux >  >> Linux

10 ejemplos útiles de comandos ncat (nc) para sistemas Linux

ncat o nc es una utilidad de red con una funcionalidad similar al comando cat pero para la red. Es una herramienta CLI de propósito general para leer, escribir y redirigir datos a través de una red. Está diseñado para ser una herramienta de back-end confiable que se puede usar 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 herramienta de supervisión y también es un proxy TCP simple . Debido a que tiene tantas características, se conoce como una navaja suiza de red. Es una de esas herramientas que todo administrador del sistema debería conocer y dominar.

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

[[email protected] ~]# 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 están abiertos y luego protegerlos. Los administradores también pueden usarlo como un cliente para auditar servidores web, servidores telnet, servidores de correo, etc. Con 'nc' podemos controlar cada carácter enviado y 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é están haciendo.

En este tutorial, vamos a aprender cómo usar el comando 'nc' con 10 ejemplos,

Ejemplo:1) Escuchar conexiones entrantes

Ncat puede funcionar en modo de escucha y podemos escuchar conexiones entrantes en el número de puerto con la opción 'l'. El comando completo es,

$ ncat -l número_puerto

Por ejemplo,

$ ncat -l 8080

El servidor ahora comenzará a escuchar el puerto 8080 para conexiones entrantes.

Ejemplo:2) Conectarse a un sistema remoto

Para conectarnos a un sistema remoto con nc, podemos usar el siguiente comando,

$ ncat IP_address número_puerto

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 y ahora podemos enviar instrucciones al servidor. Como podemos obtener el contenido de la página completa con

OBTENER/HTTP/1.1

u obtén el nombre de la página,

OBTENER/HTTP/1.1

o podemos obtener un banner para la toma de huellas digitales del sistema operativo con lo siguiente,

CABEZA / HTTP/1.1

Esto le indicará qué software se está utilizando para ejecutar el servidor web.

Ejemplo:3) Conexión a puertos UDP

De manera predeterminada, la utilidad nc realiza conexiones solo a los puertos TCP. Pero también podemos hacer conexiones a puertos UDP, para eso podemos usar la opción ‘u’,

$ ncat -l -u 1234

Ahora nuestro sistema comenzará a escuchar un puerto udp '1234', podemos verificar esto usando el siguiente comando netstat,

$ netstat -tunlp | grep 1234
udp           0          0 0.0.0.0:1234                 0.0.0.0:*               17341/nc
udp6          0          0 :::1234                      :::*                    17341/nc

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

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

ejemplo:

[[email protected] ~]# ncat -v -u 192.168.105.150 53
Ncat: 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 usar como herramienta de chat, podemos configurar el servidor para escuchar un puerto y luego puede conectarse al servidor desde una máquina remota en el mismo puerto y comenzar a enviar mensajes. En el lado del servidor, ejecute

$ ncat -l 8080

En la máquina cliente remota, ejecute

$ ncat 192.168.1.100 8080

Luego comience a enviar mensajes y se mostrarán en la terminal del servidor.

Ejemplo:5) NC como proxy

NC también se puede utilizar 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 canalización, los datos solo se pueden transferir y para poder recibirlos de vuelta, necesitamos crear una tubería de dos vías. Use los siguientes comandos para hacerlo,

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

Ahora podrá enviar y recibir datos a través del proxy nc.

Ejemplo:6) Copiar archivos usando nc/ncat

NC también se puede utilizar para copiar los archivos de un sistema a otro, aunque no se recomienda y la mayoría de los sistemas tienen ssh/scp instalado de forma predeterminada. No obstante, si se ha topado con un sistema sin ssh/scp, también puede usar nc como último esfuerzo.

Comience con la máquina en la que se recibirán los datos e inicie nc en el modo de escucha,

$ ncat -l  8080 > file.txt

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

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

Aquí, data.txt es el archivo que debe enviarse. La opción de solo envío cerrará la conexión una vez que se haya copiado el archivo. Si no usa esta opción, tendremos que presionar ctrl+c para cerrar la conexión manualmente.

También podemos copiar particiones de disco completas con 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 en sus sistemas y los piratas informáticos usan mucho esta técnica. Debemos saber cómo funciona para asegurar nuestro sistema. Para crear una puerta trasera, el comando es,

$ ncat -l 10000 -e /bin/bash

'e La bandera adjunta un bash al puerto 10000. Ahora un cliente puede conectarse al puerto 10000 en el servidor y 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 el reenvío de puertos con la ayuda de la opción 'c', la sintaxis para lograr el reenvío de puertos es,

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

Ahora todas las conexiones del puerto 80 se reenviarán al puerto 8080.

Ejemplo:9) Establecer tiempos de espera de conexión

El modo de escucha en ncat continuará ejecutándose y deberá finalizarse manualmente. Pero podemos configurar tiempos de espera con la opción 'w',

$ ncat -w 10 192.168.1.100 8080

Esto hará que la conexión finalice en 10 segundos, pero solo se puede usar en el lado del cliente y 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 un tiempo, el servidor también deja de escuchar. Pero podemos obligar al servidor a permanecer conectado y continuar escuchando el puerto con la opción 'k'. Ejecute el siguiente comando,

$ ncat -l -k 8080

Ahora el servidor permanecerá activo, incluso si se interrumpe la conexión del cliente.

Con esto finalizamos nuestro tutorial, no dude en hacer cualquier pregunta sobre este artículo utilizando el cuadro de comentarios a continuación.


Linux
  1. 14 ejemplos útiles de comandos 'ls' en Linux

  2. 12 ejemplos útiles de comandos Wget en Linux

  3. 12 ejemplos de comandos IP para usuarios de Linux

  4. 16 ejemplos útiles de comandos 'cp' para principiantes de Linux

  5. Comando ls en Linux:17 ejemplos útiles explicados

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)

Comando de localización de Linux para principiantes (8 ejemplos)

40 ejemplos útiles de comandos PS de Linux para aspirantes a administradores de sistemas

12 ejemplos útiles de comandos de fecha de Linux