Análisis de cabeceras http para la detección de servidores
Como hemos visto en el post anterior de ANALISIS DE
APLICACIONES WEB – INFORMATION GATHERING es muy importante la recopilación de información
de nuestro objetivo, en este caso un sitio o aplicación web, al cual se le
realizara una auditoria de seguridad, para ser mas especifico un prueba de penetración.
Para asegurarnos de que nuestra prueba de penetración sea
exitosa, debemos de contar con la información más precisa de nuestro objetivo; tecnologías
con las que trabaja y versiones de las mimas, sean tecnólogas se seguridad,
desarrollo o diseño, debemos de saber que tiene nuestro objetivo, para poder
"atacarlo".
Algo importante que nunca nos debe de faltar, es conocer qué
tipo de servidor (sistema y versión) es
el que hospeda nuestra aplicación web, aunque hoy las herramientas y diversos scripts
ya dan esta información por default, no está demás conocer la forma manual o
como dice un amigo "a la antigüita" de poder conocer esta información.
En mi post de análisis de aplicaciones web - information
gathering mencione que una de las técnicas es provocar un error en la aplicación
web, esto por un motivo que nos importa. En la mayoría de los mensajes de
error, sean: 404, 403, 502, etc. en la parte inferior del mensaje viene información
del servidor.
Esta información puede ser:
- Sistema
- Versión
- Puerto
Podemos conocer esta información, con solo provocar un
error, para eso basta en la URL modificar un poco, por ejemplo si la dirección
URL es: www.sitio.com/search.php nosotros podemos hacer lo siguiente
www.sitio.com/pa y listo tenemos el error. Por otra parte cuando tengamos algo como www.sitio.com nostros hacemos que el sitio falle al indicarle un archivo no existente al cual nosotros queramos consultar, por ejemplo www.sitio.com/drok3r.php
Como pueden ver en la imagen, al probocar un error en la aplicacion web, nos muestra un mensaje, donde nos dice que la URL solicitada al servidor "www.sitio.com/droker.php" no existe. En la parte inferior, tenemos la informacion del servidor, el cual es un apache en la version 2.2.19 y el puerto de conexion el cual es el 80.
No todo el tiempo tenemos suerte.
En algunos casos, los WebMasters pueden configurar el
mensaje del error y no tener información, ¿en estos casos que podemos hacer?
Algo que podemos hacer es analizar las cabeceras HTTP. Las
Cabeceras HTTP son los parámetros que se envían en una petición o respuesta
HTTP al cliente o al servidor para proporcionar información esencial sobre la
transacción en curso. Estas cabeceras proporcionan información mediante la
sintaxis 'Cabecera: Valor' y son enviadas automáticamente por el navegador o el
servidor Web.
Nosotros podemos tener acceso a estas y verificar que
servidor es el que esta almacenando nuestro objetivo, para hacer esto no se
requiere de saber algo súper avanzado o tener una herramienta especial (si
existen), basta con la herramienta de desarrollo que tiene cada navegador, en
este caso Firefox:
Como podemos ver en la imagen superior, en la sección
inferior derecha está el contenido de la cabecera, tanto de petición como de
respuesta.
Si vemos en la cabecera que dice Server tiene el valor
"Apache/2.2.19", es decir este sitio tiene un servidor apache versión
2.2.19, con esta información podemos realizar una búsqueda de vulnerabilidades,
que en este caso tenemos 24 vulnerabilidades, entre ellas bypass, Ovarlo, DoS,
XSS, etc. Es cuestión de ponernos a realizar las pruebas de penetración.
Otra forma que tenemos de analizar las cabeceras http, es por medio de herramientas, diseñadas especificamente para esta lavor, por ejemplo tenemos servicios online, que nos pueden ser de mucha utilida.
En lo personal recomiendo estas extensiones, disponibles para FireFox. Una cosa importante a tener en cuenta, es que los WebMasters, en ocasiones recurren a una técnica, con la cual, pueden modificar estos valores, podemos decir que realizan spoofing en las cabeceras http, algunos lo llaman HeaderSpoofing con el fin de cambiar estos valores y poner otras versiones que nada tienen que ver, con el servidor y su versión, con esto pueden enviar al atacante a un Honeypot, etc. Ya en otro post veremos un poco mas esta técnica.
Post: Drok3r
Te recomiendo leer: HPP Http Parameter Pollution | Contaminación de Parámetros HTTP
0 Comentarios