# Descobridor

> Descobridor do CatSuite: como usar e configurar a descoberta de caminhos, parâmetros e endpoints com wordlists, métodos HTTP, ritmo controlado e backoff 429.

- Idioma: pt-BR
- URL canônica: https://netcattest.com/catsuite/docs/modulos/descobridor
- Seção: Módulos
- Atualizado: 2026-10-06
- Outro idioma (en): https://netcattest.com/catsuite/en/docs/modules/discoverer

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.

> [!AVISO]
> Descoberta gera muitas requisições em sequência. Use o Descobridor apenas em alvos que você está **autorizado** a testar. Consulte as regras de uso responsável em [Segurança](https://netcattest.com/catsuite/docs/seguranca).

## 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](https://netcattest.com/catsuite/docs/modulos/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 `GET` de 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](https://netcattest.com/catsuite/docs/modulos/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.

> [!DICA]
> Use **Catsuite diretórios e API** para mapear caminhos (`https://alvo.com/$CAT$`) e **Catsuite parâmetros** para descobrir parâmetros (`https://alvo.com/busca?$CAT$=cat-suite`). Wordlists muito grandes entram em **modo seguro** e são lidas por *stream*, sem travar o aparelho.

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

> [!AVISO]
> `PUT` e `DELETE` podem **alterar ou remover** dados no alvo. Use-os apenas com autorização explícita e em ambientes em que você entende o efeito de cada requisição.

## 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 `N`s 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 mil` em vez de `12.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,403` cobre 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.

> [!NOTA]
> Esses filtros atuam no momento da captura. Para refinar depois, sem repetir a varredura, use os **filtros dos resultados** (veja adiante). As respostas que não correspondem são descartadas do disco para economizar espaço.

## 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](https://netcattest.com/catsuite/docs/modulos/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

1. Abra o Descobridor e toque em **CONFIGURAÇÕES**.
2. Em **WORDLIST**, escolha **Catsuite diretórios e API**.
3. Deixe **MÉTODO HTTP** em **GET**.
4. Ajuste **REQUISIÇÕES POR SEGUNDO** para **2** e **DELAY EXTRA** para **250 MS** (padrões seguros).
5. Confira **Filtrar por status** (padrão) e deixe **Filtrar por tamanho mínimo** em `0`.
6. Toque em **SALVAR**.
7. No campo **URL com `$CAT$`**, escreva `https://alvo.com/$CAT$`.
8. Toque em **INICIAR**. O módulo faz a verificação inicial e começa a varredura.
9. Acompanhe **PROCESSADAS**, **RESULTADOS** e **FALHAS** e abra os achados em **RESULTADOS DETALHADOS**.

### Descobrir parâmetros

1. Em **CONFIGURAÇÕES → WORDLIST**, escolha **Catsuite parâmetros**.
2. Salve e volte para a execução.
3. Em **URL com `$CAT$`**, posicione o marcador no nome do parâmetro, por exemplo `https://alvo.com/busca?$CAT$=cat-suite`.
4. Toque em **INICIAR** e observe variações de status e tamanho que indiquem parâmetros válidos.

### Enviar um achado para outro módulo

1. Em **RESULTADOS DETALHADOS**, toque no resultado que interessa.
2. Abra o menu de ações e toque em **Enviar para o Repetir**.
3. No [Repetir](https://netcattest.com/catsuite/docs/modulos/repetir), ajuste a requisição e reenvie. Para automatizar variações, leve-a ao [Intruso](https://netcattest.com/catsuite/docs/modulos/intruso).

## Exemplos

URL base para enumeração de caminhos:

```text
https://alvo.com/$CAT$
```

URL base para descoberta de parâmetros:

```text
https://alvo.com/busca?$CAT$=cat-suite
```

Filtro de status que captura sucesso, redirecionamentos e acessos negados:

```text
200,204,301,302,307,308,401,403
```

Requisição copiada de um resultado como comando cURL (ação **Copiar cURL**):

```bash
curl 'https://alvo.com/api/v1/users'
```

```bash
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.

> [!IMPORTANTE]
> A recuperação de sessão depende de ela estar habilitada nas configurações do CatSuite. As respostas completas são salvas em arquivos temporários da sessão; o módulo mantém apenas as sessões mais recentes e limpa as antigas automaticamente.

## 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](https://netcattest.com/catsuite/docs/referencia/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](https://netcattest.com/catsuite/docs/modulos/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](https://netcattest.com/catsuite/docs/seguranca).
- 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](https://netcattest.com/catsuite/docs/modulos/repetir) e o [Intruso](https://netcattest.com/catsuite/docs/modulos/intruso) em vez de repetir a varredura inteira.

## Continue

- [Wordlists](https://netcattest.com/catsuite/docs/modulos/wordlists)
- [Repetir](https://netcattest.com/catsuite/docs/modulos/repetir)
- [Intruso](https://netcattest.com/catsuite/docs/modulos/intruso)
- [Interceptador](https://netcattest.com/catsuite/docs/modulos/interceptador)
- [Visão geral dos módulos](https://netcattest.com/catsuite/docs/modulos)
