Estructura del contenido
QUÉ ES NMAP Y PARA QUÉ SIRVE
Nmap es una herramienta de escaneo de red muy popular y poderosa. Es utilizado por administradores de sistemas, profesionales de seguridad informática y otros expertos en tecnología para escanear redes y dispositivos conectados a ellas. Con Nmap, es posible obtener información detallada sobre los dispositivos conectados a una red, incluyendo tipo de sistema operativo, servicios en ejecución, versiones de software y más.
Se trata de una herramienta de código abierto, lo que significa que está disponible para su uso gratuito. Además, cuenta con una gran comunidad de desarrolladores y usuarios que contribuyen con mejoras y actualizaciones. La herramienta cuenta con una interfaz de línea de comando fácil de usar, y también está disponible en versiones gráficas de usuario, lo que la hace accesible para todo tipo de usuarios.
CÓMO FUNCIONA NMAP
Nmap funciona mediante el envío de paquetes de red a los dispositivos en una red. Los dispositivos responden a estos paquetes y Nmap analiza las respuestas para obtener información sobre el dispositivo. La herramienta es capaz de escanear una gran variedad de protocolos, incluyendo TCP, UDP, ICMP y otros. También es posible utilizar Nmap para escanear puertos específicos, lo que permite obtener información detallada sobre los servicios que se están ejecutando en un dispositivo.
La forma en la que la información de las redes viajan se hace principalmente mediante los protocolos TCP y UDP.
- El protocolo TCP (Transfer Control Protocol) es usado en conexiones http, pop3, imap y smtp. Está orientado a la conexión, lo que significa que se debe establecer una conexión entre cliente y servidor antes de poder enviar los datos. El servidor debe estar en escucha esperando solicitudes de conexión del cliente. Ej. aplicaciones que corren en servidor.
- Por otro lado, el protocolo UDP (User Datagram Protocol) no requiere una conexión para ser establecido y es usado por protocolos con DNS y otros que priorizan comunicaciones en tiempo real como directos o video streaming, etc.
Digamos que TCP prioriza la calidad de la conexión frente a la velocidad, y en UDP, la velocidad es más importante, aunque el vídeo o la señal sea de baja calidad…
Existen diferentes puertos cuando se hace una petición a una web y la consola nos puede reportar los que existen para esa IP.
El volumen total de puertos disponibles es de 65535, y de estos, 1.023 son los que ofreces servicios privilegiados en TCP y UDP como estos.
También puedes consultar este cheat sheet con los puertos más comunes explicados en un pdf (enlace).
Entre los cinco más importantes o usados están:
Puertos | Protocolos |
20/21 (TCP) | FTP |
22 (TCP) | SSH |
80 (TCP) | HTTP |
443 (TCP) | SSL/TLS (HTTPS) |
88 (TCP) | Kerberos |
Por defecto, NMAP escaneará los puertos por TCP, si quieres hacerlo por UDP tienes que especificarlo con el comando -sU.
CUÁLES SON LOS COMANDOS MÁS COMUNES DE NMAP
- «nmap [dirección IP o nombre de dominio]» : Este comando realiza un escaneo básico de una dirección IP o nombre de dominio específico. Muestra información sobre los servicios y puertos abiertos en el dispositivo.
- «nmap -p [puerto]» : Este comando escanea un puerto específico en un dispositivo. Por ejemplo, «nmap -p 80» escanearía el puerto 80 (HTTP) en el dispositivo especificado. Con el comando -p- escaneas todo el rango de puertos, los 65535.
- «nmap -sS» : Este comando realiza un escaneo «stealth» en el dispositivo especificado. Es útil para evitar que el dispositivo detecte el escaneo (tcpsyncportscan).
- «nmap -O» : Este comando realiza un escaneo de detección de sistema operativo en el dispositivo especificado. Muestra la información del sistema operativo del dispositivo.
- «nmap -A» : Este comando realiza un escaneo de detección de sistema operativo y servicios en el dispositivo especificado. Además de mostrar información de los servicios y puertos abiertos en el dispositivo, también intenta identificar la versión del software y otra información relevante.
- «nmap –script [nombre de script]» : Este comando permite utilizar scripts específicos para realizar tareas específicas, como identificar vulnerabilidades o buscar información específica.
- «nmap -iL [archivo de entrada]» : Este comando permite especificar un archivo de texto que contenga una lista de direcciones IP o nombres de dominio para escanear.
- «nmap –open»: Sólo los puertos con status abierto, no closed ni filtered. Si no se especifica este comando, la herramienta analizará los 1000 puertos más comunes.
- «nmap -T5»: Control del temporizado o tiempo del escaneo, en entornos controlados se puede subir a la plantilla del temporizado a 5 que es el máximo número. Esta opción genera mucho ruido pero en entornos controlados no hay problema. De esta forma el escaneo iría mucho más rápido.
- «nmap -vvv»: Verbose para no esperar a finalizar el escaneo y que toda la información que encuentre sobre los puertos lo vaya reportando en consola.
- «nmap -n»: Para no aplicar resolución DNS porque sino ralentiza el escaneo, también según la máquina que toque afectará más o menos.
- «nmap –min-rate 5000«: 5.000 paquetes por segundo ; se quitaría el T5.
- «nmap -Pn«: para quitar el Host Discovery.
- «nmap -oG«: formato grepeable para exportarlo.
- «nmap -sCV» para analizar los servicios y versiones que corren para los puertos que se especifiquen
Aquí tienes un ejemplo de escaneo que por ejemplo utiliza S4vitar en sus vídeos de resolución de máquinas en HackTheBox por ejemplo.
nmap -p- --open -T5 (-sS en Windows) --min-rate 5000 -vvv -n -Pn IP -oG allPorts
Si quieres hacer un análisis rápido de si la máquina está activa, bastaría con aplicar la siguiente ejecución de comandos:
nmap -sn IP
El comando «-sn» indica a Nmap que haga un «Ping Scan» o «Host Discovery», es decir, Nmap solo identificará qué hosts están activos en la red, pero no intentará descubrir qué puertos están abiertos en esos hosts. Cuando usas el comando nmap -sn [rango de IP]
, Nmap enviará solicitudes ICMP Echo (ping), solicitudes TCP SYN a puertos 443, y solicitudes ARP si estás en una red local. Si alguno de estos intentos tiene éxito, Nmap marcará el host como activo.
Scripts básicos de reconocimiento de servicios y versionado:
nmap -sCV -pPUERTO1,PUERTO2 IP
Aquí tienes un buen tutorial sobre el uso de NMAP por el youtuber TheGoodHacker