Netcat (o Carolina del Norte en resumen) es un sencillo pero poderoso herramienta de línea de comandos de red utilizado para realizar cualquier operación en Linux relacionada con TCP, UDP, o UNIX-sockets de dominio.
Netcat se puede utilizar para escaneo de puertos, redirección de puertos, como escucha de puerto (para conexiones entrantes); también se puede utilizar 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 Netcat comandos de uso con ejemplos.
Para instalar el paquete netcat en su sistema, use el administrador de paquetes predeterminado para su distribución de Linux.
$ yum install nc [en CentOS / RHEL] $ dnf install nc [en Fedora 22+ y RHEL 8] $ sudo apt-get install Netcat [en Debian / Ubuntu]
Una vez paquete netcat instalado, puede continuar para aprender el uso de comando netcat en los siguientes ejemplos.
Netcat
se puede utilizar para escanear puertos: saber que puertos estan abiertos y ejecutar servicios en una máquina de destino. Puede escanear uno o varios o un rango de puertos abiertos.Aquí hay un ejemplo, el -z
conjuntos de opciones Carolina del Norte para simplemente escanear en busca de demonios en escucha, sin enviarles ningún dato. El -v
opción habilita el modo detallado y -w
especifica un tiempo de espera para la conexión que no se puede establecer.
$ nc -v -w 2 z 192.168.56.1 22 # escanear un solo puerto. O. $ nc -v -w 2 z 192.168.56.1 22 80 # escanear varios puertos. O. $ nc -v -w 2 z 192.168.56.1 20-25 #scan rango de puertos.
Netcat Te permite transferir archivos entre dos computadoras o servidores Linux y ambos sistemas deben tener Carolina del Norte instalado.
Por ejemplo, para copiar un archivo de imagen ISO de una computadora a otra y monitorear el progreso de la transferencia (usando el utilidad pv), ejecute el siguiente comando en la computadora remitente / servidor (donde existe el archivo ISO).
Esto se ejecutará Carolina del Norte en modo de escucha-l
bandera) en el puerto 3000.
$ tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso | pv | nc -l -p 3000 -q 5.
Y en la computadora del receptor / cliente, ejecute el siguiente comando para obtener el archivo.
$ nc 192.168.1.4 3000 | pv | tar -zxf -
También puedes usar Netcat para crear un simple servidor de mensajería de línea de comandos instantáneamente. Como en el ejemplo de uso anterior, Carolina del Norte debe instalarse 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.
Ingenio el -l
opción de comando nc se utiliza para crear un servidor web básico e inseguro para servir archivos web estáticos con fines de aprendizaje. Para demostrar esto, cree un .html
archivo como se muestra.
$ vim index.html.
Agregue las siguientes líneas HTML en el archivo.
Página de prueba ¡Sirviendo este archivo usando el servidor HTTP básico de Netcat!
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.
$ mientras:; hacer (echo -ne "HTTP / 1.1 200 OK \ r \ n"; cat index.html; ) | nc -l -p 8080; hecho.
Luego abra un navegador web y pueda acceder al contenido usando la siguiente dirección.
http://localhost: 8080. O. http://SERVER_IP: 8080.
Tenga en cuenta que puede detener el Servidor HTTP Netcat presionando [Ctrl + C]
.
Otro uso útil de Netcat Es para solucionar problemas de conexión del servidor cuestiones. Aquí puedes usar Netcat para verificar qué datos está enviando 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 utilizar para solucionar problemas.
También puedes usar Netcat para obtener pancartas portuarias. En este caso, le dirá qué servicio se está ejecutando detrás de un puerto determinado. Por ejemplo, para saber qué tipo de servicio se está ejecutando 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 -norte
flag significa deshabilitar DNS o búsquedas de servicios.
$ nc -v -n 192.168.56.110 80.
Netcat también admite la creación de sockets de flujo de dominio UNIX. El siguiente comando creará y escuchará en un socket de flujo de dominio UNIX.
$ nc -lU / var / tmp / mysocket & $ ss -lpn | grep "/ var / tmp /"
También puedes correr Netcat como puerta trasera. 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 una puerta trasera necesitas Netcat para escuchar en un puerto elegido (por ejemplo, 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 el -D
La opción inhabilita la lectura desde stdin, y -mi
especifica el comando que se ejecutará en el sistema de destino.
$ nc -L -p 3001 -d -e cmd.exe
Por último, si bien no menos importante, Netcat se puede utilizar 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 prácticas Ejemplos de uso de comandos de Netcat. Si conoce otros casos prácticos de uso, compártalos con nosotros a través del formulario de comentarios a continuación. También puede hacer una pregunta.