Cómo verificar (escanear) puertos abiertos con Nmap y Bash Pseudo Device

27 feb 2021 3 min di lettura
Cómo verificar (escanear) puertos abiertos con Nmap y Bash Pseudo Device
Indice dei contenuti

Introducción

Ya sea que esté solucionando problemas de conectividad de red o configurando un firewall, una de las primeras cosas que debe verificar es qué puertos están realmente abiertos en su sistema.

Este artículo describe cómo usar Nmap y Bash Pseudo Device para averiguar qué puertos están abiertos al exterior en el sistema Linux.

Un puerto de escucha es un puerto de red en el que escucha una aplicación. Puede obtener una lista de puertos de escucha en su sistema consultando la pila de red con comandos como ss, netstat o lsof. Cada puerto de escucha se puede abrir o cerrar (filtrar) usando un firewall.

Un puerto abierto es un puerto de red que acepta paquetes entrantes desde ubicaciones remotas.

Por ejemplo, si está ejecutando un servidor web que escucha en los puertos 80 y 443, esos puertos están abiertos en su firewall, cualquier persona (excepto ips bloqueados) podrá acceder a los sitios web alojados en el servidor web a través de su navegador. En este caso, ambos puertos 80 y 443 están abiertos.

Los puertos abiertos pueden representar un riesgo para la seguridad, ya que los atacantes pueden utilizar cualquier puerta abierta para aprovechar una vulnerabilidad o realizar cualquier otro tipo de ataque. Debe exponer solo los puertos necesarios para la funcionalidad de la aplicación y cerrar todos los demás puertos.

Compruebe si hay puertos abiertos con nmap

Nmap es una poderosa herramienta de escaneo de redes que puede escanear hosts individuales y redes grandes. Se utiliza principalmente para auditorías de seguridad y pruebas de penetración.

Si está disponible, nmap debería ser su primera herramienta cuando se trata de escanear puertos. Además de buscar puertos nmap, también puede detectar la dirección Mac, el tipo de sistema operativo, las versiones del kernel y mucho más.

Emita el siguiente comando de consola para determinar qué puertos están escuchando conexiones TCP desde la red:

sudo nmap -sT -p- 10.10.8.8

La bandera -sT con nmap es para buscar puertos TCP y -p- para buscar todos los puertos 65535. Si -p- no se usa nmap, solo escaneará 1000 puertos.

Starting Nmap 7.60 ( https://nmap.org ) at 2019-09-09 09:11 CEST
 Nmap scan report for 10.10.8.8
 Host is up (0.0012s latency).
 Not shown: 998 closed ports
 PORT STATE SERVICE
 22/tcp open ssh
 80/tcp open http
 MAC Address: 01:00:21:22:01:88 (Oracle VirtualBox virtual NIC)

 Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

El resultado anterior muestra que solo los puertos 22, 80 y 8069 están abiertos en el sistema de destino.

Para buscar puertos UDP, use -sU en lugar de -sT:

sudo nmap -sU -p- 10.10.8.8

Para obtener más información, visite la página de manual de nmap y lea todas las otras opciones poderosas de esta herramienta.

Encontrar puertos abiertos usando Bash Pseudo Device

Otra forma de comprobar si un puerto determinado está abierto o cerrado es utilizando el pseudodispositivo Bash shell /dev /tcp /.. o /dev /udp /...

Cuando ejecuta un comando en un pseudodispositivo /dev /$ PROTOCOL /$ HOST /$ IP, Bash abrirá una conexión TCP o UDP al host especificado en el puerto especificado.

La siguiente declaración se usa para verificar si el puerto 443 en kernel.org está abierto:

if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null'
 then
 echo "Porta aperta"
 else
 echo "Porta chiusa"
 fi
Port aperta

El tiempo de espera predeterminado cuando se conecta a un puerto usando un pseudodispositivo es enorme, por lo que estamos usando el comando timeout para terminar el comando de prueba después de 5 segundos. Si la conexión se establece para kernel.org con el puerto 443, el comando de prueba devolverá verdadero.

También puede usar el bucle for para verificar un rango de puertos:

for PORT in {20..80}; do
 timeout 1 bash -c "</dev/tcp/10.10.8.8/$PORT &>/dev/null" && echo "porta $PORT aperta"
 done

La salida se verá así:

port 22 aperta
 port 80 aperta

Conclusión

Le hemos mostrado varias herramientas que puede utilizar para buscar puertas abiertas. También hay otras utilidades y métodos para verificar puertos abiertos, por ejemplo, puede usar el socket de Python, curl, telnet o wget.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.