OSINT: Usando Google com Eficiência

O Google é um dos maiores motores de busca do mundo, em seu motor é armazenado informação de milhares e milhares de sites indexados via GooglesBot. Utilizando operadores avançados e entendendo o conceito de strings é possível extrair inteligência com rapidez e eficácia.

Em 2005 no evento Blackhat USA O pesquisador Johnny Long aka j0hnny | j0hnnyhax apresentava entusiasmado técnicas sobre opções avançadas do Google. Nomeou tal conhecimento de Google Hacking e mais tarde tal conceito consolidou-se como um dos pilares investigativos na WEB. Johnny publicou o livro Google Hacking for Penetration Testers que mudou a forma que muitos analistas enxergam os motores de busca.
– Facebook: Johnny Long
– Twitter: Johnny Long

Thank you!

CONTEXTO

No trabalho diário de qualquer analista é necessário usar os motores de busca de forma rápida e eficiente, conhecer operadores do motor de busca usado e seus conceitos é algo fundamental para identificar o asset a extrair inteligência desejada.

Para melhor entendimento do conteúdo é necessário absorver alguns conceitos.

CONCEITOS

TermoDescrição
GooglebotGooglebot é o nome genérico do rastreador da Web do Google. Esse nome é usado para dois tipos diferentes de rastreadores: um rastreador para computadores e outro para dispositivos móveis que simulam a ação de um usuário em cada um desses ambientes.
robots.txtUm arquivo robots.txt informa aos rastreadores do mecanismo de pesquisa quais URLs podem ser acessados no seu site. Esse recurso é usado principalmente para evitar a sobrecarga do site com solicitações e não funciona como um mecanismo para manter uma página da Web fora dos resultados da pesquisa do Google.
Operadores de BuscaOs operadores de busca do Google (às vezes chamados de operadores de busca avançada do Google ou comandos de busca do Google) são comandos especiais que ampliam as capacidades das buscas de texto regulares no Google.
Google Hacking ou Google DorkingGoogle Hacking tambem conhecido como Google Dorking. Envolve o uso de operadores de busca avançados para localizar erros específicos de escrita em resultados de busca. Alguns exemplos populares são métodos para encontrar versões de aplicativos Web vulneráveis.
DorkDork é um operador ou conjunto que forma a busca avançada.
StringNa programação de computadores, uma cadeia de caracteres ou string é uma sequência de caracteres, geralmente utilizada para representar palavras, frases ou textos de um programa. Dentro do contexto de busca avançada string é aquela palavra chave ou conjunto que viabiliza sua busca.
Agrupamento de StringsÉ um conjunto de strings que tem como objetivo forçar um contexto de busca.

OPERADORES DE BUSCA / GOOGLE

Cada motor de busca tem seus operadores de pesquisa que em resumo são opções avançadas para um usuário mais detalhistas, neste caso vamos focar em operadores Google. muitas vezes um operador usado de forma isolada não traz um resultado satisfatório, mas concatenado com 1..2 ou mais opções é possível usufruir de seus benefícios.

Sintaxe de operador

  • operador:termo_buscado
OperadorExemploPropósito
site:site:army.milPesquisar um determinado domínio ou subdomínio
related:related:army.milPesquisar páginas relacionadas ou semelhantes ao domínio
cache:cache:nsa.govPesquisar uma versão cacheada do domínio target.
intitle:intitle:LoginPesquisa o título de uma página
intext:intext:aeródromoPesquisa sites que contenham determina palavra.
inurl:inurl:index.phpPesquisa por um padrão dentro da URL
filetype:filetype:xlsxPesquisa arquivos de uma determinada extensão
ext:ext:xlsxPesquisa arquivos de uma determinada extensão
link:link:army.milPesquisa por sites que apontam para determinada URL
autor:autor:Barack ObamaPesquisa por publicações de um autor específico
after:
before:
after:2021-02-01 before:2021-02-02 ucrânia Pesquisa por sites em um determina range de data
after:
before:
after:2021/02/01 before:2021/02/02 brasilPesquisa por sites em um determina range de data
location:location:RocinhaPesquisa notícias / publicações que a origem esteja em um determinado local
define:define:haxorPesquisa pela definição de uma determinada palavra
numrange:numrange:10-50 chinaPesquisa sites que tenham um determinado número dentro do range
50..100Pesquisa sites que tenham um determinado número dentro do range
weather:weather:kievPesquisa o tempo de uma terminada região
stocks:stocks:petrobrasPesquisa por valores de ações
inanchor:inanchor:resetProcura o texto de hiperlinks
“”“phpMyAdmin”Pesquisa por um padrão exato
+Apreciação + doutrináriaPesquisa por mais de uma palavra
Apreciação -doutrináriaPesquisa excluí palavras da pesquisa
ORVermelho OR PretoPesquisa combina duas palavras usando o operador lógico “OU”
|Vermelho | PretoPesquisa combina duas palavras usando o operador lógico “OU”
&Vermelho & PretoPesquisa combina duas palavras usando o operador lógico E, onde é obrigado retornar sites que existem as duas palavras.
ANDVermelho AND PretoPesquisa combina duas palavras usando o operador lógico E, onde é obrigado retornar sites que existem as duas palavras.
( )(Vermelho | Preto | Amarelo)Agrupa múltiplos termos ou operadores para controlar como a busca é mostrada.

ENTENDENDO O USO DE OPERADORES

EXEMPLO 01

O exemplo abaixo trabalha com 5 operadores onde especificamos um domínio target, a palavra chave deseja que cria o contexto especifico, tipo de arquivo e o período que tal arquivo foi disponibilizado na internet.

  1. site:mil.br
    • Filtro pelo domínio *.mil.br
  2. intext:”cyber”
    • Procura por menções a palavra cyber
  3. ext:pdf
    • Pesquisa por arquivos da extensão .PDF
  4. after:2022/02/01 before:2022/02/10
    • Efetua um filtro de arquivo indexados / postados entre depois de 01/02/2022 antes de 10/02/2022

EXEMPLO 02

Aqui pretendo demonstrar o uso de operadores lógicos e concatenação e atribuído determinadas palavras chaves para reforçar um contexto de busca. Sem usar o operador site: foi possível forçar o Google filtrar por determinado domínio. A junção do operador inurl: , operador lógico "&" e uma string de contexto “gov.ru“.
É usado uma segunda string de contexto “mail“, mas tal informação é para forçar o motor de buscar arquivos referenciando a palavra “*mail*“. Por fim são usados operadores ext: e sinal lógico onde ext: filtra arquivos .xlsx e xls e nosso operador lógico “|” é responsável pela validação “OU”.

  1. inurl:ru & “gov.ru”
    • Criação de contexto filtrando urls com .ru e atribuindo valor gov.ru, mas tudo isso ganha muito mais força com uso do operador lógico "&"
  2. & “mail”
    • Operador lógico para forçar a busca da palavra “mail”.
  3. & ext:xlsx | ext:xls
    • Operador lógico para reforçar contexto e filtro de arquivos xlsx e xls, mas validando com operador “|” ( UM OU OUTRO ).

CONCEITO ORGANIZACIONAL DE STRING E AGRUPAMENTO DE STRINGS

Com o tempo usando dorks(operadores) não só via Google, mas em diversos motores de busca. Hoje uso esse “conceito organizacional” de string e agrupamento de strings. Que deixa as dorks mais elegantes e muitas vezes aumenta sua efetividade.

INFO: Não criei o conceito de strings em bots ou motores de busca, tal expressão sempre foi usada em IRCs na década de 90 muito antes do Google ser o Google.

STRING: É literalmente o valor que reforça o contexto da busca. nem sempre a string é uma palavra direcionada ao humano, mas sim especificamente forçar um melhor filtro ( Lembrando esse conceito é dentro de dorking ).
Exemplo:

  1. 202cb96
  2. admin
  3. <?php $

AGRUPAMENTO DE STRING: Em meu conceito agrupamento é a concatenação de string e operadores lógicos. Seja usando o operador ( ) , livremente dentro da busca. tal modelo funciona melhor com operadores positivos “AND”, “&” ou “+” do que excludentes “-“. Hoje minha preferencia de usado é o operador “AND”, pois usando operador “&” o Google tem forçado uma tradução.

Exemplo:

  1. ( "Vermelho" AND "Verde" AND "Preto" )
  2. "Vermelho" AND "Verde" AND "Preto"
  3. ( +"Vermelho" +"Verde" +"Preto" )
  4. +"Vermelho" +"Verde" +"Preto"
  5. -"Vermelho" -"Verde" -"Preto"

Os conceitos de string isolada e agrupamento tem seu uso efetivo com concatenamento de outros operadores.

Exemplo:

  1. site:gov.br ("Undefined" AND "syntax" AND "error" AND "line" ) -transparencia -softwarepublico -www.gov.br
  2. site:mil.br "inteligencia" AND "relatorio" ext:pdf
  3. "gov.ru" site:ru ext:xlsx

Lembrando que tais informações sobre string e agrupamento é um conceito organizacional de suas dorks. Não tento reinventar a roda, mas é somente um detalhe para melhoria de dorks.

REF

Post feito ao som de: