Netcat (o nc en resumen) es una herramienta de línea de comandos de red simple pero potente utilizada para realizar cualquier operación en Linux relacionada con sockets de dominio TCP, UDP o UNIX.
Netcat se puede usar para escanear puertos, redireccionar puertos, como un receptor de puertos( para conexiones entrantes); también se puede usar para abrir conexiones remotas y muchas otras cosas. Además, puede usarlo como una puerta trasera para obtener acceso a un servidor de destino.
en este artículo, explicaremos los comandos de uso de Netcat con ejemplos.,
cómo instalar y usar Netcat en Linux
para instalar el paquete netcat en su sistema, utilice el administrador de paquetes predeterminado para su distribución Linux.
$ yum install nc $ dnf install nc $ sudo apt-get install Netcat
Una vez instalado el paquete netcat, puede seguir adelante para aprender el uso del comando netcat en los siguientes ejemplos.
exploración de puertos
Netcat se puede utilizar para la exploración de puertos: para saber qué puertos están abiertos y ejecutan servicios en una máquina de destino. Puede escanear uno o varios puertos abiertos o un rango de puertos abiertos.,
Aquí hay un ejemplo, la opción -z
establece nc para simplemente buscar demonios de escucha, sin enviarles ningún dato. La opción -v
habilita el modo detallado y -w
especifica un tiempo de espera para la conexión que no se puede establecer.,
Transferencia de Archivos Entre Servidores Linux
Netcat le permite transferir archivos entre dos ordenadores Linux o los servidores, y tanto estos sistemas deben tener nc instalado.
por ejemplo, para copiar un archivo de imagen ISO de un equipo a otro y supervisar el progreso de la transferencia (utilizando la utilidad pv), ejecute el siguiente comando en el equipo remitente/servidor (donde existe el archivo ISO).,
esto ejecutará nc en modo de escucha (-l
flag) en el puerto 3000.
$ tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso | pv | nc -l -p 3000 -q 5
Y en el receptor/equipo cliente, ejecute el siguiente comando para obtener el archivo.
$ nc 192.168.1.4 3000 | pv | tar -zxf -
h4>
También puede usar netcat para crear un servidor de mensajería de línea de comandos simple al instante., Como en el ejemplo de uso anterior, nc debe estar instalado en ambos sistemas utilizados para la sala de chat.
en un sistema, ejecute el siguiente comando para crear el servidor de chat que escucha en el puerto 5000.
$ nc -l -vv -p 5000
en el otro sistema, ejecute el siguiente comando para iniciar una sesión de chat en una máquina donde se esté ejecutando el servidor de mensajería.,
$ nc 192.168.56.1 5000
crear un servidor web básico
con la opción -l
del comando nc se usa para crear un servidor web básico e inseguro para servir archivos web estáticos con fines de aprendizaje. Para demostrar esto, cree un archivo .html
como se muestra.
$ vim index.html
agregue las siguientes líneas HTML en el archivo.
<html> <head> <title>Test Page</title> </head> <body> <p>Serving this file using Netcat Basic HTTP server!</p> </body></html>
Guarde los cambios en el archivo y salga.,
luego sirva el archivo anterior a través de HTTP ejecutando el siguiente comando, que permitirá que el Servidor HTTP se ejecute continuamente.
$ while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done
a continuación, abra un navegador web y puede acceder a contenido utilizando la siguiente dirección.,
tenga en cuenta que puede para detener el Netcat servidor HTTP pulsando .
solucionar problemas de conexión del Servidor Linux
otro uso útil de Netcat es solucionar problemas de conexión del servidor. Aquí, puede usar Netcat para verificar qué datos envía un servidor en respuesta a los comandos emitidos por el cliente.
El siguiente comando recupera la página de inicio de example.com.,
$ printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80
la salida del comando anterior incluye los encabezados enviados por el servidor web que se pueden usar para resolver problemas.
buscar un servicio que se ejecuta en el puerto
También puede utilizar Netcat para obtener banners de Puerto. En este caso, le dirá qué servicio se está ejecutando detrás de un determinado puerto. Por ejemplo, para saber qué tipo de servicio se ejecuta detrás del puerto 22 en un servidor específico, ejecute el siguiente comando (reemplace 192.168.56.110 con la dirección IP del servidor de destino). El indicador -n
significa deshabilitar las búsquedas de DNS o servicios.,
$ nc -v -n 192.168.56.110 80
Create a Stream Sockets
Netcat also supports creation of UNIX-domain stream sockets. The following command will create and listen on a UNIX-domain stream socket.
$ nc -lU /var/tmp/mysocket &$ ss -lpn | grep "/var/tmp/"
Create a Backdoor
You can as well run Netcat as a backdoor., Sin embargo, esto requiere más trabajo. Si Netcat está instalado en un servidor de destino, puede usarlo para crear una puerta trasera, para obtener un símbolo del sistema remoto.
para actuar como puerta trasera, necesita que Netcat escuche en un puerto elegido (por ejemplo, el puerto 3001) en el servidor de destino y luego puede conectarse a este puerto desde su máquina de la siguiente manera.
Este es el comando destinado a ejecutarse en el servidor remoto donde la opción -d
deshabilita la lectura desde stdin, y -e
especifica el comando que se ejecutará en el sistema de destino.,
$ nc -L -p 3001 -d -e cmd.exe
Por último, pero no menos importante, Netcat se puede usar como proxy para diferentes servicios/protocolos, incluidos HTTP, SSH y muchos más. Para obtener más información, consulte su página de manual.
$ man nc
en este artículo, hemos explicado 8 ejemplos prácticos de uso de comandos Netcat. Si conoce cualquier otro caso de uso práctico, comparta con nosotros a través del formulario de comentarios a continuación. Usted puede hacer una pregunta también.