String-X, Google Hacking e o tal do Ciclo de Inteligência

Imagem gerada por AI. O texto meio bugado

Se você já passou da fase de “script kiddie” ou “acumulador de IOC” e entendeu que a inteligência de verdade muitas vezes é resultado da manipulação de dados brutos.

Hoje vamos colocar a mão na massa e automatizar todo esse ciclo utilizando a ferramenta String-X (GitHub do MrCl0wnLab). A atividade consiste em uma diligência de coleta focada no domínio gov.br, com o objetivo de levantar o maior número possível de URLs relacionadas ao target. Para escalar a análise, será empregada IA (Gemini) na interpretação de cada URL, gerando descrições automáticas e encaminhando os resultados de forma contínua para um canal no Telegram.

WARNING: Nem vou perder tempo explicando o que é Google Dorking. Em 2026, se alguém ainda precisa disso para trabalhar com Intel ou OSINT, é melhor voltar para apostila do curso online genérico. Vamos combinar: entender Dorking é o mínimo, se você não entende de tal contexto, volte duas casas.

Quem atua com CTI (Cyber Threat Intelligence) / OSINT sabe que a fase de coleta é onde chicote estrala e, muitas vezes, onde ele também falha. No entanto, coletar dados por si só não gera inteligência. Na prática, isso representa apenas a matéria-prima bruta.

Para que infos dispersas, ruído e artefatos técnicos se tornem inteligência acionável, é indispensável aplicar o Ciclo de Inteligência. É esse “filtro” que organiza a coleta, orienta o processamento, conduz a análise e garante que o resultado final seja relevante, contextualizado e utilizável para tomada de decisão (resumo: não seja acumulador de IOC).

Imagem gerada por AI. O texto ficou todo bugado

Segmentarei o artigo dentro do contexto do ciclo de inteligência, abaixo uma imagem ilustrativa com a ideia de todo fluxo usando a ferramenta.

Imagem gerada por AI

1. Planejamento e Direcionamento

O primeiro passo é definir o escopo e o que estamos procurando. Sem um plano / direcionamento, você vai se afogar em dados inúteis.

  • O Objetivo:
    • Mapear URLs do domínio gov.br e identificar endpoints expostos que possam conter dados sensíveis (logs, planilhas, erros de servidor, sites php).
    • Expandir alvos acessando cada URL coletada e extraindo mais alvos.
    • Usar ferramenta de AI (Google Gemini) para atribuir contexto à informação coletada
      • Prompt: Atue como analista de segurança. Faça uma análise técnica (300-500 chars) sobre o propósito e estrutura desta URL. Quebras de linha com \n. Termine com a URL original: {STRING}
    • Filtrar URL valores por domínios alvo gov.br
  • A Estratégia: Utilizar o String-X para automatizar buscas (Dorking) e criar uma pipeline de filtragem, análise e disseminação.

Para começar, criamos um arquivo chamado dorks.txt com nossas strings de busca focadas no alvo

gov.br+index.php
gov.br+error
gov.br+log
gov.br+xls
Code language: Bash (bash)

2. Coleta de Dados

Com nosso planejamento feito, partimos para a coleta bruta. Vamos executar o String-X passando nosso arquivo de dorks. O objetivo aqui é varrer motores de busca (Yahoo) e trazer tudo o que bater com nossas regras. É possível usar muitos outros motores de busca de forma concatenada, ex: -m 'clc:yahoo|clc:google|clc:lycos'

O Comando:

strx -l ./dorks.txt -st "echo {STRING}" -m 'clc:yahoo'  -o dorking-results-gov.br.log 
Code language: Bash (bash)

Nesta etapa, o String-X vai cuspir um monte de informações no nosso arquivo de saída. É muito dado, mas ainda não é inteligência. Precisamos limpar isso (devemos focar no objetivo gov.br).

3. Processamento

Aqui é onde o joio é separado do trigo. A coleta anterior entrega volume, mas também traz muito ruído típico dos motores de busca. Agora entramos na fase de filtro.

Vamos executar o String-X novamente, reutilizando o output gerado no dorking (dorking-results-gov.br.log) como input. Sobre esse material bruto, aplicamos o módulo de extração de URLs (ext:url), que opera com regex para validação estrutural das strings.

Em paralelo, utilizamos o parâmetro -filter para garantir que apenas URLs que contenham gov.br sobrevivam ao processo.

O Comando:

strx -l ./output/dorking-results-gov.br.log -st "echo {STRING}" -filter 'gov.br' -module 'ext:url' -pm -o urls-clear-gov.br.log
Code language: Bash (bash)

Boom. Agora temos um arquivo urls-clear-gov.br.log contendo apenas links válidos, vivos e vinculados ao nosso target.

3.1 Coletando Mais URLS

Usaremos o módulo spider para coletar mais URLs, que funciona basicamente acessando (via request) cada URL coletada pelos motores de busca e extraindo URLs do HTML. Será utilizado como input o arquivo urls-clear-gov.br.log.

O Comando:

strx -l ./output/urls-clear-gov.br.log -st 'echo {STRING}' -m 'clc:spider' -pm -o urls-spider-gov.br.log
Code language: Bash (bash)

3.2 Limpeza e Consolidação de Resultados

Usaremos o módulo ext:url novamente, mas agora com objetivo de remover o ruído gerado pelo modulo spider (clc:spider) e concatenar URLs coletadas em urls-spider-gov.br.log e urls-clear-gov.br.log

O Comando:

cat ./output/{urls-clear-gov.br,urls-spider-gov.br}.log | strx -st "echo {STRING}" -filter 'gov.br' -module 'ext:url' -pm -o urls.logCode language: Bash (bash)

4. Preparação para Análise / Disseminação

Bom, vamos deixar uma coisa bem clara: script não lê mentes. Se você não definir exatamente o que ele deve fazer, ele simplesmente não faz. Simples assim.

Por isso, antes de sair rodando módulos feito louco, precisamos setar algumas variáveis globais que serão consumidas internamente pelos módulos da ferramenta. Nada de mágica, é configuração explícita.

Para resolver isso, foi criado um arquivo de configuração em JSON (default.json), onde ficam definidos os valores padrão da tool.

  • Arquivo de configuração: /string-x/src/stringx/config/default.json

Dentro do nosso cenário de análise, vamos acoplar AI no fluxo usando o Google Gemini através do módulo ai:gemini. O módulo Gemini vai analisar cada URL coletada, gerar uma descrição contextual, e despejar o resultado direto no canal de Telegram usando con:telegram.

4.1 Gemini

Para seguir com a configuração das variáveis utilizadas pelo módulo Gemini, é obrigatório definir a API Key.
A chave deve ser gerada diretamente em: https://aistudio.google.com/app/api-keys

Após coletar sua API Key, atribua o valor à variável: STRX_GEMINI_APIKEY

Esse é o mínimo necessário para o módulo funcionar.
Caso o cenário exija ajustes mais finos, outros parâmetros podem ser editados conforme a necessidade — mas sem a key, não roda.

Variáveis:

"STRX_GEMINI_APIKEY": "",
"STRX_GEMINI_MODEL": "gemini-2.5-flash",
"STRX_GEMINI_TIMEOUT": 30,
"STRX_GEMINI_MAX_TOKENS": 4096,
"STRX_GEMINI_TEMPERATURE": 0.7,
Code language: JSON / JSON with Comments (json)

4.1 Telegram

Para receber informações em nosso canal de Telegram devemos criar um canal para coletar CHAT ID e BOT TOKEN. abaixo segue alguns passo que ajudará no processo

Passo a Passo para Criar o Bot

  1. Encontre o BotFather: Pesquise por “@BotFather” no Telegram, inicie a conversa e clique em “start”.
  2. Crie um novo bot: Envie o comando /newbot e siga as instruções para definir um nome.
  3. Defina o username: Escolha um nome de usuário (username) único que termine obrigatoriamente com “bot” (ex: meu_exemplo_bot).
  4. Salve o Token: O BotFather fornecerá um API Token. Guarde-o com segurança, pois ele é a chave para o seu bot funcionar.
  5. Inicie uma conversa: Vá até o bot criado @meu_exemplo_bot e envie o comando /start
  6. Coletar Chat ID: Utilize a URL abaixo, respeitando exatamente a formatação indicada e incluindo o seu API Token. Ao acessar essa URL, a API retorna um objeto JSON contendo diversos campos. Entre eles, destacam-se os campos from.id e chat.id, que são justamente as informações necessárias para identificar o Chat ID que será setado em nosso arquivo default.json. (tutorial: How to Get Telegram Chat ID (Easy Guide))
    • https://api.telegram.org/bot{API_TOKEN}/getupdates
      • {"message_id":....,"from":{"id":111111111111,...."},"chat":{"id":111111111111,....

Variáveis:

"STRX_TELEGRAM_BOT_TOKEN": "",
"STRX_TELEGRAM_CHAT_ID": "",
Code language: JSON / JSON with Comments (json)

5. Análise / Disseminação

Temos as URLs, mas entrar de uma em uma procurando contextos / descrição é trabalho braçal e no século 21 (ou peça para um JR fazer) nós não fazemos isso. Vamos integrar Inteligência Artificial (robozinho do capeta) ao nosso ciclo.

A partir daqui, só entram URLs que já passaram pelo crivo. Nada de lixo. Essas URLs validadas são jogadas direto no módulo de IA Gemini (ai:gemini).

O prompt não é decorativo: ele dita exatamente o que a IA deve extrair. Cada URL é analisada individualmente para criar uma descrição curta e objetiva. O objetivo é simples, dar contexto ao dado bruto, reduzir ruído e preparar o material para correlação, pivô e tomada de decisão nas próximas etapas do fluxo.

Nota: Neste passo, a análise ocorre em conjunto com a disseminação através do encadeamento de módulos.
O encadeamento de módulos é feito com |, conhecido como pipe.
– Exemplo de uso: -m 'ai:gemini|con:telegram'

No String-X, podemos encadear módulos. Vamos pegar a análise gerada pela IA e enviar diretamente para um canal do Telegram (usando o módulo con:telegram).

Nota: Usarei um arquivo (teste.log) muito menor com apenas 10 URLs, pois estou usando Gemini free

5.1 O Comando Final (Análise + Disseminação):

cat ./output/teste.log | strx -st "echo 'Atue como analista de segurança. Faça uma análise técnica (300-500 chars) sobre o propósito e estrutura desta URL. Quebras de linha com \n. Termine com a URL original: {STRING}'" -m 'ai:gemini|con:telegram' -pm
Code language: Bash (bash)

Resultados enviados para canal de Telegram:

5.1 Verbose

Adicione o parâmetro verbose para visualizar possíveis problemas: -v all . Modo verboso aceita níveis (1-5 ou ‘all’). 1=info, 2=warning, 3=debug, 4=error, 5=exception.

Dica de prompts

Prompt Atual Melhorado:

echo 'Atue como analista de segurança. Faça uma análise técnica objetiva (300-500 caracteres) sobre o propósito e estrutura desta URL. Use APENAS texto simples, sem markdown, sem asteriscos, sem underscores, sem colchetes. Use quebras de linha. Ao final, liste: URL analisada: {STRING}'Code language: PHP (php)

Opção 1 – Mais Direto:

echo 'Como analista de segurança, analise esta URL em texto puro (300-500 chars): propósito, estrutura, riscos. Sem formatação especial. Termine com: URL: {STRING}'Code language: PHP (php)

Opção 2 – Estruturado:

echo 'Análise de segurança em texto simples (300-500 chars). Propósito: [descreva]. Estrutura: [descreva]. Riscos: [liste]. URL analisada: {STRING}'Code language: PHP (php)

Opção 3 – Minimalista:

echo 'Analise esta URL como especialista em segurança. 300-500 caracteres. Texto simples sem símbolos especiais. Finalize com a URL: {STRING}'Code language: PHP (php)

Conclusão

Entender o Ciclo de Inteligência é o que separa quem só executa comando de quem realmente sabe o que está fazendo. Rodar ferramenta qualquer um (user de Linkedin) roda. Pensar o fluxo, correlacionar etapas e transformar dado bruto em algo útil já é outro jogo.

O String-X não foi feito para apertar botão nem para “brincar de OSINT”. Ele tenta automatizar fluxo banais. Do planejamento sujo até o alerta chegando no celular ou banco de dados, tudo resolvido via terminal, com poucas linhas e zero paciência para excesso de abstração.

Sim, a POC apresentada aqui está longe de ser um ciclo de inteligência high level, digno de whitepaper ou briefing executivo. E não precisa ser. O objetivo é mostrar a dor do processo: onde cada ferramenta parâmetro inptut, onde sai e como parar de coletar info sem contexto.

Para quem está começando, isso quebra o mito da ferramenta mágica. Para quem já está na estrada (rodado), serve como lembrete de que intel não nasce pronta, ela é construída, etapa por etapa, com método (às vezes com cerveja), critério, automação e um pouco de ódio.

Happy Hacking e até a próxima!


REFS

Post feito ao som de: