Nmap Online nos permite utilizar Nmap directamente desde el navegador para poder analizar los puertos abiertos de nuestro equipo y toda la información que sabéis que puede ofrecer Nmap. Eso sí, la limitación es que podemos lanzarlo únicamente contra nuestra IP pública de salida y toda su clase C (/24) correspondiente.
Básicamente, la idea es utilizarlo como herramienta durante la securización de nuestro sistema cuando no tenemos la posibilidad de utilizar una máquina remota para lanzar pruebas de seguridad de red y escaneos de puertos, algo necesario cuando estamos realizando configuraciones en nuestro firewall. No voy a entrar en posibles usos maliciosos que se le puedan dar a la herramienta. Es recomendable leer los TOS para tener claro que y que no se puede hacer, lo que se guardan en los registros de ese servidor, el tiempo que permanecen ahí esos datos, si son públicos, etc.
Como veis en la imagen, podemos realizar un escaneo rápido, completo o personalizado, especificando los parámetros de Nmap igual que lo haríamos en la línea de comandos.
Un truco rápido de Nmap que nos permite comprobar si un puerto UDP está escuchando en una máquina remota (para local utilizaríamos netstat).
# nmap -p PUERTO -sU -P0 IP
Por ejemplo, si queremos comprobar si la máquina 192.168.0.150 tiene a la escucha el puerto UDP 161 del servicio SNMP:
# nmap -p 161 -sU -P0 192.168.0.150
Starting Nmap 5.00 ( http://nmap.org ) at 2010-03-26 18:11 CET
Interesting ports on servidor_xx (192.168.0.150):
PORT STATE SERVICE
161/udp open|filtered snmp
MAC Address: xx:xx:xx:xx:xx:xx
Nmap done: 1 IP address (1 host up) scanned in 0.74 seconds
En la salida podéis comprobar que el puerto está a la escucha, si fuera lo contrario veríamos en el estado closed.
Existen muchas formas de escanear desde shell un rango de IPs o subnet, por ejemplo con nmap o creando un script en bash, perl, etc. No obstante aquí va una forma sencilla que he encontrado en Shell Fu:
for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done
Y la salida (escaneo desde la 192.168.1.1 a 192.168.1.10
~$ for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done
192.168.1.1 alive
192.168.1.2 dead
192.168.1.3 dead
192.168.1.4 dead
192.168.1.5 dead
192.168.1.6 dead
192.168.1.7 dead
192.168.1.8 dead
192.168.1.9 dead
192.168.1.10 dead
Comentarios recientes