Netcat es una de las poderosas herramientas de red, herramienta de seguridad o herramienta de monitoreo de red . Actúa como un comando de gato en una red. Incluso se considera como una navaja suiza de herramientas de red.
Generalmente se utiliza por las siguientes razones:
- Operación relacionada con sockets de dominio TCP, UDP o UNIX
- Escaneo de puertos
- Puerto de escucha
- Redirección de puertos
- Conexiones remotas abiertas
- Leer/escribir datos a través de la red
- Depuración de red
- Pruebas de demonios de red
- Proxies TCP simples
- Un comando de proxy HTTP o calcetines para ssh
Está diseñado teniendo en cuenta que debe ser una herramienta «back-end» flexible que pueda usarse directamente o ser impulsada por cualquier otro programa.
Instalación de la herramienta de monitoreo de procesos netcat(nc)
Para instalar la herramienta Netcat, use los siguientes comandos según su distribución de Linux.
En el caso de Debian/Ubuntu
$sudo apt-get install netcat
En el caso de CentOS/RHEL
$yum install nc
En el caso de Fedora 22+ y RHEL 8
$dnf install nc
Trabajar con la herramienta de seguridad netcat
1. Para comenzar a escuchar en un puerto, primero abra 2 ventanas de terminal.
Terminal 1 para escuchar
$nc -l -p 1234
Solicitud de envío de terminal 2
$nc 127.0.0.1 1234
Nota: aquí el número de puerto es 1234 y el host predeterminado es localhost.
No mostrará nada, pero comenzará a escuchar el puerto 1234 en el host local desde la terminal 1. Y todo lo ingresado en la terminal 2 también se reflejará en la terminal 1, lo que confirma que la conexión se estableció correctamente.
2. Para transferir datos. Abra 2 ventanas de terminal.
Terminal 1 para escuchar
$nc -l -p 1234 >output.txt
Terminal 2 para enviar solicitud
$echo "GeeksforGeeks" >input.txt $nc 127.0.0.1 1234 <input.txt
Nota: aquí el número de puerto es 1234 y el host predeterminado es localhost. Enviará los datos del archivo input.txt desde la terminal 2 al archivo output.txt en la terminal 1.
3. Para realizar la exploración de puertos. Ingrese el siguiente comando en la terminal.
Escaneo de un solo puerto
$netcat -z -v 127.0.0.1 1234
Escaneo de múltiples puertos
$nc -z -v 127.0.0.1 1234 1235
Exploración de un rango de puertos
$nc -z -v 127.0.0.1 1233-1240
Nota: Aquí los números de puerto son 1234, 1235, 1233 y 1240, puede cambiarlos según sus necesidades. Mostrará el número de puerto con el estado (abierto o no).
4. Para enviar una solicitud HTTP
$printf “GET /nc.1 HTTPs/1.1\r\nHost: www.geeksforgeeks.org\r\n\r\n” | nc www.geeksforgeeks.org 80
Nota: Aquí el sitio web es www.geeksfrogeeks.org , puede elegir cualquiera. Enviará una solicitud HTTP a www.geeksfrogeeks.org .
5. Retrasar el intervalo de envío de líneas. Abra 2 terminales como se muestra a continuación:
Terminal 1 para escuchar
$nc -l -p 1234
Solicitud de envío de terminal 2
$nc -i 5 127.0.0.1 1234
Nota: aquí el número de puerto es 1234 y el host predeterminado es localhost. El tiempo empleado es de 5 segundos. Cada uno será enviado después de 5 segundos de tiempo.