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.htmUna 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
hay que colocar el código.Se puede evitar incluso que Google cite el sitio:
<META NAME=»GOOGLEBOT» CONTENT=»NOSNIPPET»>
O que Google introduzca en su caché las páginas encontradas:
<META NAME=»GOOGLEBOT» CONTENT=»NOARCHIVE»>
Esto ultimo que parece absurdo no lo es tal, si tenemos en cuenta que Google se salta accesos que requieren de login y password, gracias a su caché; porque, curiosamente, la caché de una página web guardada en Google, en ocasiones, no requiere de usuario y contraseña. Una forma fácil y limpia de saltarse barreras.
¿Eso es todo?
Con Google se puede hacer mucho más. Por ejemplo, hay un truco muy sencillo que permite usar a Google como proxy, de modo que cuando se visita un sitio web la IP reflejada en sus estadísticas nunca será la nuestra sino la del propio Google. Las páginas similares se saltan cualquier autorización, se puede realizar búsquedas de ficheros en fechas concretas, localizar directorios CGI abiertos, servidores de correo con el relay abierto para realizar spam, números de DNI o la Seguridad Social… y un largo etcétera.
Para no extenderme demasiado diré que, en breve, anunciaré una ponencia de «Hacking con Google» en una universidad de Barcelona, a la que cualquiera podrá asistir gratuitamente; por si hay alguien que quiera saber más. La conferencia consta de una presentación Powerpoint de 150 diapositivas, plagadas de ejemplos visuales. Si alguna universidad de fuera de la Ciudad Condal está interesado en este seminario, estaré encantado de impartirlo.
Como se ha podido apreciar las posibilidades de Google son desconcertantes. Su algoritmo de búsqueda es el más apreciado por la comunidad internauta. ¡Por algo será! Pero esa misma razón es la que nos debe llevar a tomar las máximas precauciones si no queremos ver información privilegiada de nuestra empresa en manos indeseadas.
Carlos Mesa
Más información:
Zone-h
http://www.zone-h.org
API de Google
http://www.google.es/apis/reference.html
John the Ripper
http://www.openwall.com/john/
Cómo funciona Robots.txt
http://www.searchengineworld.com/robots/robots_tutorial.htm
Generador de fichero Robots.txt
http://www.webtoolcentral.com/webmaster/tools/robots_txt_file_generator/
Googlecan y otros ejemplos
http;//www.seguridad0.com