# Catálogo de capacidades e ferramentas

> As capacidades tipadas do CatBridge, os executores fixados, os perfis read-only, external-approved e active-approved, os orçamentos, os templates revisados e os dados que cada ferramenta recebe.

- Idioma: pt-BR
- URL canônica: https://netcattest.com/catsuite/docs/catbridge/ferramentas
- Seção: CatBridge
- Atualizado: 2026-10-05
- Outro idioma (en): https://netcattest.com/catsuite/en/docs/catbridge/tools

Uma extensão nunca escolhe binários, argumentos ou imagens. Ela pede uma **capacidade tipada** e o supervisor do [CatBridge](https://netcattest.com/catsuite/docs/catbridge) monta o comando, reserva o orçamento e devolve apenas JSON verificado. Cada capacidade tem um **executor fixado por versão e hash**; modificar o executável invalida as capacidades aprovadas.

> [!NOTA]
> O catálogo distingue **implementação** de **disponibilidade**. Uma capacidade pode existir no código e aparecer como `planned`, `not-installed` ou `unavailable` até que você prepare o executor correspondente no seu computador.

## Capacidades iniciais (SDK 1.3)

| Capacidade | Executor fixado | Resultado |
|---|---|---|
| `http.probe` | httpx 1.12.0 | Serviços HTTP, status, título, headers selecionados e tecnologias observadas |
| `web.crawl` | Katana 1.7.0 | Páginas, formulários, parâmetros e candidatos de JavaScript estático |
| `api.schema.test` | Schemathesis 4.29.1 | Cobertura, checks, falhas observadas, seed e caso reduzido |
| `nuclei.scan` | Instalação revisada do administrador | Resultados de templates HTTP aprovados |

## Capacidades do ecossistema (SDK 1.4)

Os adaptadores das etapas 2 a 5 exigem contrato 2 e `.catflow` 5. A API v1 e o Protocol 2 assinado permanecem compatíveis.

| Capacidade | Executor fixado |
|---|---|
| `assets.subdomains.discover` | subfinder 2.16.0, Amass 5.1.1 |
| `dns.resolve` / `dns.enumerate` | dnsx 1.3.1 |
| `dns.permute` | AlterX 0.1.0 |
| `urls.history` | gau 2.2.4, waybackurls 0.1.0 |
| `assets.search` | Uncover 1.2.1 |
| `net.ports.discover` | naabu 2.6.1, Nmap 7.991 |
| `net.services.fingerprint` | Nmap 7.991 |
| `web.paths.fuzz` / `http.parameters.fuzz` / `web.vhosts.fuzz` | ffuf 2.3.0 |
| `http.parameters.discover` | Arjun 2.2.7 |
| `web.xss.analyze` | Dalfox 3.2.3 |
| `api.sqli.validate` | SQLmap 1.10 |
| `jwt.analyze` | JWT Tool 2.3.0 |
| `tls.assess` | testssl.sh 3.2.4 |
| `web.server.assess` | Nikto 2.6.1 |
| `code.secrets.scan` | Gitleaks 8.30.1, Trufflehog 3.97.9 |
| `code.sast.scan` | Semgrep 1.179.0 |

Alguns perfis consultam fontes públicas selecionadas: subfinder usa crt.sh e CertSpotter; Uncover usa o Shodan InternetDB por IP, sem credenciais; gau e waybackurls usam o Wayback — URLs históricas **não** comprovam serviços ativos. DNS aceita A, AAAA, CNAME, MX, NS e TXT; TTL e DNSSEC não são considerados verificados.

## Perfis de execução

- `read-only` — operações offline e consultas DNS.
- `external-approved` — consulta a fontes externas aprovadas.
- `active-approved` — testes ativos contra destinos aprovados.
- `mutation-approved` — exclusivo do Schemathesis, só depois de selecionar explicitamente as operações e obter nova aprovação.

No ecossistema o HTTP é limitado a **GET**. Descobertas e redirecionamentos **não** ampliam o escopo.

## Orçamentos e limites

Os limites valem para a tarefa inteira e são reservados antes de cada lote:

| Limite | Valor |
|---|---|
| Destinos por tarefa | até 25 (httpx aceita 50; Schemathesis usa um endereço base) |
| Operações de rede | até 500 |
| Taxa | 5 requests/s, 2 conexões |
| Tempo | 120 s (httpx/Katana) · 300 s (Schemathesis) · 10 min (Nuclei) |
| Resultados | 1.000 por tarefa |
| Katana | `depth` até 2 e `pages` até 25, sem navegador ou execução de JavaScript |
| Schemathesis | `operations`/`paths` até 20; `examples` até 25; `seed` inteiro |
| Portas TCP | até 32 por tarefa, um destino por tarefa |
| TLS | uma porta por etapa |

O cancelamento **não** devolve uma reserva cujo consumo seja desconhecido. Lotes concluídos (até cinco destinos e cinco templates) são reutilizados; repetir um lote de resultado desconhecido exige escolha explícita.

## Templates revisados (Nuclei)

O manifesto é uma lista com `id`, `path`, `sha256` e `name` em pt-BR/en. Atualize o hash **somente** depois de revisar o YAML.

```json
{
  "templates": [
    {
      "id": "aurora-cache",
      "path": "examples/aurora-cache.yaml",
      "sha256": "…",
      "name": {"pt-BR": "Cache do Aurora", "en": "Aurora cache"}
    }
  ]
}
```

Apenas **HTTP GET/HEAD**, destinos baseados em `{{BaseURL}}`, matchers e extractors são aceitos. Código, JavaScript executável, headless, DNS, OAST, workflows externos, raw requests e redirecionamentos configurados **não** são aceitos. Headers que alteram host ou enquadramento são recusados. Os hashes são verificados antes de **cada** execução.

## Dados que a ferramenta recebe

- O perfil padrão `endpoints-only` **não** encaminha cookies, tokens ou corpos.
- `selected-headers` compartilha até **16 cabeçalhos / 16 KiB** escolhidos explicitamente na etapa e incluídos na aprovação.
- `Cookie` e `Authorization` exigem seleção explícita e classificação **SECRET**; cabeçalhos de host/enquadramento são recusados.
- Os valores selecionados ficam em um arquivo temporário privado, removido ao terminar. Corpos **nunca** são enviados ao Nuclei.

## Recursos enviados ao fluxo

Alguns adaptadores usam recursos que você envia em partes assinadas de até 64 KiB, vinculados a aparelho, fluxo, revisão e classificação; o hash faz parte da aprovação imutável.

| Recurso | Limite |
|---|---|
| Dicionário (wordlist) | 2 a 500 entradas únicas de até 128 caracteres |
| Snapshot de arquivos | 100 arquivos, 256 KiB por arquivo, 1 MiB no total |
| JWT | recurso SECRET de até 16 KiB |

Caminhos absolutos, travessia de diretório e links simbólicos são recusados.

## Resultados e evidências

Os resultados chegam em páginas assinadas de até **50 registros ou 512 KiB**, com recibos verificáveis, versões e hashes do executável e dos templates. Valores de credenciais e parâmetros reconhecidos como secretos são ocultados.

> [!AVISO]
> Um sinal de ferramenta é **evidência para revisão**, não prova de exploração. Falha de contrato no Schemathesis, por exemplo, é registrada como achado informativo e observado — não comprova uma vulnerabilidade.

## Próximo passo

- [Instalar e parear o CatBridge](https://netcattest.com/catsuite/docs/catbridge/instalar)
- [Fluxos visuais](https://netcattest.com/catsuite/docs/fluxos)
- [Referência de erros](https://netcattest.com/catsuite/docs/referencia/erros)
