Buscar puertos abiertos con Netcat

Buscar puertos abiertos con Netcat, desde la terminal de un sistema Linux.

Netcat (también llamada NC) es una herramienta de red, que te ayudara a identificar datos útiles a la hora de depurar y corregir errores en la red. Dispone de multitud de funciones, e incluso admite una amplia gama de comandos para administrar redes y monitorear el flujo de datos entre sistemas con protocolo TCP y UDP.

Netcat es una herramienta extremadamente útil, para que los administradores de redes y sistemas puedan identificar rápidamente cómo está operando la red y, cuál es su actividad. En este artículo, vemos cómo instalar y usar esta utilidad para escanear e identificar puertos abiertos, en cualquier sistema basado en Linux.

Buscar puertos con Netcat

Buscar puertos con Netcat

 

Buscar puertos abiertos con Netcat

Netcat no suele venir instalado por defecto en casi ninguna distribución linux, pero sí que lo encontramos en los repositorios oficiales de todas ellas. Instalamos la herramienta.

En Debian, Ubuntu, Mint y derivados:

sudo apt install netcat

En Fedora, CentOS, Rocky y derivados:

sudo dnf install nc

# o

sudo yum install nc

En Arch Linux, Manjaro y derivados:

sudo pamac install gnu-netcat

# o

sudo pacman -S gnu-netcat

Ejemplo de instalación en Ubuntu Focal.

root@SoloLinux-demo:~# apt install netcat
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  netcat-openbsd
The following NEW packages will be installed:
  netcat netcat-openbsd
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 40.0 kB of archives.
After this operation, 126 kB of additional disk space will be used.
Do you want to continue? [Y/n]

Imagen de instalación completa.

Instalar Netcat en Ubuntu

Instalar Netcat en Ubuntu

 

Una vez instalada la herramienta, ya puedes lanzar tu primer escaneo. Para que no intente abrir la conexión, tan solo identificarla usaremos la opción -z,  para que imprima las notificaciones la opción -v. Puedes definir los puertos a buscar, o definir el listado de puertos (en nuestro ejemplo del 1 al 1000).

netcat -z -v [dominio] 1-1000

# o

nc -z -v [dominio] 1-1000

Ejemplo…

netcat -z -v google.es 1-1000

El proceso puede resultar un poco lento, ten paciencia.

root@SoloLinux-demo:~# netcat -z -v google.es 1-1000
netcat: connect to google.es port 1 (tcp) failed: Connection timed out
netcat: connect to google.es port 1 (tcp) failed: Connection timed out
netcat: connect to google.es port 2 (tcp) failed: Connection timed out
netcat: connect to google.es port 2 (tcp) failed: Connection timed out

 

Con la opción -n, podemos evitar la resolución de dns y atacar directamente a la IP.

netcat -z -n -v 192.168.0.100 1-1000

# o

nc -z -n -v 192.168.0.100 1-1000

Ejemplo de salida.

sergio@sololinux:~$ netcat -z -n -v 192.168.0.100 1-1000
netcat: connect to 192.168.0.100 port 1 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 2 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 3 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 4 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 5 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 6 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 7 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 8 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 9 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 10 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 11 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 12 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 13 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 14 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 15 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 16 (tcp) failed: Connection refused
netcat: connect to 192.168.0.100 port 17 (tcp) failed: Connection refused
    --------------etc, etc-----------------------------

 

Si no quieres que se imprima la salida al completo, tan solo los puertos abiertos, filtramos la salida con el comando grep.

netcat -z -n -v 192.168.0.100 1-1000 2>&1 | grep succeeded

No ofrece ningún resultado, esto nos indica que todos los puertos del 1 al 1000 están cerrados.

sergio@sololinux:~$ netcat -z -n -v 192.168.0.100 1-1000 2>&1 | grep succeeded
sergio@sololinux:~$

Para que veas la diferencia en el resultado, ahora atacamos una IP que sabemos a ciencia cierta que tiene algún puerto abierto.

netcat -z -n -v 185.185.40.171 1-1000 2>&1 | grep succeeded

Tal como nos indica la siguiente imagen de ejemplo, esa IP en particular tiene el puerto 22 de SSH listo para su conexión.

Ejecutar Netcat en Linux

Ejecutar Netcat en Linux

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido