Skip to main content

Google Dorking: Verificar la seguridad de tu sitio o aplicación web usando Google

Google Dorking (también conocido como Google Hacking) es un recurso muy utilizado por los especialistas en ciberseguridad. Consiste en utilizar los operadores básicos y avanzados soportados por Google para realizar búsquedas muy específicas y poder detectar vulnerabilidades o información sensible incorrectamente publicada en un sitio o aplicación web.

Para dejar en claro como se pueden utilizar estos operadores en el sentido mencionado, se detalla a continuación un listado de los operadores de búsqueda básicos soportados por Google [1]:

Operador Búsqueda de ejemplo Significado
"" "MySQL dump 10.13" Búsqueda exacta. Muestra sólo resultados que contengan la expresión exacta MySQL dump 10.13.
AND computer AND security Operador lógico AND. Utilizado por defecto si no se especifica ningún operador. Muestra resultados que contengan el término computer y también el término security.
OR computer OR security Operador lógico OR. Muestra resultados que contengan el término computersecurity o ambos.
| computer | security Sinónimo del operador OR pero más corto e intuitivo si estás acostumbrado a usar expresiones regulares.
* computer * security Operador comodín. Muy útil combinado con el operador de búsqueda exacta. Muestra resultados que contengan el término computer (seguido de uno o más términos) y que luego también contengan el término security.
- computer -security Operador de negación. Se puede aplicar sobre términos o sobre otros operadores de búsqueda. Muestra resultados que contengan el término computer pero que no contengan security.
~ ~cybersecurity Búsqueda similar. Muestra resultados que contengan términos parecidos o sinónimos de cybersecurity, como por ejemplo cyber security o cyber-security.
() (pc | computer) security Operador para agrupar y ordenar términos de búsqueda. Muestra resultados que contengan el término security y que también contengan computer, pc o ambos.
.. port 1..1024 Operador para especificar rango de números. Muy útil combinado con el operador de búsqueda exacta. Muestra resultados que contengan el término port seguido de un número que esté entre 1 y 1024.

En segundo lugar, se enumera un listado con los operadores de búsqueda avanzados más importantes:

Operador Ejemplo Significado
site: site:openminds.com.ar Muestra sólo resultados indexados dentro del dominio openminds.com.ar.
cache: cache:openminds.com.ar Muestra el contenido del sitio openminds.com.ar almacenado en el cache de Google durante el último indexado.
intitle: intitle:cybersecurity Muestra resultados que contengan el término cybersecurity dentro de la etiqueta title del código HTML. Se puede especificar un sólo término o varios términos agrupados con el operador lógico OR.
allintitle: allintitle:secret document Muestra resultados que contengan tanto el término secret como también document dentro de la etiqueta title del código HTML. Se puede especificar más de un término separados por un espacio en blanco.
inurl: inurl:cybersecurity Muestra resultados que contengan el término cybersecurity dentro de la URL. Se puede especificar un sólo término o varios términos agrupados con el operador lógico OR.
allinurl: allinurl:secret document Muestra resultados que contengan tanto el término secret como también document dentro de la URL. Se puede especificar más de un término separados por un espacio en blanco.
intext: intext:cybersecurity Muestra resultados que contengan el término cybersecurity en alguna parte del contenido de la página. Se puede especificar un sólo término o varios términos agrupados con el operador lógico OR.
allintext: allintext:secret document Muestra resultados que contengan tanto el término secret como también document en alguna parte del contenido de la página. Se puede especificar más de un término separados por un espacio en blanco.
filetype: filetype:pdf Muestra sólo resultados que sean archivos con extensión .pdf. Se puede utilizar cualquier otra extensión como .doc, .xls, .txt, etc.
ext: ext:pdf Sinónimo del operador filetype pero más corto.

Para finalizar, se presentan variados ejemplos de búsqueda que combinan los operadores listados anteriormente con el fin de ilustrar como se pueden utilizar para detectar vulnerabilidades o información crítica incorrectamente publicada en un sitio o aplicación web.

Ejemplo 1: Buscar archivos con extensión .pdf

site:openminds.com.ar filetype:pdf

Al realizar esta búsqueda en Google, se mostrarán todos los archivos con extensión .pdf indexados dentro del dominio openminds.com.ar. Una búsqueda tan simple como esta, mucha veces arroja resultados con documentos que contienen información crítica y que están accesibles por error en forma pública. En lugar de la extensión .pdf, se puede utilizar cualquier otra extensión como .txt, .doc, .xls, .sql, etc.


Ejemplo 2: Buscar sitios o aplicaciones web que no estén usando HTTPS

site:openminds.com.ar -inurl:https

Al ejecutar esta búsqueda, se mostrarán todos los sitios o aplicaciones web dentro del dominio openminds.com.ar que no estén usando HTTPS. Esto es de gran ayuda cuando se está en un proceso de transición de HTTP hacia HTTPS con el objeto de encriptar las comunicaciones.


Ejemplo 3: Buscar archivos de registro con información sensible

site:openminds.com.ar filetype:log intext:(username|password)

En este caso se mostrarán todos los archivos con extensión .log, que contengan los términos username o password y que estén alojados en el dominio openminds.com.ar. Dicho de otra forma, se busca algún archivo de registros del servidor que esté equivocadamente publicado a través del servidor web y que tenga información sensible como usuarios o contraseñas. Otra variante similar de esta búsqueda sería especificar la extensión .txt e incluir los términos robots.txt y disallow. De esta manera se busca acceder al contenido del archivo robots.txt en el cuál se especifican archivos y carpetas del dominio que el administrador no quiere que sean indexados por Google y que pueden contener información sensible que sigue siendo pública.


Ejemplo 4: Buscar archivos dentro de un directorio listado por un servidor web

site:openminds.com.ar intitle:“Index of /” (contraseñas.txt|passwords.txt)

En este ejemplo se busca dentro del dominio openminds.com.ar algún directorio particular cuyo contenido esté siendo listado por el servidor web y que dentro de ese directorio haya algún archivo llamado contraseñas.txt o passwords.txt. Utilizar el operador intitle:"Index of /" junto con un dominio es muy útil para detectar directorios cuyo contenido está siendo listado por error. En lugar de los archivos .txt especificados, se podría realizar la búsqueda incluyendo otros nombres de archivos interesantes como: databases.sql.zip, emails.xls o id_rsa con la intensión de encontrar bases de datos comprimidas, hojas de cálculo con direcciones de correo electrónico o llaves RSA privadas respectivamente.


Ejemplo 5: Buscar directorios públicos listados por un servidor FTP

site:openminds.com.ar intitle:"Index of /" inurl:ftp

Google no sólo indexa contenido de los servidores web, sino también de los servidores FTP. En este caso se busca dentro del dominio openminds.com.ar algún directorio público que esté siendo listado por el servidor FTP. Este es otro ejemplo interesante de como se puede usar el operador intitle:"Index of /" para detectar información que esté siendo publicada por error.


Ejemplo 6: Buscar páginas potencialmente vulnerables a un ataque de SQL injection

site:openminds.com.ar inurl:php?id=1..10

En este ejemplo se buscan páginas web dentro del dominio openminds.com.ar que tengan definido un parámetro llamado id con un valor entre 1 y 10. Los resultados luego pueden ser analizados para comprobar si el valor del parámetro es validado correctamente antes de realizar operaciones sobre la base de datos o si es vulnerable a un ataque de SQL injection. El nombre del parámetro y el rango especificado en este caso representan sólo una posibilidad de las muchísimas combinaciones que pueden usarse para buscar este tipo de vulnerabilidad.

Estos ejemplos están muy lejos de ser una lista exhaustiva de búsquedas para determinar si un sitio o aplicación web presenta vulnerabilidades o información sensible publicada por error. El objetivo de los ejemplos es ilustrar como Google puede ser usado como una herramienta para detectar estos problemas. En la práctica, las posibilidades de combinar los operadores y realizar búsquedas avanzadas son infinitas. Por suerte hay varias listas públicas de estos dorks que pueden ser utilizadas para realizar análisis más profundos. También hay algunas herramientas muy útiles como DorkMe [2], dorkbot [3], BinGoo [4] o Zeus-Scanner [5] que pueden ser de gran ayuda para automatizar este proceso.

Referencias:
[1] https://support.google.com/websearch/answer/2466433?hl=es
[2] https://github.com/blueudp/DorkMe
[3] https://github.com/utiso/dorkbot
[4] https://github.com/Hood3dRob1n/BinGoo
[5] https://github.com/Ekultek/Zeus-Scanner