Obtener Huellas del Servidor Web

  • Posted on: 9 July 2019
  • By: ReYDeS

La huella del servidor web es una tarea crítica para el profesional en pruebas de penetración y hackinético. El conocer la versión y tipo del servidor ejecutándose, permite determinar vulnerabilidades conocidas y los códigos de explotación adecuados a utilizar durante las pruebas.

Existen diferentes proveedores y versiones de servidores web en el mercado actual. Conocer el tipo de servidor web siendo evaluado ayuda significativamente en el proceso de pruebas, como también puede cambiar el curso de las mismas. Esta información puede ser derivada de enviar comandos específicos hacia el servidor web para luego analizar los resultados, pues cada versión de software para servidor web puede responder de manera diferente a estos comandos.

Conociendo como cada tipo de servidor web responde hacia comandos específico, y manteniendo esta información en una base de datos, un profesional en pruebas de penetración puede enviar estos comandos hacia un servidor web, analizar su respuesta, y compararla con una base de datos de firmas conocidas. Se debe anotar, usualmente se necesitan diversos comandos para identificar precisamente el servidor web, pues diferentes versiones pueden reaccionar de manera similar a los mismos comandos. Raramente diferentes versiones reaccionan igual hacia todos los comandos HTTP. Así al enviar diferentes comandos se incrementa la precisión.

Objetivo de la Prueba

Encontrar la versión y tipo del servidor web ejecutándose, para determinar vulnerabilidades conocidas, y los códigos de explotación adecuados a utilizar durante las pruebas.

Como Evaluar

Prueba de Caja Negra

La manera más simple y básica de identificar un servidor web es mirar en el campo “Server” en la cabecera de respuesta. Se puede utilizar la herramienta netcat.

Considerar la siguiente respuesta:

# nc.traditional -n -v 192.168.0.Y 80

Desde el campo “Server”, se puede conocer es un servidor Apache, versión 2.2.8, ejecutándose en un sistema operativo Ubuntu Linux.

De un servidor IIS 7.0 se obtiene lo siguiente.

# nc.traditional -n -v 192.168.0.X 80

Sin embargo esta metodología de prueba está limitada en precisión. Existen muchas técnicas las cuales permiten a un sitio web ofuscar o modificar el banner. Como por ejemplo.

En este caso el campo “Server” esta modificado. No se puede conocer la versión exacta del servidor Apache, ni tampoco información del sistema operativo.

Comportamiento del Protocolo

Existen técnicas más refinadas, las cuales toman en consideración diversas características de los diversos servidores webs disponibles. A continuación se detalla dos criterios para permitir deducir el tipo de servidor web utilizado.

Orden de los campos de las cabeceras HTTP: El primer método consiste en observar el orden de algunas cabeceras en la respuesta. Cada servidor web tiene un orden en las cabeceras. Consideremos estas dos respuestas devueltas por dos diferentes servidores Apache.

Notar la similaridad en el orden de las cabeceras, aunque de hecho existan otras las cuales se incluyan en la respuesta.

Prueba de peticiones formadas inadecuadamente: Otra prueba útil a ejecutar involucra peticiones malformadas o peticiones inexistentes hacia páginas del servidor.

Se puede notar como cada servidor responde de manera diferente. La respuesta también difiere en la versión del servidor. Observaciones similares pueden ser hechas creando peticiones con verbos o métodos HTTP inexistentes. Por ejemplo.

La petición se procesa exitosamente

La respuesta del servidor expone un mensaje de error.

Pruebas Automáticas

En lugar de confiar en la captura manual del banner y análisis de las cabeceras del servidor web, un profesional en pruebas de penetración puede utilizar herramientas automáticas para alcanzar los mismos resultados. Existen muchas pruebas a realizar para obtener una huella precisa del servidor web. Afortunadamente existen herramientas para automatizar estas pruebas. Una de estas herramientas es “httprecon”. El cual utiliza diversas pruebas para reconocer el tipo y versión del servidor web utilizado.

Pruebas En Linea

Las herramientas en línea pueden ser utilizadas si el profesional en pruebas de penetración requiere hacer pruebas más sigilosas, no deseando conectarse directamente hacia el sitio web en evaluación. Un ejemplo de una herramienta en línea la cual proporciona mucha información sobre los servidores web es “Netcraft”. Con esta herramienta es factible obtener información sobre el sistema operativo, servidor web utilizado, tiempo de funcionamiento, propietario del bloque de red, historial de cambios, etc.

Remediación

Proteger la capa de presentación del servidor web detrás de un proxy inverso fortalecido, y ofuscar las cabeceras del servidor web de la capa de presentación. (Apache y IIS).

Fuentes:

https://www.owasp.org/index.php/Fingerprint_Web_Server_(OTG-INFO-002)
http://netcat.sourceforge.net/
https://www.computec.ch/projekte/httprecon/
https://searchdns.netcraft.com/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1