Conceito
Também chamado de Google Dorking ou GH, é uma técnica de Information Gathering, realizada através do buscador Google, que utiliza parâmetros/caracteres coringa (dorks) para pesquisa avançada e específica. Dork é o conjunto de caracteres em expressão para busca avançada.
O Google é o maior buscador (search engine) da internet, onde a indexação de sites é realizada através de algoritmos denominados crawlers (rastreadores - Googlebot), que percorrem as páginas web através da identificação dos links presentes nas mesmas, guardando as páginas no BD do buscador, através da referência do link ou, até mesmo, salvando cópia da página na cache do buscador. Um search engine funciona da seguinte maneira:
- Descoberta de URLs: Via menu de links, categorias, sitemap;
- Crawling: Acesso a página web, execução de js;
- Indexação: Análise de tags html, idioma, país, outras informações relevantes;
- Entrega de resultados: Com base na relevância.
Existem inúmeros mecanismos de pesquisa avançada no Google. Google Trends, Alerts, filtros de busca por sites/arquivos, imagens, vídeos, livros, etc. Pode-se pesquisar através de imagens (reverse search - busca reversa), usando o mecanismo de ML denominado 'Leans'.
Como a maioria do conteúdo das páginas web é salva na cache do Google, é possível até mesmo recuperar conteúdo de sites que foram apagados/desligados. Para isso, basta, nos resultados da pesquisa, clicar nos 3 pontos ao lado do título do resultado da pesquisa específico, e clicar na opção 'Em cache', que mostrará o conteúdo salvo na cache do Google. Governos, como na China, geralmente utilizam GH para realizar monitoramento ativo da sociedade. São inúmeras as possibilidades para uso de Google Hacking, como obter senhas e informações salvas em arquivos txt, encontrar documentos, como contratos confidenciais, em pdf, apresentações PowerPoint confidenciais, páginas de sites vulneráveis, painéis de admin (Sistemas, roteadores, câmeras, webcams abertas...), informações pessoas, etc.
Operadores:
- site: Busca um site específico (site:wikipedia.org, site:.gov.br)
- related: Busca sites relacionados (related:wikipedia.org)
- around: Busca por proximidade (ubsocial AROUND(3) programação)
- cache: Busca em sites salvos no cache do Google (cache:wikipedia.org)
- intitle / allintitle / inposttitle: Busca termo contido no título da página web (intitle:wikipedia, intitle:index of, allintitle:"Painel de Login")
- inurl / allinurl / blogurl: Busca termo na url (inurl:wikipedia, inurl:.php id=1, inurl:admin/php, allinurl:tsweb/default.htm, allinurl:"wp-content/plugins/wordpress-popup/views/admin/")
- filetype: Busca tipo de arquivo (filetype:pdf, filetype:sql, filetype:pdf "contrato" + "confidencial" + "cpf")
- intext / allintext / inbody: Busca termo contido na página (intext:wiki)
- contains: Busca sites que contém termo (contains:pdf)
- info: Busca informações similares, como textos, links e páginas (info:wikipedia.org)
- source: Busca em site proprietário (programação source:ubsocial)
- link: Busca links de páginas (link:wikipedia)
- imagesize: Busca tamanho exato de imagem, incombinável com demais operadores (imagesize:320x320)
- inanchor: Busca termo em hiperlinks (inanchor:ubsocial)
- numrange: Intervalo de quantidade de resultados (numrange:1-50)
- daterange: Intervalo de datas de resultados (2452671-2452671 columbia)
- author/ allinpostauthor / inpostauthor: Busca autor da página (author:ubsocial)
- group: Busca por grupo de autoria da página (group:ubsocial)
- msgid: Busca por grupo msgid de autoria da página (msgid:ubsocial)
- insubject: Busca por assunto de grupo
- subject: Busca por assunto de páginas (subject:linux)
- meta: Busca metatags específicas
- location / loc / region / near: Busca por região específica (USA: loc:3166-1)
- altloc / language: Busca por localização/linguagem como pt-br ou en-us
- book: Busca por título de livros
- maps:[localização]: Busca por localização de mapa
- weather: Previsão do tempo (weather:dubai)
- define: Dicionário (define:"marketing")
- movie: Título de filme (movie:the social network)
- stocks: Ações financeiras (stocks:apple)
- linkfromdomain: Busca por links de relacionado domínio (linkfromdomain:ubsocial.github.io)
- phonebook: Busca por telefone (phonebook:(510) 555-2222 ou nomePessoa)
- feed / hasfeed:[url]: Busca por feed RSS
- ip: Busca por endereço IP (ip:192.158.1.38.)
Operadores lógicos:
- " ": Busca padrão-palavra-frase exata ("wikipedia", "site do governo")
- NOT ou -: Exclui termo da busca (ubsocial site -windows, -site:com.br)
- OR ou |: Combina termos na busca, ou um ou outro (ubsocial OU youtube)
- AND ou +: Combina termos na busca, um e outro (ubsocial AND youtube, site:.gov.br "usuario" + "senha" + "cpf", inurl:gov.br "login" + "senha")
- ~: Busca sinônimos (ubsocial ~programacao)
- ( ): Agrupam operadores, para dorks mais complexas em expressões
- *: Coringa, pode ser qualquer caracteres ou nada antes/entre/depois da expressão (ubsocial site de * no youtube)
- @: Busca em redes sociais (@wikipedia)
- #: Busca por hashtags (#ubsocial)
- $ / € / £ / ¥: Busca por preços (smartphone $2800)
- to / in: Conversão (100 libs to kg)
- .: Substitui por qualquer caracter (.eb aplicação)
- ..: Busca entre faixas mínimo/máximo (smartphone $2800..$5800)
Links:
- GHDB: Google Hacking Database, no Exploit Database, é um arsenal open source com milhares de dorks previamente prontas: Acesse
- uDork: Shell Script que realiza Google Hacking automaticamente: Acesse
- Google Hacking Tool: Automatizador online de Google Hacking: Acesse
- Tabela de operadores Google Hacking: Tabela para cola (pdf): Acesse
Exemplos:
- Dorks com vários comandos: intitle:"index of" intext:"Apache/2.2.3", site:gov.br filetype:pdf intitle:confidencial
- Câmeras: intitle:"webcamXP 5" ou inurl:top.htm inurl:currenttime
- Câmeras ao vivo: inurl:"lvappl.htm"
- Dispositivos online: "inurl:system_device.xml"
- Previsão do tempo: intitle:"Weather Wing WS-2"
- Conferências Zoom: inurl:zoom.us/j and intext:scheduled for
- Servidores FTP abertos: intext:"index of" inurl:ftp ou intitle:index.of "parent directory" ou intitle:index.of name size ou ".git" intitle:"Index of"
- Servidores Web vulneráveis: inurl:/proc/self/cwd ou intitle:"Apache2 Ubuntu Default Page: It works" ou inurl:_cpanel/forgotpwd ou filetype:config inurl:web.config inurl:ftp ou intitle:index.of server.at
- Administração Wordpress: intitle:"Index of" wp-admin
- Arquivos seinsíveis de frameworks: filetype:.env
- Arquivos sensíveis de desenvolvimento: inurl:Dashboard.jspa intext:"Atlassian Jira Project Management Software" ou inurl:app/kibana intext:Loading Kibana
- Chaves SSH privadas: intitle:index.of id_rsa -id_rsa.pub ou filetype:log username putty
- Arquivos governamentais: allintitle: restricted filetype:doc site:gov
- Listas de emails: filetype:xls inurl:"email.xls" ou site:.edu filetype:xls inurl:"email.xls" ou allintext:email OR mail +*gmail.com filetype:txt
- Diretórios administrativos: inurl:/wp-admin ou intext:adminpass ou inurl:8080 intitle:"Dashboard [Jenkins]"
- Arquivos sensíveis de banco de dados: "index of" "database.sql.zip"
- Banco de Dados abertos: Via Phpmyadmin. "Index of" inurl:phpmyadmin
- Falha SQL Injection: "nomeSite"+inurl=index.php?id=1
- Banco de dados indexados: "index of nomeOuDominioSite mysql/data" (Ou somente mysql no final)
- Buscar pessoas: "CPF + nome + RG + Conta Bancária" site=gov.br
- Grupos públicos Whatsapp: intext:chat.whatsapp.com and intext:São Paulo and intext:futebol
- Arquivos txt sensíveis: inurl:/wp-content/uploads/ ext:txt "username" AND "password" | "pwd" | "pw" ou xamppdirpasswd.txt filetype:txt ou site:github.cominurl:sftp-config.json ou filetype:passwordjmxremote
- Arquivos de logs: allintext:username filetype:log
- Arquivos de banco de dados: Geralmente relacionados a backups e despejos (intitle:"index of" "dump.sql")
- robots.txt: Arquivos removidos da indexação (crawlers) do Google, informar campo na url do browser (url/robots.txt)
Formulário busca Google:
<!--Formulário customizado de pesquisa no Google-->
<form method="get" action="http://www.google.com/search">
<input type="text" name="q" maxlength=255 value="">
<br>
Tipo de arquivo:
<select name="as_filetype">
<option value="ppt">PowerPoint</option>
<option value="xls">Excel</option>
<option value="doc">Word</option>
</select>
<br>
Site de busca:
<select name="as_sitesearch">
</option>
<option value="tompeters.com">TomPeters.com</option>
<option value="state.ca.us">State of California</option>
<option value="loc.gov">The Library of Congress</option>
</select>
<input type="hidden" name="num" value="100">
</form>