Descubriendo los activos de una organización (II)

miércoles, 4 de junio de 2014

Como se describía en la entrada anterior, uno de los puntos clave en una auditoria es la parte de descubrimiento. Se repasaron distintas técnicas de crawling, búsquedas en servidores DNS, uso de buscadores web y otros elementos para obtener un considerable número de activos. Cuantos más activos se analicen, mayor es la probabilidad de encontrar vulnerabilidades.

Estas técnicas suponen un importante apoyo para conseguir activos o información referente a la organización representada en la web. Para decidir cuál es la más adecuada en cada momento, es necesario tener en cuenta que algunas dependen del lenguaje, del servidor, otras de la configuración implantada por los administradores, de la plataforma de desarrollo y los múltiples gestores de contenido... Para cada uno de estos niveles o circunstancias, surgen habitualmente nuevos métodos o técnicas que pueden ser aprovechadas.


Algunos de los plugins en Faast

Fuerza bruta

Los ataques por diccionario se usan para descubrir archivos o directorios que no se encuentran referenciados en la propia web. Durante una auditoria resulta muy recomendable utilizar herramientas versátiles y con grandes diccionarios como DirBuster o WFuzz que aporten resultados que no han podido ser recuperados a través de otras vías.

Las técnicas de fuerza bruta dinámica también se recomiendan para localizar copias de seguridad basadas en los activos ya encontrados. Por ejemplo, en ocasiones los editores de texto como EMACS o Vim generan ficheros temporales con extensiones que el servidor web no interpretará. De esta forma el servidor enviará el fichero en texto plano, como los ficheros con extensión .bak. Un ejemplo claro de descubrimiento de información sensible son los scripts de automatización que podrían realizar la copia de seguridad de un directorio y dejarlo comprimido en el mismo directorio o adyacentes.

Así, apoyándose en la fuerza bruta, Faast es capaz de detectar elementos ocultos que genera el sistema operativo para retroalimentarse gracias a la información que aportan determinados ficheros sobre la estructura de archivos. Algunos de estos ejemplos son:

  • En Linux, de forma predeterminada, al usar el comando wget se genera el archivo .listing. En su interior se encuentra información sobre la ejecución del comando, con datos sobre el dónde se ha subido o dónde se han descargado determinados ficheros.
  • Por otro lado en sistemas operativos de Apple, es posible encontrar archivos .DS_Store, generados por Finder, donde se pueden extraer información sobre archivos similar a la que podría encontrarse en el archivo .listing.
  • En entornos Microsoft y en concreto en XP y 2003, no es extraño encontrar los archivos desktop.ini que almacenan opciones de personalización para el explorador de Windows y que puede contener rutas internas y nombres de usuarios.
  • En Windows también se generan archivos thumbs.db que almacenan miniaturas de imagen para ser previsualizadas por el explorador de Windows. 
  • Independientemente del sistema operativo, Faast también es capaz de detectar archivos ocultos generados por repositorios de código, como por ejemplo GIT, Mercurial o subversion. 

Análisis de fuga de información

Además de la recolección de activos, también es fundamental identificar el software del servidor que se está auditando. Faast implementa un fingerprint pasivo capaz de analizar e identificar qué tipo de servidor o gestor de contenido usa el sitio. Al forzar la aparición del error 404 o 500 en las aplicaciones web, se pueden recuperar rutas internas u otro tipo de información sensible, sobre todo cuando el servidor se encuentra en modo depuración (debug).

Eror 404 en Apache

Con respecto a la fuga de información, es importante aprovechar que los administradores hacen uso de las "buenas prácticas" para un mejor posicionamiento en los buscadores. Por ejemplo el uso de ficheros robots.txt y sitemap.xml que pueden dar pistas de rutas que contienen información sensible. Igual ocurre con el fichero humans.txt, que podría contener información sobre los desarrolladores, los lenguajes implementados o las herramientas usadas.

La correcta combinación de técnicas de descubrimiento como el crawling, la fuerza bruta y la recolección de información filtrada en la posterior parte de análisis y explotación, serán las encargadas de retroalimentar el flujo y generarán cada vez más activos que deban ser auditados, multiplicando las posibilidades de una auditoría en la que se realmente se compruebe por completo la seguridad del servidor.

* Descubriendo los activos de una organización (I)
Óscar Sánchez
oscar.sanchez@11paths.com

No hay comentarios:

Publicar un comentario