O Descobridor é o módulo de descoberta de conteúdo do CatSuite: ele percorre uma wordlist de caminhos ou parâmetros e aplica cada entrada a uma URL base com o marcador $CAT$, testando combinações contra um alvo autorizado para revelar diretórios, endpoints e parâmetros que não aparecem na navegação comum. O módulo controla o ritmo com requisições por segundo, atraso extra e backoff automático em 429, filtra o que é capturado por status e tamanho, e preserva a sessão para você pausar e retomar de onde parou. Esta página explica cada conceito, cada opção e como configurar o Descobridor passo a passo.
O que é o Descobridor e para que serve #
O Descobridor faz fuzzing de conteúdo (também chamado de content discovery ou força bruta de diretórios). Em vez de depender só dos links visíveis de um site, ele testa uma lista de nomes prováveis — admin, backup, api/v1, .git, id, token e milhares de outros — e observa como o servidor responde a cada um. Caminhos e parâmetros que existem, mas não estão publicados, costumam se revelar pelo código de status, pelo tamanho da resposta ou por um redirecionamento.
É um módulo de nível intermediário: você escolhe a wordlist, o método HTTP e o ritmo, e interpreta os achados. O Descobridor foi desenhado para rodar em Android de forma contínua e segura, lendo wordlists grandes por stream (linha a linha, sem carregar tudo na memória) e respeitando limites de ritmo para não sobrecarregar o alvo nem o aparelho.
Conceitos essenciais #
Antes de configurar, vale entender os termos que aparecem na tela e nos logs.
- Wordlist. Arquivo de texto com uma entrada por linha. Cada linha é um candidato (um nome de caminho ou de parâmetro). O Descobridor traz bases prontas e também lê as suas; veja Wordlists.
- URL base com
$CAT$. O endereço do alvo com o marcador$CAT$no ponto exato em que a palavra da wordlist deve entrar. Para cada entrada, o Descobridor substitui$CAT$pela palavra e dispara a requisição. - Candidato / palavra-chave. A entrada da wordlist que está sendo testada naquela requisição. Nos resultados ela aparece como PALAVRA-CHAVE.
- Requisições por segundo (RPS). O ritmo base: quantas requisições o módulo tenta disparar a cada segundo.
- Atraso (delay extra). Uma pausa fixa adicional entre uma tentativa e a próxima, somada ao ritmo de RPS.
- Intervalo efetivo. O espaçamento real entre requisições. O Descobridor sempre respeita o maior valor entre o intervalo exigido pelo RPS e o atraso extra, para você nunca ficar mais rápido do que pediu.
- Backoff em 429. Quando o servidor responde
429 Too Many Requests, o módulo espera automaticamente alguns segundos antes de continuar, para aliviar o serviço. - Repetição automática. Quando uma requisição falha por timeout, o módulo tenta de novo automaticamente, até um limite de tentativas.
- Verificação inicial (pre-flight). Antes de começar a percorrer a wordlist, o Descobridor faz um
GETde teste na URL base para validar a conectividade com o alvo. - Filtros de captura. Regras de status e tamanho que decidem quais respostas viram resultado (correspondência) e quais são apenas processadas e descartadas.
- Sessão retomável. O estado da execução é salvo em disco. Se o app for para segundo plano, fechar ou cair, você consegue retomar da entrada em que parou.
A tela do Descobridor: painéis, abas e indicadores #
O módulo tem três telas, acessadas a partir da tela de execução:
- Execução — onde você informa a URL, inicia a varredura e acompanha o log e os resultados.
- Configurações — wordlist, método, ritmo, filtros e opções de exibição (botão CONFIGURAÇÕES / ícone de ajustes).
- Headers — identidade das requisições: User-Agent, Accept, Referer, Origin, spoof de IP e outros cabeçalhos.
Tela de execução #
No topo ficam o campo URL com $CAT$ e o botão de configurações. Logo abaixo, uma faixa de chips resume a configuração ativa: nome da wordlist, método, RPS, atraso, estado do log (LOG ON/LOG OFF), RETRY AUTO/SEM RETRY, 429 AUTO/429 OFF, contagem compacta ou completa, resumo dos headers e o passo efetivo em milissegundos. Durante a execução aparecem ainda EM EXECUÇÃO, PAUSADO ou PAUSA AUTOMÁTICA.
Três indicadores acompanham o progresso:
| Indicador | O que mostra |
|---|---|
| PROCESSADAS | Quantas entradas já foram testadas, no formato atual / total da wordlist. |
| RESULTADOS | Quantas respostas corresponderam aos filtros de status e tamanho. |
| FALHAS | Quantas tentativas falharam (timeout ou erro inesperado). |
Abaixo dos indicadores ficam os painéis LOG DA EXECUÇÃO (se o log estiver ativo) e RESULTADOS DETALHADOS. Ambos têm botão para abrir em tela cheia, e o painel de resultados tem botão de filtros.
Bases de diretórios, parâmetros e wordlists #
O Descobridor já vem com duas bases internas, e você pode adicionar as suas em Wordlists.
| Wordlist interna | Para que serve | Entradas |
|---|---|---|
| Catsuite diretórios e API (padrão) | Enumeração de caminhos e endpoints (diretórios, rotas e recursos de API). | 4.750 |
| Catsuite parâmetros | Teste de nomes de parâmetros e variações de query/campos. | 6.453 |
Para escolher a base, abra Configurações → WORDLIST e toque na lista desejada. As bases internas aparecem primeiro; as suas wordlists importadas aparecem em WORDLISTS DO USUÁRIO, logo abaixo. Se ainda não houver nenhuma personalizada, o botão ADICIONAR WORDLIST leva à tela de importação.
Métodos HTTP: GET, POST, PUT e DELETE #
O método escolhido é aplicado a todas as tentativas geradas pela wordlist. Abra Configurações → MÉTODO HTTP para trocá-lo.
| Método | Quando usar |
|---|---|
| GET (padrão) | Leitura leve para mapear caminhos e endpoints. É a escolha inicial para a maioria das descobertas. |
| POST | Envio sem corpo para testar comportamentos que dependem do método (rotas que só respondem a POST). |
| PUT | Útil em variações de rotas que respondem a atualização de recurso. |
| DELETE | Testa respostas condicionadas ao método DELETE. |
Opções do Descobridor e como configurar #
A tabela abaixo reúne as opções da aba Configurações. A seção seguinte explica como ajustar cada uma.
| Opção | Valores | Padrão | O que faz |
|---|---|---|---|
| Wordlist | Bases internas ou suas listas | Catsuite diretórios e API | Lista de entradas que o módulo vai percorrer. |
| Método HTTP | GET, POST, PUT, DELETE | GET | Método aplicado a todas as tentativas. |
| Requisições por segundo | 1 a 6 | 2 | Ritmo base de disparo das requisições. |
| Delay extra (atraso) | 0, 100, 250, 500, 750, 1000 ms | 250 ms | Pausa fixa adicional entre tentativas. |
| Backoff 429 automático | Ligado / desligado | Ligado | Espera automática ao receber 429. |
| Repetição automática | Ligado / desligado | Ligado | Repete requisições que falharem por timeout (até 3 tentativas). |
| Filtrar por status | Códigos 100–599 separados por vírgula | 200,204,301,302,307,308,401,403 | Quais códigos de status viram resultado. |
| Filtrar por tamanho mínimo | Bytes (≥ 0) | 0 (desligado) | Tamanho mínimo da resposta para virar resultado. |
| Mostrar log | Ligado / desligado | Ligado | Exibe o log completo da execução. |
| Mostrar contagem compacta | Ligado / desligado | Ligado | Resume números grandes (mil / milhão / bilhão). |
| Ativar headers | Ligado / desligado | Desligado | Aplica os cabeçalhos personalizados da aba Headers. |
Ritmo: requisições por segundo #
Abra REQUISIÇÕES POR SEGUNDO e escolha de 1 a 6 RPS. Valores até 2 são mais leves para execuções longas; 3 e 4 são equilibrados; 5 e 6 são mais agressivos, porém ainda controlados para celular. O padrão é 2 RPS. Esse valor define o intervalo base entre requisições (1000 ms dividido pelo RPS, arredondado para cima):
| RPS | Intervalo base |
|---|---|
| 1 | 1000 ms |
| 2 | 500 ms |
| 3 | 334 ms |
| 4 | 250 ms |
| 5 | 200 ms |
| 6 | 167 ms |
Atraso (delay extra) #
Abra DELAY EXTRA e escolha SEM DELAY (0 ms) ou 100, 250, 500, 750 ou 1000 ms. O atraso é uma pausa fixa somada ao ritmo. O Descobridor respeita sempre o maior intervalo entre o exigido pelo RPS e o atraso: com 2 RPS (500 ms) e atraso de 250 ms, o passo efetivo continua 500 ms; já com 6 RPS (167 ms) e atraso de 500 ms, o passo efetivo vira 500 ms. O painel EXECUÇÃO SEGURA, na própria tela de configurações, mostra o valor "N MS EFETIVOS" calculado a partir das suas escolhas.
Backoff automático em 429 #
Mantenha BACKOFF 429 AUTOMÁTICO ligado (padrão) para que o módulo reduza o ritmo sozinho quando o servidor responder 429 Too Many Requests. No primeiro 429 da sequência, o Descobridor aguarda 5 segundos antes da próxima tentativa; se os 429 continuarem, a espera sobe para 10 segundos. Quando chega uma resposta diferente de 429, a contagem é zerada. O log registra cada pausa com a mensagem "429 recebido. Backoff automático aplicado por Ns antes da próxima tentativa."
Repetição automática #
Com REPETIÇÃO AUTOMÁTICA ligada (padrão), cada requisição que falhar por timeout é refeita automaticamente, somando até 3 tentativas. Desligada, cada entrada é testada uma única vez. Falhas que não são de timeout (erros inesperados) contam direto como FALHA e não são repetidas.
Opções de exibição #
- MOSTRAR LOG controla o painel LOG DA EXECUÇÃO. Com o log desligado, a tela mostra só os resultados, ocupando mais espaço.
- MOSTRAR CONTAGEM COMPACTA resume números grandes (por exemplo,
12 milem vez de12.000). Desligada, os indicadores mostram o valor completo com separador de milhar.
Filtros de captura por status e tamanho #
Esses dois filtros, na aba Configurações, decidem o que é considerado resultado durante a varredura.
- Filtrar por status. Lista de códigos HTTP separados por vírgula. Só respostas com um desses códigos viram resultado. O padrão
200,204,301,302,307,308,401,403cobre sucesso (200,204), redirecionamentos (301,302,307,308) e acessos negados reveladores (401,403). São aceitos códigos de 100 a 599. Deixe o campo vazio para capturar todos os status. - Filtrar por tamanho mínimo. Tamanho mínimo da resposta, em bytes. Respostas menores do que esse valor são processadas, mas não viram resultado. Útil para descartar páginas de erro curtas e padronizadas. O padrão 0 desliga o filtro de tamanho.
Botões e ações #
| Botão / ação | O que faz |
|---|---|
| CONFIGURAÇÕES / CONFIG. | Abre a aba de configurações do Descobridor. |
| CONFIGURAR | Aparece no lugar de iniciar quando ainda não há configuração salva; leva às configurações. |
| INICIAR | Começa a varredura (após a verificação inicial). |
| PAUSAR | Pausa a execução preservando o ponto atual da wordlist. |
| RETOMAR | Continua da entrada em que a sessão foi pausada. |
| PARAR | Interrompe e encerra a execução atual. |
| LIMPAR | Limpa log, resultados e a sessão temporária. |
| SALVAR | Salva as configurações e volta para a execução. |
| CANCELAR | Descarta as alterações nas configurações. |
| Ícone de filtro | Abre os filtros dos resultados. |
| Ícone de tela cheia | Expande o log ou os resultados. |
| VER RESPONSE | Abre a resposta completa salva de um resultado. |
| LIMPAR FILTROS | Remove os filtros aplicados aos resultados. |
Ações por resultado #
Toque em um resultado para ver os detalhes (PALAVRA-CHAVE, URL, CONTENT-TYPE, LOCATION quando houver, e PRÉVIA). Pressione e segure (ou use o menu) para abrir as ações de cópia:
| Ação | O que faz |
|---|---|
| Enviar para o Repetir | Abre a requisição no módulo Repetir. |
| Copiar URL | Copia a URL final testada. |
| Copiar headers | Copia os cabeçalhos enviados na requisição. |
| Copiar body | Copia o corpo enviado (quando houver). |
| Copiar cURL | Copia a requisição como comando curl. |
Headers e identidade das requisições #
Na aba Headers, ative ATIVAR HEADERS para aplicar cabeçalhos personalizados em todas as requisições do Descobridor, inclusive na verificação inicial e no loop da wordlist. Com os headers ativos, você define User-Agent, Accept-Language, Accept, Content-Type, Referer, Origin, Sec-Fetch-Site e um spoof de IP (header e valor). Com a opção desligada (padrão), o Descobridor usa os cabeçalhos padrão do sistema. O chip HEADERS na tela de execução mostra DESATIVADOS, PADRÃO ou PERSONALIZADO.
Passo a passo #
Mapear diretórios de um alvo #
- Abra o Descobridor e toque em CONFIGURAÇÕES.
- Em WORDLIST, escolha Catsuite diretórios e API.
- Deixe MÉTODO HTTP em GET.
- Ajuste REQUISIÇÕES POR SEGUNDO para 2 e DELAY EXTRA para 250 MS (padrões seguros).
- Confira Filtrar por status (padrão) e deixe Filtrar por tamanho mínimo em
0. - Toque em SALVAR.
- No campo URL com
$CAT$, escrevahttps://alvo.com/$CAT$. - Toque em INICIAR. O módulo faz a verificação inicial e começa a varredura.
- Acompanhe PROCESSADAS, RESULTADOS e FALHAS e abra os achados em RESULTADOS DETALHADOS.
Descobrir parâmetros #
- Em CONFIGURAÇÕES → WORDLIST, escolha Catsuite parâmetros.
- Salve e volte para a execução.
- Em URL com
$CAT$, posicione o marcador no nome do parâmetro, por exemplohttps://alvo.com/busca?$CAT$=cat-suite. - Toque em INICIAR e observe variações de status e tamanho que indiquem parâmetros válidos.
Enviar um achado para outro módulo #
- Em RESULTADOS DETALHADOS, toque no resultado que interessa.
- Abra o menu de ações e toque em Enviar para o Repetir.
- No Repetir, ajuste a requisição e reenvie. Para automatizar variações, leve-a ao Intruso.
Exemplos #
URL base para enumeração de caminhos:
https://alvo.com/$CAT$URL base para descoberta de parâmetros:
https://alvo.com/busca?$CAT$=cat-suiteFiltro de status que captura sucesso, redirecionamentos e acessos negados:
200,204,301,302,307,308,401,403Requisição copiada de um resultado como comando cURL (ação Copiar cURL):
curl 'https://alvo.com/api/v1/users'curl -X POST -H 'Content-Type: application/json' --data-raw '{}' 'https://alvo.com/api/login'Pausar, retomar e recuperação de sessão #
O Descobridor salva o estado da execução em disco periodicamente. Isso permite:
- Pausar e retomar manualmente. Toque em PAUSAR para parar no ponto atual e em RETOMAR para continuar da mesma entrada.
- Pausa automática. Ao enviar o app para segundo plano durante a varredura, o módulo pausa sozinho para preservar o ponto da wordlist (chip
PAUSA AUTOMÁTICA). Ao voltar, a execução retoma. - Recuperação após encerramento. Se o app for fechado ou cair, ao reabrir o Descobridor você recebe uma mensagem de sessão recuperada e pode RETOMAR da entrada em que parou, com os achados preservados.
Problemas comuns e perguntas frequentes #
"Inclua $CAT$ na URL..." — A URL base precisa conter o marcador $CAT$ no ponto em que a palavra entra. Sem ele, o módulo não sabe onde aplicar a wordlist.
"A URL informada não é válida." — Revise o endereço. Se você não digitar o esquema, o Descobridor assume https:// automaticamente e avisa.
A verificação inicial falhou por timeout. — Verifique conexão, VPN e se o alvo está no ar antes de iniciar. A verificação inicial é um GET de teste na URL base.
Muitos 429 aparecendo. — O alvo está limitando o ritmo. Mantenha o backoff 429 automático ligado, reduza o RPS e aumente o atraso. Veja também Referência de erros.
Nenhum resultado, só processadas. — Os filtros de status ou tamanho podem estar restritivos demais. Esvazie o campo de status para capturar todos os códigos ou zere o tamanho mínimo.
A wordlist configurada não está disponível. — Abra as configurações e selecione outra wordlist, ou reimporte a lista personalizada em Wordlists.
Muitas FALHAS. — Timeouts frequentes indicam instabilidade de rede ou alvo lento. Reduza o RPS, mantenha a repetição automática ligada e verifique a conexão.
Boas práticas e uso responsável #
- Teste somente alvos autorizados. A descoberta é intensa por natureza; veja Segurança.
- Comece com RPS baixo e atraso moderado; suba o ritmo só quando tiver certeza de que o alvo aguenta.
- Deixe o backoff 429 e a repetição automática ligados para um comportamento mais educado com o serviço.
- Use os filtros de status e tamanho para separar sinal de ruído desde a captura.
- Encaminhe achados relevantes para o Repetir e o Intruso em vez de repetir a varredura inteira.