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

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).

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

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.bre 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}
- Prompt:
- Filtrar URL valores por domínios alvo
gov.br
- Mapear URLs do domínio
- 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
- Encontre o BotFather: Pesquise por “@BotFather” no Telegram, inicie a conversa e clique em “start”.
- Crie um novo bot: Envie o comando
/newbote siga as instruções para definir um nome. - Defina o username: Escolha um nome de usuário (username) único que termine obrigatoriamente com “bot” (ex: meu_exemplo_bot).
- Salve o Token: O BotFather fornecerá um API Token. Guarde-o com segurança, pois ele é a chave para o seu bot funcionar.
- Inicie uma conversa: Vá até o bot criado @meu_exemplo_bot e envie o comando
/start - 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.idechat.id, que são justamente as informações necessárias para identificar o Chat ID que será setado em nosso arquivodefault.json. (tutorial: How to Get Telegram Chat ID (Easy Guide))https://api.telegram.org/bot{API_TOKEN}/getupdates{"message_id":....,"from":{"id":,...."},"chat":{"id":111111111111,....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
- https://github.com/MrCl0wnLab/string-x/blob/main/docs/usabilidade/parametros.md
- https://github.com/MrCl0wnLab/string-x/blob/main/docs/usabilidade/README.md
- https://filigran-io.translate.goog/understanding-cyber-threat-intelligence-lifecycle
- https://ai.google.dev/api?hl=pt-br
- https://github.com/MrCl0wnLab/string-x/blob/main/src/stringx/utils/auxiliary/con/telegram.py
- https://github.com/MrCl0wnLab/string-x/blob/main/src/stringx/utils/auxiliary/ai/gemini.py
- https://github.com/MrCl0wnLab/string-x/blob/main/src/stringx/utils/auxiliary/ext/url.py
- https://github.com/MrCl0wnLab/string-x/blob/main/src/stringx/utils/auxiliary/clc/yahoo.py
- https://github.com/MrCl0wnLab/string-x/blob/main/src/stringx/utils/auxiliary/clc/spider.py



