Nmap es una herramienta de código abierto para la exploración de red , de vulnerabilidades y audítoria de seguridad. Es usado para evaluar la seguridad de sistemas informáticos, recopilación de servicios o servidores de una red. Para ello envía unos paquetes definidos a los hosts objetivos y analiza sus respuestas. Puede ser usado para la exploración de vulnerabilidades de hosts individuales como redes extensas.
Estas son algunas de sus características:
- Descubrimiento de servidores: Identifica computadoras en una red, por ejemplo listando aquellas que responden ping.
- Identifica puertos abiertos en un host objetivo.
- Determina qué servicios está ejecutado dicho host.
- Determina qué sistema operativo y versión utiliza.
- Obtiene algunas características del hardware de red.
Nmap es compatible con un gran número de técnicas de escaneo de puertos:
- TCP Connect (-sT): Es la técnica mas vieja ya que establece una conexión TCP completa (saludo de 3 vias SYN-SYN/ACK-ACK). Si se establece la conexión eso significa que el puerto esta abierto, sino es asi entonces se encuentra cerrado. Con esta técnica tendremos muy baja probabilidad de obtener un falso positivo pero es más facil de ser detectado. Puede usarse en host con sistemas operativos Windows y Linux.
- TCP SYN (-sS): Muy parecida al TCP Connect, sin embargo, en vez de establecer la conexión con un ACK Connect, aborta dicha conexión. Es decir, si recibe un paquete SYN/ACK quiere decir que el puerto esta abierto. Si por el contrario se recibe un RST, el puerto esta cerrado. Puede usarse en host con sistemas operativos Windows y Linux.
- TCP Null (-sN): Dicha técnica envia un paquete que no contiene ningún bit. Si el puerto se encuentra abierto, no se recibe respuesta, pero por el contrario, si el puerto se encuentra cerrado, se recibira un RST/ACK. Solo puede usarse en sistemas operativos Linux o Unix.
- TCP Fin (-sF): Parecido a TCP Null. Funciona enviando un paquete FIN. Si el host objetivo no responde, dicho puertos estaría abierto. En cambio si se registrase error, estaría filtrado o cerrado. Solo puede usar en sistemas operativos Linux o Unix.
- TCP Xmas (-sX): Esta técnica se basa en el envio de un paquete con os flags FIN, URG y PSH activos. Si el host objetivo respondia con un RST/ACK, significa que puerto cerrado. Si no se respondia, puerto abierto. Es recomendable usarlo en sistemas operativos Linux o Unix.
- TCP ACK (-sA): Esta centrada en buscar puertos que están siendo filtrados por alguna clase de firewall. Si el firewall no guardase el estado de las conexiones, dejaría pasar el paquete sin problemas. En caso de que el puerto se encuentre abierto, normalmente no responderia nada. Si se encuentra cerrado se respondería un RST. Aparte de saber si dichos puertos esta abiertos o cerrados, tambien se puede saber si el firewall guarda o no el estado de las conexiones.
Veremos ahora algunas de la gran variedad de opciones que dispone Nmap:
-Pn: No realiza ping hacia el host objetivo.
-n: No realiza una resolución inversa de DNS.
-sT: Escaneo TCP Connect.
-sS: Escaneo TCP SYN.
-sU: Escaneo UDP.
-sA: Escaneo TCP ACK.
-sN: Escaneo TCP Null.
-sF: Escaneo TCP FIN.
-p: Especifica el rango de puertos a escanear.
-sV: Descubrir servicios y versiones en puertos abiertos.
--version-all: Intensidad para descubrir los servicios y versiones disponibles.
-O: Identificar el sistema operativo.
-D: Especificar la dirección IP que se usara como dirección origen en los análisis a modo señuelo.
-v[vv,vvv]: Aumenta la cantidad de información que muestra Nmap del escaneo.
-T[0-5]: Seleccionar plantilla de temporizado. Número más alto = Más rapidez.
--script: Utilizar scripts en el escaneo.
Ejemplos muy utiles del uso de Nmap:
1. Escaneo de los puertos y versión de los servicios.
2. Escaneo de puertos y obtención del sistema operativo.
3. Escaneo de puertos con dirección IP de señuelo.
4. Escaneo de puertos y ejecución de scripts de Autenticación.
5. Escaneo de puertos y vulnerabilidades.
6. Guardar la salida del escaneo en un archivo.
1. Escaneo de los puertos y versión de los servicios.
Ejecutamos Nmap con las siguientes opciones:
El resultado es el siguiente donde nos muestra que puertos esta abiertos, el servicio que se encuentra en ese puerto y su versión:
Si durante el escaneo de puertos capturamos el tráfico con Wireshark podemos ver como Nmap descubre que puertos estan abierto o cerrados mediante TCP SYN:
2. Escaneo de puertos y obtención del sistema operativo.
Ejecutamos Nmap con la opción -O para descubrir el sistema operativo que usa el host objetivo:
Aqui vemos que aparte de los puertos abiertos nos muestra la versión del sistema operativo que usa:
3. Escaneo de puertos con dirección IP de señuelo.
Ejecutamos Nmap con la opción -D donde establecemos la dirección IP de origen de nuestro escaneo de puertos:
Si miestras capturamos el tráfico con Wireshak veremos como la dirección IP de origen en el escaneo es la 192.168.56.56:
4. Escaneo de puertos y ejecución de scripts de Autenticación.
Ejecutamos Nmap y ejecutamos scripts de autenticación:
Obtendremos, a parte de los puertos abiertos, información sobre la autenticación disponible en algunos servicios:
5. Escaneo de puertos y vulnerabilidades.
Ejecutamos Nmap y le añadimos la opción de ejecutar scritps para descubrir vulnerabilidades:
Vemos por ejemplo que en el servicio Apache que se encuentra en el
puerto 8020 se ha encontrado una vulnerabilidad en las cookies que no
implementan HttpOnly. Tambien obtenemos los directorios utilizados por Apache y una vulnerabilidad a un ataque DDOS.
Aqui otras vulnerabilidades encontradas en los otros servicios:
6. Guardar la salida del escaneo en un archivo.
Solo debemos añadir la opción -oN o -oX.
Para guardar la salidad de dicho escaneo en un archivo TXT:
Para guardarlo en un archivo XML:
No hay comentarios:
Publicar un comentario