¿Es posible usar Google como herramienta de hacking? La idea se me ocurrió cuando un día examinando los logs de un sitio atacado descubrí en el análisis forense una URL referida desde Google, con un parámetro de búsqueda muy concreto. De esto hace bastantes años. Pero, al poco, volví a descubrir el mismo parámetro examinando los logs de otro sitio web. Una investigación posterior me llevó hasta varios grupos brasileños. Poco después, conseguía acceder a los foros privados de estos grupos, gracias a la intervención de un amigo introducido en este underground. Y entonces comprendí el por qué de esas huellas. En una de las múltiples “scenes” internacionales, grupos de hackers brasileños, competían entre sí por ver quién era capaz de desfigurar más sitios web en un solo mes, para luego vanagloriarse de sus logros en Zone-h.org. El procedimiento era siempre el mismo. Usaban operadores booleanos de búsqueda en Google de ciertas debilidades de protocolos o programas, y una vez localizados, usaban una serie de exploits compilados para conseguir privilegios suficientes como para modificar la página de inicio. Al contrario de lo que mucha gente pueda imaginar, aquellos hackers no atacaban sitios concretos. No perdían el tiempo porque Google era su herramienta de búsqueda para encontrar los sitios más débiles. Ese era el truco. Ese era su juego. Desde entonces me interesé por Google como herramienta de hacking.
Mientras esperamos el libro con trucos de Google que Anaya publicará en breve, voy a desgranar cómo el buscador se puede usar para buscar ficheros comprometedores.
Nadie parece leerse el documento de referencia sobre la API de Google. Pero el documento es magnífico para entender el funcionamiento avanzado sobre búsquedas. Por ejemplo, si yo quiero localizar un término que haga referencia a la palabra “password” en un sitio web, me basta con usar la siguiente sintaxis de búsqueda:
password site: www.victima.com
Intitle, por ejemplo, sirve para localizar términos en la búsqueda del título de una web. Sabiendo que un sitio web se indexa por el contenido de a dónde apunta esa URL, y que ésta se clasifica como “title” las mentes despiertas entreverán algunas de sus posibilidades. Si a esto añadimos que Google usa el término “index of” para delimitar el sitio índice de la palabra buscada, podemos someter esto mismo a combinaciones.
intitle:”Index of c:Windows”
¿Falta decir qué está buscando exactamente? Sobran los comentarios, pero cabe imaginar las posibilidades que puede tener Google.
Por experiencia personal he podido comprobar que mediante operadores booleanos y cierta sintaxis de búsqueda, se pueden encontrar carpetas de administración, gestores de bases de datos sin contraseña, directorios con copias de seguridad, ficheros de contraseñas, directorios a la vista del sistema operativo, mensajes de error que descubren información sobre el sistema, volcados de bases de datos, informes Excel, estadísticas, archivos abiertos de configuración de una web, ficheros de inicialización, históricos de MySQL, listas de contraseñas en formato texto, claves privadas PGP (no públicas), históricos bash, versiones antiguas de Apache buscando en su documentación online, y hasta versiones antiguas de Internet Information Server 4 con solo buscar por su mensaje de bienvenida (intitle:”Welcome to IIS 4.0″).
Cuando se descubre un fichero de contraseñas cifrado en Apache, basta aplicarle un programa como John the Ripper, para conocer el contenido.
Las posibilidades de Google son infinitas. Pero si uno piensa que esas búsquedas se limitan a sitios web o ficheros de Office descuidados, es que es un incauto.
Pongamos por caso otro ejemplo. Algunos clientes de correo generan un fichero llamado “dead.letter” cuando un usuario que estaba escribiendo un mensaje decide cancelarlo. Eso quiere decir que una búsqueda de este fichero nos proporcionaría el contenido de un documento a medio escribir. Probémoslo:
intitle:index.of dead.letter
Interesante, ¿no es cierto?
Para la realización de unas cuantas prácticas, he desarrollado un formulario desplegable que realiza algunas búsquedas por los términos de la lista. Está disponible en esta dirección: http://www.seguridad0.com/ejemplos/googlescan/
Actualmente dispongo de unos 300 términos de búsqueda con operadores booleanos y términos especiales de Google para búsquedas avanzadas. Dejo al lector que ensaye y encuentre los suyos. Estaré encantado de compartirlos con aquellos que me comuniquen los suyos.
Cómo defenderse
El problema de la indexación de Google no es del motor de búsqueda sino del negligente administrador del sitio conectado a Internet. Google no es una herramienta de hacking como tal, sino un potente sistema de localización; lo que traducido en otras palabras quiere decir que no debemos permitir a Google que indexe según qué páginas web o directorios.
El procedimiento para desconectar de Google es sencillo. Se basa en pasarle las órdenes oportunas en un fichero llamado “robots.txt” que dejaremos en el directorio raíz. Este fichero en texto plano indican a los buscadores, robots o crawlers, como les quieras llamar, qué partes de tu sitio web son indexables.
Un método sencillo para que Google no indexe ninguna de tus páginas es colocar las siguientes líneas en el fichero “robots.txt”
User-Agent: *
Disallow:/
Aunque para ser más preciso también se podría indicar que no indexara determinados directorios. Véase este ejemplo:
User-Agent: *
Disallow: /admin/
En este caso se está impidiendo la indexación del directorio “admin”. Y así se podría repetir la línea para todos los directorios que deberían ocultarse del buscador.
Otra posibilidad consiste en hacer uso de las etiquetas meta de la cabecera de cualquier fichero index.htm
Una línea como la siguiente:
<META NAME=”GOOGLEBOT” CONTENT=”NOINDEX, NOFOLLOW”>
permite la exclusion de la indexación, pero página por página; es decir que entre