Identificar Servicios Web utilizando Nmap
Una vez descubiertos los puertos TCP y UDP utilizando algún método para escaneo, la detección de versión interroga estos puertos para determinar más sobre aquello lo cual están ejecutando. La base de datos “nmap-services-probes” de Nmap, contiene pruebas para consultar diversos servicios, y expresiones de coincidencia para reconocer e interpretar respuestas. Nmap intenta determinar el protocolo del servicio (Por ejemplo FTP, SSH, Telner, HTTP, etc.), el nombre de la aplicación, (Por ejemplo Apache httpd, Solaris Telnetd, etc.), el número de versión, nombre del host, y tipo de dispositivo (Por ejemplo una impresora o encaminador), la familia del sistema operativo (Por ejemplo Windows o Linux). Cuando es posible Nmap también obtiene la representación CPE (Common Platform Enumeration) de esta información.
Primero se procede a ejecutar Nmap para realizar un escaneo contra los 65535 puertos TCP.
$ sudo nmap -Pn -n -p- 192.168.0 .50
La opción “-Pn” trata todos los hosts como su estuvieran funcionando, evita el descubrimiento de hosts.
La opción “-n” indica nunca realizar resolución DNS.
La opción “-p-” define el escaneo de los 65535 puertos.
Al no definirse el tipo de escaneo y ejecutar Nmap con los privilegios de “root”, se realiza un Escaneo TCP SYN
En base a los resultados expuestos en la columna “SERVICE”, se ha detectado un servicio http en el puerto TCP 80, y un servicio http-proxy en el puerto TCP 8080.
Dado el propósito es intentar obtener la huella de los servidores web, pues el conocer su tipo y versión permitiría luego determinar vulnerabilidades factibles de ser explotadas durante una prueba de penetración.
Se procede ahora a ejecutar un Escaneo de Versión utilizando Nmap.
$ sudo nmap -Pn -n -sV -p- 192.168.0 .50
La opción “-sV” realiza un escaneo de versión, donde se prueban los puertos abiertos para determinar información del servicio y versión.
Los resultados obtenidos con Nmap ahora incluyen una cuarta columna de nombre “VERSION”. Se ha detectado un servicio http en el puerto TCP 80, siendo un Apache httpd versión 2.4.7. En el puerto 3500 TCP también se ha detectado un servicio http, siendo WEBrick httpd versión 1.3.1. Así mismo en el puerto TCP 8080 se ha detectado un servicio http, siendo un Jetty versión 8.1.7.v20120910.
Anotar como un escaneo “TCP SYN” normal no pudo reconocer correctamente los servicios http ejecutándose en los puertos TCP 3500 y 8080. Lo cual sí fue obtenido correctamente con el escaneo de versión, siendo factible identificar información bastante detallada sobre los servicios web.
Recordar aunque sea posible obtener información sobre el software servidor y su versión, es posible sea información inexacta, o manipulada intencionalmente. Consecuentemente siempre todos los resultados generados por herramientas automáticas deben ser corroborados manualmente por un profesional.
Fuentes:
https://nmap.org/
https://nmap.org/book/vscan-examples.html
https://nmap.org/book/man-version-detection.html
https://nvd.nist.gov/products/cpe
Sobre el Autor
Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
WhatsApp: https://wa.me/51949304030
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
Youtube: https://www.youtube.com/c/AlonsoCaballero
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/