GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar Netcat para escanear puertos abiertos en Linux

Netcat (en resumen, NC) es una utilidad de investigación, depuración e interconexión de redes informáticas rica en funciones que admite una amplia gama de comandos para administrar redes y monitorear el flujo de datos de tráfico de red entre sistemas que utilizan el Protocolo de control de transmisión (TCP) y el Protocolo de datagramas de usuario. (UDP).

Netcat puede ser una herramienta muy útil para que los administradores de redes y sistemas reconozcan rápidamente cómo está funcionando su red y qué tipo de actividad de red está ocurriendo en el sistema.

En este artículo, discutiremos cómo instalar y usar esta utilidad netcat versátil para realizar escaneos de puertos simples para identificar puertos abiertos en sistemas Linux.

Instalar Netcat en Linux

Netcat debería estar disponible en casi todas las distribuciones modernas de Linux usando el administrador de paquetes predeterminado como se muestra.

$ sudo yum install nc [En CentOS/RHEL/Rocky Linux/AlmaLinux]$ sudo dnf install nc [En Fedora 22+ y RHEL 8]$ sudo apt install Netcat [En Debian/Ubuntu]

Escaneo de puertos Linux con comandos Netcat

Una vez que haya instalado la utilidad Netcat en su servidor Linux, puede comenzar a realizar un escaneo de puertos de red, que inspeccionará el estado de todos los puertos en el dominio o la dirección IP especificados para que pueda descubrir si hay un firewall u otro mecanismo de bloqueo. lugar.

Por ejemplo, podemos escanear todos los puertos hasta 1000 ejecutando el siguiente comando usando -z opción, que solo realizará un escaneo en lugar de intentar abrir una conexión, y -v opción para notificar a netcat para producir información más detallada.

$ netcat -z -v google.com 1-1000O $ nc -z -v google.com 1-1000

La salida se verá así:

netcat:error de conexión al puerto 1 (tcp) de google.com:tiempo de conexión outnetcat:error de conexión al puerto 1 (tcp) de google.com:no se puede acceder a la rednetcat:error de conexión al puerto 2 (tcp) de google.com:conexión outnetcat cronometrado:error de conexión al puerto 2 (tcp) de google.com:la red es inalcanzablenetcat:error de conexión al puerto 3 (tcp) de google.com:conexión outnetcat cronometrada:error de conexión al puerto 3 (tcp) de google.com:la red no es accesiblenetcat :falló la conexión al puerto 4 (tcp) de google.com:conexión cronometrada outnetcat:falló la conexión al puerto 4 (tcp) de google.com:la red es inalcanzablenetcat:falló la conexión al puerto 5 (tcp) de google.com:conexión cronometrada outnetcat:conexión al puerto 5 (tcp) de google.com falló:no se puede acceder a la red...

También puede realizar un escaneo de puertos para la dirección IP usando -n opción para definir que no necesita resolver la dirección IP usando DNS.

$ netcat -z -n -v 192.168.0.173 1-1000OR$ nc -z -n -v 192.168.0.173 1-1000

La salida se verá así:

netcat:conexión a 192.168.0.173 puerto 1 (tcp) falló:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 2 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 3 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 4 (tcp) falló:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 5 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 6 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 7 (tcp) falló:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 8 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 9 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 10 (tcp) falló:Conexión rechazadanetcat:conexión a 192.168.0.173 puerto 11 (tcp) fallada:Conexión rechazadanetcat:conexión a 192.168.0.173 puerto 12 (tcp) fallada:Conexión rechazadanetcat:conexión a 192.168.0.173 puerto 13 (tcp) fallada:Conexión rechazadanetcat:conexión al puerto 14 (tcp) 192.168.0.173 falló:Conexión rechazadanetcat:conexión a 192.168.0.173 puerto 15 (tcp) fallida:Conexión rechazadanetcat:conexión a 192.168.0.173 puerto 16 (tcp) fallada:Conexión rechazadanetcat:conexión a 192.168.0.173 puerto 17 (tcp) fallada:Conexión rechazadanetcat:conexión a Error en el puerto 18 (tcp) 192.168.0.173:Error en la conexión netcat:conectar al puerto 19 (tcp) 192.168.0.173:Error en la conexión netcat:conectar al puerto 20 (tcp) 192.168.0.173:Error en la conexión netcat:conectar al puerto 21 192.168.0.173 (tcp) falló:conexión rechazada¡Conexión al puerto 192.168.0.173 22 [tcp/*] exitosa! netcat:conexión a 192.168.0.173 puerto 23 (tcp) falló:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 24 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168.0.173 puerto 25 (tcp) fallida:conexión rechazadanetcat:conexión a 192.168 .0.173 puerto 26 (tcp) falló:Conexión rechazadanetcat:conexión a 192.168.0.173 puerto 27 (tcp) falló:Conexión rechazada...

En el resultado anterior, puede ver claramente que el puerto SSH tradicional está abierto en el rango de 1-1000 en la máquina remota.

Si solo desea imprimir los puertos abiertos en la pantalla, debe filtrar la salida con el comando grep como se muestra.

$ netcat -z -n -v 192.168.0.173 1-1000 2>&1 | grep tuvo éxito OR$ nc -z -n -v 192.168.0.173 1-1000 2>&1 | grep tuvo éxito

Salida:

¡Conexión al puerto 192.168.0.173 22 [tcp/*] exitosa! ¡Conexión al puerto 192.168.0.173 80 [tcp/*] exitosa!

También puede escanear puertos individuales.

[ También te puede interesar:Cómo encontrar y cerrar puertos abiertos en Linux ]

Para obtener más información y uso, lea las páginas man de netcat.


Linux
  1. Cómo usar BusyBox en Linux

  2. Cómo uso cron en Linux

  3. Cómo averiguar la lista de todos los puertos abiertos en Linux

  4. Cómo enumerar los puertos abiertos en el servidor Linux/Unix

  5. Cómo abrir puerto en Linux

Cómo hacer un escaneo de puertos en Linux

Cómo comprobar los puertos abiertos en Linux

Cómo abrir un puerto en Ubuntu 20.04

Cómo comprobar que un puerto está abierto en un sistema Linux remoto

Cómo encontrar y cerrar puertos abiertos en Linux

¿Cómo comprobar los puertos abiertos en Linux?