Escanear puertos con el comando netcat en Linux

Ya sea que desee usar SSH en un puerto alternativo o implementar una aplicación web en un puerto específico, el primer paso siempre será verificar si se está utilizando el puerto.

La utilidad netcat es una de las herramientas preferidas para solucionar problemas de redes y también se puede usar para escanear puertos.

Para examplesi quiero verificar si el número de puerto 22 está abierto en mi VM local, usaré el comando netcat de esta manera:

                      
                        nc -zvn 192.168.1.6 22
                      
                    

Y como puede ver, el puerto 22 está abierto para conexiones. Eso fue fácil.

Pero espere, hay más que puede hacer con el comando netcat.

Escaneo de puertos con el comando netcat

Primero debe instalar el comando netcat, ya que no viene preinstalado en muchas distribuciones.

Para distribuciones basadas en Debian / Ubuntu :

                      
                        sudo apt install netcat
                      
                    

Para Fedora y RHEL:

                      
                        sudo dnf install nc 
                      
                    

Ahora, comencemos escaneando múltiples puertos.

Escanee múltiples puertos usando el comando netcat

Para escanear varios puertos a la vez usando netcat, debe seguir la sintaxis de comando dada:

                      
                        nc -zvn <target> port1 port2 port3
                      
                    

Aquí,

  • -z se utiliza para indicar a netcat que escanee puertos sin establecer una conexión.
  • -v produce una salida más detallada.
  • -n detiene netcat para realizar la resolución de nombres de dominio.

Escanear puertos dentro de un rango específico usando el comando netcat

De hecho, puede usar el método anterior para escanear múltiples puertos, pero ¿qué sucede si desea escanear más de 50 o 100 puertos? Puede definir el rango.

Para examplesi quiero escanear puertos que van del 1 al 100, este sería mi comando:

                      
                        nc -vz -w3 google.com 1-100
                      
                    
                      
                        [email protected]:~$ nc -vz -w3 google.com 1-100
nc: connect to google.com (142.250.183.110) port 1 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 1 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 2 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 2 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 3 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 3 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 4 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 4 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 5 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 5 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 6 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 6 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 7 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 7 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 8 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 8 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 9 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 9 (tcp) failed: Network is unreachable
nc: connect to google.com (142.250.183.110) port 10 (tcp) timed out: Operation now in progress
nc: connect to google.com (2404:6800:4009:823::200e) port 10 (tcp) failed: Network is unreachabl
                      
                    

Por supuesto, es google, y no puede esperar tener los puertos abiertos para usted. Pero puede usar esto para su servidor y puede encontrar puertos abiertos

Parece una lista bastante larga de puertos no disponibles, ¿verdad? En este caso, puede usar el comando grep para obtener solo los puertos abiertos:

                      
                        netcat -w1 -znv 192.168.1.6 1-100 2>&1 | grep succeeded
                      
                    
use el comando grep para buscar puertos abiertos en Linux

Aquí,

  • -w1 obligará al comando netcat a esperar 1 segundo para cada puerto.
  • 2&1 redirige el error estándar.

Terminando

Esta fue una guía rápida sobre cómo escanear puertos abiertos usando el comando netcat. Ya que has encontrado los abiertos, quizás te gustaría saber cómo close esos puertos.

Espero que esta guía resuelva cualquier duda que hayas tenido anteriormente y si no, házmelo saber en los comentarios.

Capacitación de la Fundación Linux

Related Posts