jueves, noviembre 20, 2014

Fugas de información en las webs de Server Testing

Este que va es el último artículo de una serie que comenzó buscando los Huevos de Pascua de PHP. Como ya os conté, buscando servidores en los que probar me topé con el fichero check.php de Symfony que mostraba datos jugosos sobre la instalación del servidor. Algo similar a un info.php que tanto ayuda cuando se encuentra en una auditoría. Buscando archivos check.php en los robots.txt llegué por pura casualidad a magento-check.php, que también daba cierta información de la infraestructura que estaba detrás cuando se había montado un servidor e-commerce con Magento. En ese punto se me ocurrió buscar otras formas de comprobación de infraestructura estaría usando la gente en sus aplicaciones web para ver qué salía. Y salió mucho y variado.

Figura 1: Riesgos de seguridad. Un leak de serverstatus.php lleva a todos los PHP Info

Lo que hice fue empezar a jugar con combinaciones de palabras habituales con los que alguien podría llamar a este tipo de ficheros para comprar los servicios. Cosas como test, info, server, status y similares. Después, buscar estas cadenas en los robots.txt y simplemente esperar a ver qué salía. El resultado fue una pléyade de ficheros info.php cambiados de nombre, comprobaciones hechas a mano con información del back-end y algunas mucho más elaboradas. 

Figura 2: Un info.php guardado como testserver.php

En la parte de comprobaciones manuales os dejo estos cuatro ficheros en los que se puede ver la dirección IP y cómo comprueba su estado, la conexión a un servidor interno SQL Server con su nombre NetBIOS de conexión y una con el resumen de todo el software instalado.

Figura 3: Un /serverstatus/ que revela la dirección IP

Figura 4: Un servertest.php que revela rutas de software.

Figura 5: Un /ServerTest/ que revela un servidor SQL interno en la red

Figura 6: Un cheks.php que informa del software de la instalación.

En otros servidores, lo que ha aparecido han sido páginas mucho más elaboradas, parece que por algún tipo de aplicación concreta, y con aún más información todavía sobre versiones de bases de datos, direccionamiento IP, versiones del framework PHP, etcétera.

Figura 7: Un /serverInfo con detalles de la instalación.

Figura 8: En este caso /server-test/ revela el software interno y hasta la instancia de Oracle

Figura 9: Un fichero /server-test.php revela software y versión del framework PHP

Por último, os dejo otro grupo donde gracias a uno de estos test se puede conocer la infraestructura de toda la red interna, además de descubrir herramientas de monitorización personales que pueden utilizarse para escanear cualquier parte de sus sistemas, ya que admiten manipulación de paramétros de entrada con el nombre del servidor.

Figura 10: Un test.html que llama dinámicamente a cada servidor para saber si está vivo.

Al final, sea mediante programas que generen los frameworks, o mediante aplicaciones manuales hechas a medida para comprobar tu infraestructura, si no proteges el acceso a estos ficheros en tus servidores web, entonces estarás teniendo fugas de información que podrán ser utilizadas por cualquier atacante para construir un ataque a medida contra tu empresa. Viendo esto, en nuestro sistema de Pentesting Persistente Faast, en la parte de fuzzing de webs hemos metido la lista de combinaciones completas de nombres de estas aplicaciones de testing de infraestructura para descubrir estas fugas de información lo antes posible.

Saludos Malignos!

1 comentario:

  1. interesante..yo estoy trasteando un rato con esta url:http://www.unitek.edu.pe aun no eh encontrado algo similar a lo de arriba..tal vez alguno de ustedes tenga mas experiencia y me lo cuente..jiji Malignos.

    ResponderEliminar