Google Hacking, Dorks Hacking, búsquedas avanzadas con Google
seguridad cero
Técnica de Google Hacking y Dorks
Esta técnica se aplica en las etapas del Ethical Hacking
- Reconocimiento
- Enumeración
- También podría tener cierta aplicación durante la etapa de escaneo, dado que se pueden encontrar direcciones IP con esta técnica.
Ethical Hacking Metodología
Búsquedas avanzadas desde un buscador, para encontrar información confidencial de diferentes sitios o aplicaciones web.
Estos comandos
nos permiten encontrar información interna confidencial de un sitio web.
Todos los comandos se pueden combinar según lo que se necesite, esto ya seria un Dork.
Más información sobre estos operadores aquí 👇
- https://ahrefs.com/blog/es/operadores-de-busqueda-avanzada-de-google/
- https://www.ma-no.org/es/seguridad/google-dorks-como-encontrar-datos-interesantes-y-buscar-como-un-hacker
¿Qué es Google Hacking?
Uso de operadores avanzados del motor de búsqueda de Google para localizar información especifica basada en los operadores utilizados.
Esta técnica nos permite encontrar desde información confidencial hasta vulnerabilidades en un sitio web.
Operadores avanzados de Google
# intitle y allintitle
intitle:
La expresión buscada o parte de la misma está en el título
allintitle:
La expresión buscada está entera en el título
La diferencia entre intitle y Allintitle es que Allintitle es mucho más específico, más estricto.
Ejemplo:
intitle:index of "awstats"
“ index of “ es un término que aparece en los sitios que permiten el listado de carpetas y archivos.
“ awstats “ es un archivo que se genera dentro de los sitios alojados en AWS que nos permite ver cuáles son las métricas o estadísticas generadas por la aplicación web.
En los archivos “ awstats “ nos vamos a encontrar con estadísticas del sitio web, los tipos de estadísticas que nos ofrece el sitio son:
- Nos ofrece una lista de URL o path que están presentes dentro de ese sitio web, con información que no es pública y que no es tan fácil de encontrar si no tuviéramos acceso a estos archivos, lo cual nos permite durante el proceso de Ethical Hacking conocer que sitios path o URL existen dentro de esta página web, podríamos dirigirnos a cada una de estos path sin necesidad de descubrirlos con otras técnicas de Hacking.
- Las IP de los visitantes, toda esta información es muy valiosa para el proceso del Hacking.
Esta técnica es muy útil para las dos etapas de las metodologías del Hacking, las de reconocimiento y enumeración específicamente
También podría tener cierta aplicación durante la etapa de escaneo dado que encontramos direcciones IP
# inurl y allinurl
inurl:
La expresión buscada está en la URL
allinurl:
Toda la expresión está en la URL
Ejemplo:
inurl:adm/login.jsp.bak
Los archivos .bak son archivos que normalmente tiene errores e información sensible o interna, por seguridad debieron ser removidos estos archivos de backup del servidor, pero no se hizo, son archivos que están en desuso que ya no tiene uso directo en la aplicación web
Estos archivos nos pudieran mostrar funciones, códigos fuentes, que quizás de alguna forma nos pudiera servir según el caso.
# site y filetype
site:
Solo busca resultados dentro de la web indicada, ej. “site:example.com”
filetype:
Solo busca archivos de un tipo ej. (dac, pdf, txt…)
Ejemplo:
site:gov filetype:xlsx
# link y cache
link:
Solo busca en páginas que tienen un enlace a una determinada web
cache:
Realiza la búsqueda de una web en la caché de Google
Estos comandos son menos utilizados, se usan con menos frecuencia, pero pueden ser útiles bajo determinadas circunstancias.
El comando link, el parámetro que recibe, es un enlace y busca en que sitios web este enlace ha sido anclado.
También tenemos el comando cache que lo que hace es que las búsquedas las restringe a sitios que están dentro de la caché de Google, por lo tanto, ej. si alguien sube un contenido a su sitio web y este queda indexado en Google luego el dueño de ese sitio web borrar ese contenido igual este va a permanecer en la caché de Google para que pueda ser consultado más adelante y no se pierda para siempre, por eso es que dice que Internet tiene memoria que Internet no olvida, si algo lego a internet y quedo registrado por algún motor de búsqueda por ejemplo.
Ejemplo:
link:example.com
cache:example.com
# intext y allintext
intext:
Encuentra páginas conteniendo una cierta palabra (o palabras) en algún lugar del contenido. Para este ejemplo, será mostrado cualquier resultado que contenga ya sea “apple” o “iphone” en el contenido de la página.
allintext:
Similar a “intext”, pero sólo se mostrarán los resultados que contengan todas las palabras especificadas en algún lugar de la página.
Ejemplo:
intext:apple iphone
allintext:apple iphone
Dorks
¿Qué es un Dork?
Un Dork es un conjunto de comandos u operadores de búsqueda; Cuando se habla de un conjunto de comandos, significa de que vamos a utilizar varios comandos operadores a la vez juntos para que nos permitan obtener información mucho más restringida y específica, de manera que la información es más valiosa para nuestro proceso de Hacking.
Dorks:
# filetype:pem intext:private
Dork:
filetype:pem intext:private
“ pem “ La extensión pem hace referencia a una llave de cifrado.
“ private “ El término private hace referencia a que es una llave privada.
Las llaves privadas no han sido hechas para ser divulgadas, deben de permanecer en secreto, en un secreto estricto para evitar que se ponga en riesgo la seguridad de la información que está siendo protegida por el uso de esta llave; sin embargo, en muchas ocasiones estas llaves de seguridad quedan expuestas en los sitios web, en repositorios de archivos y de muchas otras maneras.
Ejemplo:
Con el comando filetype:pem intext:private
ejecutado en Google se obtuvo este repositorio que está en GitHub en modo público y que almacena una llave privada, esto no está bien, ele quipo de desarrollo que está detrás de este software, querrá que esto sea así??
Por qué estas personas o estas empresas han permitido de que esta información quede expuesta de esta manera, sucede que es muy difícil controlar el acceso al código.
¿Por qué?
En el proceso del desarrollo del software, algunas empresas u organizaciones constantemente van cambiando los desarrolladores, entra un desarrollador, sale otro y en ese ir y venir muchos de los repositorios quedan públicos.
¿Por qué?
Los desarrolladores se pueden llevarse el código fuete para utilizarlo después, ya aquí se perdería el control directo del mismo, estos desarrolladores pueden exponer el código fuente en repositorios personales en modo públicos, comprometiendo así la seguridad de la organización.
O también se podría dar el caso de que cuando se le da acceso a un nuevo desarrollador, por ser más permisivo y por hacer más fácil la gestión de otorgar permisos, muchos equipos suelen dejar los repositorios en modo públicos para evitar problemas luego con los accesos.
Esto termina afectando a las empresas u organizaciones debido a que estas llaves privadas pueden quedar expuestas de forma pública para que cualquiera pueda robarlas.
Estos Dork no pueden servir de mucho para encontrar información valiosa para nuestro proceso de Ethical Hacking, imagínate que a tu cliente le dices mira, he encontrado estas llaves privadas de tu organización están expuestas públicamente, sería un buen hallazgo, el cliente lo agradecería porque va a poder establecer restricciones que evite que esta información siga siendo expuesta 😊
# site:gov ext:sql
Dork:
site:gov ext:sql
“ site “ El operador site que restringe la búsqueda a un dominio específico.
“ ext “ El operador ext de extencion, es igual al operador filetype; Ambos operador o comandos sirven para restringir la búsqueda, haciéndola muy específica a que devuelva el tipo de archivo que está siendo indicado como parámetro.
En este caso, según el ejemplo dado, la búsqueda nos va a devolver los archivos de .sql que guarda información de base de datos de consultas queries a cualquier base de datos en un sitio de tipo gov
Ejemplo:
Aquí se encontró un repositorio de un código fuente de alguna de sus aplicaciones de esta empresa, será una aplicación crítica, será una aplicación fundamental para esta empresa u organización, el hecho que esta información esté pública puede constituir un riesgo grabe para su seguridad.
# inurl:weblogin intitle:(“USG20-VPN”|”USG20W-VPN”|USG40|USG40W|USG60)
Dork:
inurl:weblogin intitle:("USG20-VPN"|"USG20W-VPN"|USG40|USG40W|USG60)
Este dork está compuesto por inurl que indica que va a buscar en la URL la palabra weblogin, la palabra weblogin está muy asociada a una determinada marca de dispositivo de comunicación.
En el cooperador intitle se especifica diferentes versiones de tecnologías de dispositivos de comunicación, estos textos están dentro de un paréntesis y algunos enmarcados en dobles comillas para hacer una búsqueda completa del texto; Estos textos están separados por un una barra | que hace referencia al operador or que quiere decir esto, quiere decir que va a buscar entre términos y mostrar todos los resultados encontrados de cualquiera de los términos especificados.
La búsqueda no es tan restrictiva, sino que abre la búsqueda, la hace más abierta permitiendo una mayor cantidad de resultados.
Ejemplo:
Al hace la búsqueda con este Dork nos encontramos con varios dispositivos de comunicación, entrando al primer enlace nos encontramos común portal de acceso a un dispositivo de comunicación, esta pantalla de control no debería dar la cara a internet, es una mala práctica, porque alguien podría buscar alguna credencial de acceso por defecto que esté asociada a una de estas tecnologías al router o dispositivo de comunicación que sea este.
También podría atacarlo mediante su IP haciendo uso de alguna vulnerabilidad del dispositivo, pudiendo así controlarlo y luego afectando la seguridad de la red que este detrás de este, es ese sentido estas consolas de administración debería estar restringidas a una red interna o en todo caso que su acceso solo sea permitido a determinada IP especifica o exacta para restringir que otros visitantes pueda dan acceder a ella sería la mejor opción en realidad.
# site:.com intitle:”index of” /ipa
Dork:
site:.com intitle:"index of" /ipa
Este dork tiene el comando site para restringir la búsqueda a un sitio específico que este dentro del alcance de la evaluación, el comando intitle tiene como parámetro “index of” que hace a un sitio que esté permitiendo el listado de archivos y carpetas, pero con el añadido /ipa esto sirve para encontrar carpetas con archivos de tipo ipa haciendo coincidir el texto index of con cualquier parte que incluya el texto /ipa haciendo referencia a un directorio
Ejemplo:
Index of /trh/ios/IPA/ipa
Index of /ipa-library/
Index of /ipa
Index of /files/ipa
Index of /IPA/IPA_chart_orig
Un archivo .ipa es el resultado de la compilación del código de las aplicaciones par IOS Apple sea Objective-C o Swift, cuando se compila este código se genera un archivo .ipa es como un .apx, .apx para Android y .ipa para IOS.
Esta es una manera con la cual los equipos de desarrollo generan el compilado para luego subirlo a la tienda de aplicaciones y utilizarlo dentro de los dispositivos que utilicen IOS; Se podría encontrar estos archivos estos compilados utilizando este tipo de búsqueda avanzada.
Normalmente, los archivos de .ipa están asociados con equipos IOS, iPhone, iPod, e iPad que han pasado por el proceso de jailbreak; Cuando uno de estos dispositivos pasa por el proceso de jailbreak se le remueve las medidas de seguridad también se pierde la garantía del dispositivo claro esta, pero ahora el usuario de este dispositivo va a tener acceso completo al control del dispositivo móvil con permisos altos, con permisos de root.
Los privilegios de root te van a permitir instalar aplicaciones modificadas las cuales se podrían encontrar en tiendas alternativas, estas aplicaciones tienen muchos problemas porque no viene de una fuente confiable, dado que pudiera tener códigos maliciosos, código arbitrario, algún tipo de malware, ransomware o cualquier otro código que podría afectar el dispositivo.
No se recomienda instalar este tipo de aplicaciones, lo que si se recomienda es hacer jailbreak a un dispositivo para poder hacer pruebas de seguridad, el mejor escenario para probar la seguridad de una aplicación móvil en IOS es tener un dispositivo con jailbreak que permite acceder a todas las funciones del sistema sin restricciones.
# inurl:pastebin “Windows 10 Product Keys*”
Dork:
inurl:pastebin "Windows 10 Product Keys*"
Este dork nos permite buscar claves de activación de Windows en sitios web, inurl con el parámetro pastebin para indicar el sitio y el término de búsqueda es “Windows 10 Product Keys*”
Ejemplo:
Esto es útil, por ejemplo, si nuestro cliente es una marca creadora de algún tipo de software que utiliza las llaves de activación para validar el acceso, se puede buscar llaves de activación expuestas de nuestro cliente para luego decirle al cliente que hemos encontrado claves de su producto expuestas en internet y que muchas personas pudieran estar aprovechándose de estas llaves de forma inadecuada para poder utilizar su software sin licencia, evadiendo así los mecanismos de seguridad que se han implementado.
En este sentido, es muy buena idea usar este tipo de Dork para encontrar estas brechas de seguridad de nuestros clientes.
Google Hacking Database
🤓 https://www.exploit-db.com/google-hacking-database
Este sitio web reúne literalmente miles, decenas de miles de Dorks de estos conjuntos de operadores de búsqueda avanzada que cuando se utilizan en conjunto nos devuelven información muy valiosa, todos estos Dorks ya han sido previamente revisados y probados. Esta lista enorme de dorks ya creados están en este sitio web a un solo clic de que se puedan usar para las pruebas de seguridad.
Estos Dorks están hechos de forma genérica, pero se pueden adecuar, modificar varios de sus parámetros para adecuarlos a un escenario de ataque.
Herramientas para Google Hacking
También hay herramientas que automatizan las búsquedas aplicando la técnica de Google Hacking para encontrar información y una de esas herramientas para Linux es theHarvester .
Cuando usamos esta herramienta lo que obtenemos es la lista de correos electrónicos del dominio del cual se está auditando, la lista de direcciones IP de los subdominios del sitio, la lista de las personas que trabajan en la empresa u organización y mucha más información valiosa que nos va a permitir dar ese primer paso, el paso al reconocimiento que es la etapa inicial mediante la metodología de ataque.
Nota:
Esto es solo una pequeña parte de lo que se necesita saber para hacer un servicio de Ethical hacking profesional.