viernes, noviembre 08, 2013

Hacking con buscadores en los repositorios Open Source

En la última conferencia Asegúr@IT que impartimos en Málaga participó el gran Enrique Rando con una charla sobre Hacking con Buscadores. En esa charla enseñaba trucos avanzados de cómo sacar provecho a todo lo que había escrito en su libro de Hacking con Buscadores e hizo algunas demos muy impactantes. Entre otras cosas utilizaba unos dorks para buscar las vulnerabilidades directamente en los repositorios de código para localizar proyectos Open Source con bugs de SQL Injection que después pudieran ser explotados en sus instalaciones en real. Aquí hay algunas de las demos que realizó, con un ejemplo de búsqueda de Command Injection localizando herramientas que hacían Ping.

Figura 1: Demos de la presentación de Enrique Rando en el Asegur@IT 9 de 2011

El analizar los proyectos Open Source no es nuevo, y las empresas de búsqueda de bugs que se dedican profesionalmente a esto, tienen sus analizadores de código conectados a todos los repositorios para revisarlos constantemente, ya que ahí puede salir de todo. Nosotros lo hicimos también tras publicar las técnicas de Blind LDAP Injection para localizar proyectos vulnerables.

En la última Hack.Lu 2013 los investigadores Dennis Pellikaan y Thijs Houtenbos de la Universidad de Amsterdam han impartido una charla analizando los proyectos de de GitHub y SourceForge para localizar vulnerabilidades SQL Injection, Remote File Injection y de Command Injection, utilizando para ello dorks para localizar instrucciones como estas.

Figura 2: instrucciones vulnerables a buscar en los proyectos de GitHub y SourceForge

Por supuesto, de los resultados iniciales han tenido que ir filtrando todo para quitar los que tengan protecciones extras que invaliden la vulnerabilidad, para lo que se implementan una especie de analizador de código estático utilizando expresiones regulares que filtren los que tienen alguna protección de los que no tienen ninguna.

Figura 3: Expresiones regulares para localizar los bugs en el código

Una vez tienen esto, el resto es automatizar la búsqueda de estos proyectos por medio de dorks en Google o BING para hacer un poco más de hacking con buscadores, saltándose para ello los captcha del motor de búsquedas haciendo uso de Round Robin sobre 13 distintas direcciones IP y realizando una petición cada 8 segundos, lo que les permitió localizar unas 122.000 URLs vulnerables y explotables indexadas por los buscadores.

Figura 4: Por tipo, los bugs más localizados siguen siendo SQL Injection

Estas URLs encontradas se convierten en maná para los distribuidores de malware, los amigos del Fraude Online, los especialistas en Black SEO, ya que con un kit de exploits actualizado podría permitir llegar a millones de usuarios para crear unas buenas botnets de gran tamaño.


Figura 5: Proyectos vulnerables y distribución de ellos en repositorios de código

En la presentación hay también resultados de porcentajes de proyectos vulnerables o no con estas tres vulnerabilidades analizadas, y los resultados son bastante malos, tal y como se puede ver en estas gráficas, así que si vas a poner un proyecto Open Source, procura que sea uno mantenido y cuidado - que los hay - y no uno subido y abandonado en su repositorio de código - que los hay -.

Saludos Malignos!

4 comentarios:

  1. Tienes razón por eso en la terminal te alertan cada que tratas de meter un repositorio nuevo.
    Aunque la mayoría de las veces uno mete repositorios que son conocidos también seria bueno algún proyecto que se dedicara exclusivamente a revisar y catalogar repositorios.
    ya que aunque tienen un potencial muy grande son también el talón de aquiles en la mayoria de los distros base linux.

    ResponderEliminar
  2. Buenas.

    ¿Por qué generar una lista de aplicaciones vulnerables en determinadas máquinas es bueno para black seo? ¿es porque intrusionan la máquina y lanzan visitas desde esa máquina que forma una botnet y consiguen potenciar la indexación de manera no legal sobre una url que visiten? ¿Cómo logran potenciar la visibilidad con black seo con una botnet (entiendo que es lo que comentas en el artículo) sin tirar el alojamiento que quieren indexar? ¿Tienen las botnet el c&c algún mecanismo para que no visiten todos los bots la web simultáneamente?

    Un saludo y gracias por el artículo.

    ResponderEliminar
  3. veo que siempre haces ejemplos con php y qué pasa con node/express?

    ResponderEliminar
  4. Eso es totalmente imposible porque todo el mundo sabe que en el opensource hay millones de ojos mirando y dispuestos a encontrar errores y de arreglarlos ellos mismos. Además los mejores programadores son los del oepnsource, porque no trabajan por dinero sino por la satisfaccion y compromiso de que su código será visto. Y el código mas eficiente ysin fallas es el opensource.

    Todo tal como lo predice ese libro absolutamente técnico llamado 'la catedral y el bazar'.
    Salu2
    Alluh Ackbar.

    ResponderEliminar