Netcat (or nc
) es una utilidad de línea de comandos que lee y escribe datos a través de conexiones de red, utilizando los protocolos TCP o UDP. Es una de las herramientas más poderosas en el arsenal de administradores de redes y sistemas, y se considera como una navaja suiza de herramientas de red.
Netcat es multiplataforma y está disponible para Linux, macOS, Windows y BSD. Puede usar Netcat para depurar y supervisar conexiones de red, buscar puertos abiertos, transferir datos, como proxy y más.,
El paquete Netcat está preinstalado en macOS y distribuciones populares de Linux como Ubuntu, Debian o CentOS.
Netcat Sintaxis #
La mayoría de la sintaxis básica de la Netcat utilidad tiene la forma siguiente:
nc host port
En Ubuntu, puede usar netcat
o nc
. Ambos son enlaces simbólicos a la versión de OpenBSD de Netcat.
de forma predeterminada, Netcat intentará iniciar una conexión TCP con el host y el puerto especificados., Si desea establecer una conexión UDP, utilice la opción -u
:
nc -u host port
exploración de puertos #
la exploración de puertos es uno de los usos más comunes de Netcat. Puede escanear un solo puerto o un rango de puertos.,
por ejemplo, para buscar puertos abiertos en el rango 20-80, usaría el siguiente comando:
nc -z -v 10.10.8.8 20-80
la opción -z
le indicará a nc
que solo busque puertos abiertos, sin enviarles ningún dato y el -v
opción para proporcionar información más detallada.
la salida se verá algo como esto:
si desea imprimir solo las líneas con los puertos abiertos, puede filtrar los resultados con el comando grep
.,
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded!Connection to 10.10.8.8 80 port succeeded!
También puede usar Netcat para encontrar el software del servidor y su versión. Por ejemplo, si envía un comando «EXIT» al servidor en el puerto SSH predeterminado 22 :
echo "EXIT" | nc 10.10.8.8 22
la salida se verá algo como esto:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4Protocol mismatch.
para buscar puertos UDP simplemente agregue la opción -u
al comando como se muestra a continuación:
nc -z -v -u 10.10.8.8 20-80
normalmente, Nmap es una herramienta mejor que netcat para la exploración de puertos complejos.,
enviar archivos a través de Netcat #
Netcat se puede utilizar para transferir datos de un host a otro mediante la creación de un modelo básico de cliente/servidor.
esto funciona configurando el netcat para que escuche en un puerto específico (usando la opción -l
) en el host receptor y luego estableciendo una conexión TCP regular desde el otro host y enviando el archivo a través de él.,
en la recepción ejecute el siguiente comando que abrirá el puerto 5555 para la conexión entrante y redirigirá la salida al archivo:
nc -l 5555 > file_name
desde el host de envío conéctese al host de recepción y envíe el archivo:
nc receiving.host.com 5555 < file_name
para transferir un directorio puede utilizar tar
para archivar el directorio en el host de origen y extraer el archivo en el host de destino.
en el host receptor, configure la herramienta Netcat para escuchar una conexión entrante en el puerto 5555., Los datos entrantes se canalizan al comando tar
, que extraerá el archivo:
nc -l 5555 | tar xzvf -
en el paquete de host de envío del directorio y enviará los datos conectándose al proceso de escucha nc
en el host de Recepción:
tar czvf - /path/to/dir | nc receiving.host.com 5555
puede ver el progreso de la transferencia en ambos extremos. Una vez completado, escriba CTRL+C
para cerrar la conexión.
crear un servidor de Chat Simple #
el procedimiento para crear un chat en línea entre dos o más hosts es el mismo que cuando se transfieren archivos.,
en el primer host inicie un proceso Netcat para escuchar en el puerto 5555:
nc -l 5555
desde el segundo host ejecute el siguiente comando para conectarse al puerto de escucha:
nc first.host.com 5555
ahora, si escribe un mensaje y presiona ENTER
se mostrará en ambos hosts.
Para cerrar la conexión, escriba CTRL+C
.
realizar una solicitud HTTP #
aunque hay herramientas mucho mejores para las solicitudes HTTP , como curl
, también puede usar Netcat para enviar varias solicitudes a servidores remotos.,
por ejemplo, para recuperar la página man de Netcat desde el Sitio Web de OpenBSD, debe escribir:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
La respuesta completa, incluidos los encabezados HTTP y el código HTML, se imprimirá en el terminal.
conclusión #
en este tutorial, ha aprendido cómo usar la utilidad Netcat para establecer y probar conexiones TCP y UDP.
para obtener más información, visite la página de manual de Netcat y lea acerca de todas las demás opciones potentes del comando Netcat.
Leave a Reply