plataforma autônoma de red teaming; meta-arnês de segurança ofensiva multiagente
▄▄▄█████▓▓█████ ███▄ ▄███▓ ██▓███ ▓█████ ██████ ▄▄▄█████▓
▓ ██▒ ▓▒▓█ ▀ ▓██▒▀█▀ ██▒▓██░ ██▒▓█ ▀ ▒██ ▒ ▓ ██▒ ▓▒
▒ ▓██░ ▒░▒███ ▓██ ▓██░▓██░ ██▓▒▒███ ░ ▓██▄ ▒ ▓██░ ▒░
░ ▓██▓ ░ ▒▓█ ▄ ▒██ ▒██ ▒██▄█▓▒ ▒▒▓█ ▄ ▒ ██▒░ ▓██▓ ░
▒██▒ ░ ░▒████▒▒██▒ ░██▒▒██▒ ░ ░░▒████▒▒██████▒▒ ▒██▒ ░
▒ ░░ ░░ ▒░ ░░ ▒░ ░ ░▒▓▒░ ░ ░░░ ▒░ ░▒ ▒▓▒ ▒ ░ ▒ ░░
░ ░ ░ ░░ ░ ░░▒ ░ ░ ░ ░░ ░▒ ░ ░ ░
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░
░ ░ ░ ░ ░ ░
Um framework de segurança ofensiva multi-agente, construído para transformar o agente de codificação de IA que você já executa em um caçador de zero-days.
Seu agente de codificação de IA já é um hacker — o T3MP3ST entrega a ele um arsenal.
Aponte-o para um alvo autorizado e a kill chain se executa sozinha: recon → exploit → report, a partir de uma War Room no navegador ou da CLI, conduzida pelo agente no qual você já está logado — Claude Code, Codex, Hermes — ou um modelo que você executa totalmente offline (Ollama, LM Studio, vLLM). Sem novas chaves de API, sem locatário de nuvem, sem segunda conta. Seu agente é o cérebro; o T3MP3ST é a máquina de guerra montada ao redor dele. Tempestade auto-hospedada. Guerra sem chaves. ⚡
E ele não vai pedir para você aceitar a palavra dele. Na própria suíte de 104 desafios do XBOW, ele pontua 90,1% pass@1 — acima dos 85% auto-relatados pelo XBOW — junto com soluções de CTF sem dicas e uma caçada a frio em CVEs reais pós-corte que o modelo nunca tinha visto. Cada número neste README é recalculado a partir de dados confirmados com um comando (npm run verify-claims). Barulhento sobre a missão, honesto sobre a construção — a tabela de status diz exatamente o que está ativo, o que é andaime e o que ainda é roteiro; recibos completos em Benchmarks.
Três coisas o diferenciam:
npm run verify-claims re-deriva todos eles, 24/24 verde. Uma afirmação que não pode ser reproduzida não é publicada. Números de confiança cega, nunca.Pule para → Início rápido · O que caça · O que embarca hoje · Benchmarks · Arquitetura · Documentação
T3MP3ST é uma ferramenta de segurança ofensiva, construída para testes, pesquisa e educação autorizados. Aponte-a apenas para sistemas que você possui ou para os quais tenha autorização explícita e por escrito para testar. O acesso não autorizado a computadores, redes ou dados é ilegal na maioria das jurisdições — você é o único responsável por como usa este software e por permanecer dentro da lei e de suas regras de engajamento. Traga a tempestade para seus alvos, não para os de outros.
T3MP3ST é fornecido como está, sob a licença AGPL-3.0, sem garantia e sem responsabilidade por qualquer dano, perda ou uso indevido. Os autores não endossam, apoiam ou toleram atividades não autorizadas. Obtenha permissão. Mantenha-se no escopo. Não seja uma ameaça. 🫡
A segurança ofensiva está atrás de anos de prática e ferramentas caras. A aposta por trás do T3MP3ST é que um enxame de agentes coordenados coloca a caça real de bugs ao alcance de pessoas que nunca receberam o convite, em aplicações web, CTFs, contratos inteligentes, código-fonte e OSS embarcado/robótica. Essa é uma aposta ambiciosa, e as seções abaixo são cuidadosas em separar o que já funciona do que ainda é uma aposta.
| Domínio | O que faz | Status |
|---|---|---|
| 🕸️ Aplicações web | Reconhecimento de atacante externo em caixa-preta → exploração (suíte XBEN) | ✅ Estável |
| 🚩 CTF | Soluções sem dicas, em sandbox com jail (Cybench) | ✅ Estável |
| 🤖 Robótica / OT / embarcados | Pipeline de divulgação coordenada para caça de vulnerabilidades OSS (OSV + PoC ao vivo + refutador) | ✅ Pipeline estável |
| 📂 Código-fonte | Análise de repositório em caixa-branca com decomposição cega de builder principal | ⚠️ Ingestão apenas Python |
| 💰 Contratos inteligentes | Damn Vulnerable DeFi | ⚠️ reprodução, não descoberta inédita |
| ☁️ Nuvem (IaC) | Benchmark de detecção de má configuração (cloud:bench) + arsenal opcional de nuvem (aws/az/gcloud + scoutsuite/cloudfox/pmapper; pacu limitado) | 🚧 Andaime de má configuração IaC — exploração de nuvem ao vivo ainda não avaliada |
| 📱 Móvel | Analisador estático integrado (má configuração de manifesto + detecção de segredos/texto claro, mobile:bench) + arsenal opcional (mobsfscan/objection/drozer; frida limitado) | 🚧 Andaime de detecção estática — exploração dinâmica não avaliada |
| 🔩 Binário / RE | Detector de sinks de saída descompilada (cópia insegura / string de formato / injeção de comando / estouro de inteiro, binary:bench) + arsenal opcional (ghidra/radare2/objdump/checksec/strings; gdb limitado) | 🚧 Andaime de detecção de sinks estática — resolução/pwn não avaliada |
Caminho mais rápido para uma War Room em execução (sem chaves, ~2 min para configurar; o tempo de missão depende do alvo):
npm install
npm run server # War Room → http://127.0.0.1:3333/ui/
Na War Room, abra Configurações e conecte um agente local (Claude Code / Codex / Hermes). Em seguida, descreva um alvo para o Op Admiral em inglês simples e lance. O agente que você conectou é o cérebro. Nenhuma chave necessária.
Prefere trazer uma chave? Defina uma e pule a etapa de conexão:
export OPENROUTER_API_KEY=... # ou VENICE_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY
export XAI_API_KEY=... # Grok Build (grok-build-0.1) — modelo de codificação da xAI, chamada de ferramenta nativa
Agentes locais lentos podem receber mais espaço com T3MP3ST_LOCAL_AGENT_TIMEOUT_MS
para cada chamada CLI, T3MP3ST_TASK_TIMEOUT_MS para tarefas de missão e
T3MP3ST_GENERAL_TIMEOUT_MS para requisições de planejamento. Os valores são em milissegundos.
Ou execute-o totalmente offline em seu próprio modelo — sem chave, sem nuvem. Padrão para Ollama; aponte para qualquer servidor compatível com OpenAI (LM Studio, vLLM, llama.cpp):
ollama serve && ollama pull llama3 # ou um servidor compatível com OpenAI
export TEMPEST_LOCAL_BASE_URL=http://localhost:11434/api # LM Studio: http://localhost:1234/v1
export TEMPEST_LOCAL_MODEL=llama3
npx tempest # → "Change default provider" → local
A chamada de ferramenta funciona em qualquer modelo local (é conduzida via texto), então o Arsenal funciona mesmo em modelos sem chamada de função nativa.
Verifique os números por si mesmo:
npm run verify-claims # re-deriva cada manchete a partir de JSON confirmado em bench/
O uso como biblioteca/SDK, a API HTTP completa e a configuração do MCP estão em docs/.
O framework é uma kill chain de 8 operadores, e esta tabela não vai encobrir a verdade. Recon é um mecanismo ao vivo, apoiado por ferramentas — e os dentes já são reais: 90,1% pass@1 no XBEN, 8/10 CVEs pós-corte retidos apontados para o arquivo/linha/CWE exatos, e um pipeline de divulgação coordenada que já está ao vivo o suficiente para ter rascunhos retidos para coordenação com fornecedores agora. O que não está comprovado é o enxame. Cada operador downstream — Exploiter, Infiltrator, Exfiltrator, Ghost — executa o mesmo loop ReAct real, apoiado por ferramentas, que o recon (ferramentas de exploração reais, não stubs), mas os números principais vieram de um único agente, não da célula coordenada de 8 operadores, e a exploração de enxame ponta a ponta não foi avaliada e ainda não é confiável. O mecanismo é real; o enxame é a parte que ainda está ganhando suas credenciais. Barulhento onde merecemos, franco sobre o resto.
| Componente | Status | Notas |
|---|---|---|
Medição re-derivável (verify-claims) | ✅ Estável | cada manchete recalcula a partir de artefatos confirmados |
| Mecanismo de reconhecimento | ✅ Estável | executa nmap / DNS / HTTP / fingerprinting; cada achado remete a saída real de ferramenta |
| Mecanismo de missão + War Room + Op Admiral | ✅ Estável | sem chaves através de um agente local conectado |
| Arsenal, servidor MCP, API HTTP | ✅ Estável | 35 ferramentas integradas por padrão; 83 com o T3MP3ST_FULL_ARSENAL opcional (+48 adaptadores, com os drivers pós-exploração perigosos — metasploit, hydra — atrás de uma porta de aprovação humana) — ambas as contagens re-derivam via verify-claims. security_recon sobre MCP |
| Contenção de escopo de egresso | ✅ Estável (ligado por padrão) | uma vez que um alvo de missão é definido, as ferramentas de rede integradas recusam hosts públicos fora do escopo — não o alvo/subdomínios, não loopback/privado (ESCOPO NEGADO) — um padrão mais rigoroso, não um executor de ferramenta puro |
| Pipeline de divulgação coordenada | ✅ Estável | novidade OSV + PoC ao vivo + painel refutador + CVSS; apenas rascunhos, um humano envia |
| Análise de código-fonte em caixa-branca | ⚠️ Experimental | Ingestão regex apenas Python; decomposição multi-modelo custa mais tokens, não menos |
| DeFi (Damn Vulnerable DeFi) | ⚠️ Experimental | reproduz classes de exploração conhecidas; não descoberta inédita |
| Exploiter / Infiltrator / Exfiltrator / Ghost | ⚠️ Experimental | executam o loop ReAct real apoiado por ferramentas (mesmo mecanismo do recon); não comprovado como enxame coordenado — agente único é o caminho avaliado, exploração de enxame ao vivo ainda não confiável |
| Módulos avançados (nuvem, persistência, enxame, cognição) | 🚧 Planejado | apenas interface em src/stubs/ |
| Loop de autoaperfeiçoamento | 🧪 Pesquisa | registra lições + propostas hoje; realimentá-los no planejamento é roteiro |
Detalhamento completo recurso por recurso: FEATURES.md.
Onde a tempestade alcança hoje — e para onde está indo. A mesma disciplina de todo o resto: um domínio é ✅ apenas quando há um recibo por trás dele.
| Domínio | O que cobre | Status |
|---|---|---|
| 🕸️ Web | apps, APIs, fluxos de autenticação, OWASP Top 10 | ✅ Núcleo — XBEN 90,1% pass@1 |
| 📂 Código | auditorias de fonte em caixa-branca, caça de vulnerabilidades estilo SAST | ✅ Comprovado (resultado de caça) — CVE-Zero retido: agente único 8/10 arquivo/linha/CWE exatos, 10/10 encontrados (7 linguagens); o mecanismo de ingestão de repositório em si ainda é ⚠️ experimental |
| 🚩 CTF | wargames, faixas de prática, desafios | ✅ Comprovado — Cybench 23/40 sem dicas |
| 🔌 Rede / Infra | reconhecimento, fingerprinting de serviço/stack; movimentação lateral + escalação de privilégio | ✅ recon (mecanismo ao vivo de nmap/DNS/HTTP) · ⚠️ movimentação lateral/escalação de privilégio experimental |
| 🤖 Embarcado / IoT / OT | firmware, robótica, OSS ICS/SCADA | ✅ Pipeline de CVE ao vivo — rascunhos de divulgação coordenada retidos para fornecedores |
| 📦 Cadeia de suprimentos | auditorias de dependência, instalação sem confirmação | ⚠️ Real — classe dedicada; atingiu um CWE-829 no conjunto retido |
| 💰 Blockchain | contratos inteligentes, DeFi, Solidity | ⚠️ Apenas reprodução — Damn Vulnerable DeFi, não descoberta inédita |
| ☁️ Nuvem | AWS/GCP/Azure má configuração, IAM, serverless | 🚧 Em desenvolvimento |
| 📱 Móvel | segurança de apps Android/iOS | 🚧 Em desenvolvimento |
| 🏢 Identidade / AD | Kerberos, pass-the-hash, ataques AD | 🚧 Em desenvolvimento |
| 🔐 Binário / RE | estouros, ROP, desenvolvimento de exploits | 🚧 Em desenvolvimento — precisa de ferramentas especializadas |
A arquitetura de classes/esquadrões significa que novos domínios compõem em vez de bifurcar — cada um é um loadout (classes especialistas + arsenal + adaptador de alvo + um benchmark). Domínios 🚧 são enviados escuros até terem um número.
Resultados principais. Cada um recalcula a partir do JSON confirmado com npm run verify-claims; metodologia completa e ressalvas estão nos documentos vinculados.
| Suíte | Resultado | Contexto |
|---|---|---|
| XBEN — suíte de 104 desafios do XBOW, caixa-preta | média pass@1 90,1% (Wilson-95 86,2–92,9), piso 91/104 · gpt-5.5 | O XBOW auto-relata 85% na mesma suíte; o nosso recalcula o veredito classificado a partir de artefatos confirmados (transcrições brutas removidas por privacidade) |
| XBEN — caixa-branca (relatado separadamente) | pass@1 98,7%, melhor bola 104/104 · gpt-5.5 | nunca misturado com o número de caixa-preta |
| Cybench — banco acadêmico de 40 tarefas, Opus 4.8, sem dicas | 23/40 (58%) sem dicas, pass@1 de execução única (imposto por verify-claims) | não é o recorde de pontuação bruta (Anthropic: 76,5% pass@10); cada flag avaliada contra o oráculo confirmado |
| CVE-Zero — 10 CVEs reais pós-corte (2026), retidos, 7 linguagens | agente único 8/10 arquivo/linha/CWE exatos (verificado tudo-exato, estável) · 10/10 encontrados (pacote completo) | À prova de memorização e ajuste: pós-corte, e os prompts endurecidos nunca foram ajustados nestes; verify-claims recalcula. n=10, direcional; a vantagem do enxame aqui é recall, não uma prova de que coordenação supera solo |
Como ler estes:
verify-claims recalcula o passa/falha. Transcrições brutas passo a passo são removidas para privacidade do operador, então você verifica o veredito classificado, não a saída bruta da ferramenta. Nada fabricado, imposto por um guarda anti-ajuste que é executado a cada push.O número não é a flex — o recibo é. Um harness sem chaves e de código aberto que entrega a reexecução em vez de pedir para você confiar: clone, execute npm run verify-claims, e cada veredito acima recalcula a partir de seu oráculo confirmado na sua frente.
Leitura mais aprofundada: WALL_FORENSICS (erros por desafio), CYBENCH, INTEGRITY_LEDGER (auditoria de contaminação e cada retratação), OBSIDIVM (nosso próprio campo de tiro web ao vivo).
| Documento | Conteúdo |
|---|---|
| FEATURES.md | status recurso por recurso ([x] enviado / [~] parcial / [ ] planejado) |
| SCOPE_AND_AUTHORIZATION | modelo de autoridade, recibos de escopo, regras de evidência e reteste |
| VERIFIED_PROVENANCE | como os achados se tornam comprovados por ferramenta em vez de apenas afirmados pelo modelo |
| TEAM_PREVIEW | caminho de primeira execução e script de revisão |
| INSTALL_MATRIX | tabela de prontidão para macOS / Linux |
| ARSENAL_ACTIVATION_PLAN | configuração opcional de ferramenta externa |
| CYBENCH · WALL_FORENSICS · INTEGRITY_LEDGER · COGNITIVE_ARCHITECTURE | metodologia de benchmark |
| RELEASE_CHECKLIST | os portões que uma versão deve passar |
┌─────────────────────────────────────────────────────────────────┐
│ COMANDO T3MP3ST │
├─────────────────────────────────────────────────────────────────┤
│ CONTROLE DE MISSÃO ◄── MODELO DE ALVO ──► ARSENAL (FERRAMENTAS)│
│ ▲ │
│ CÉLULA DE AGENTE: RECON · SCANNER · EXPLOITER · INFILTRATOR ·│
│ EXFILTRATOR · GHOST · COORDENADOR · ANALISTA │
│ ▲ │
│ COFRE DE EVIDÊNCIAS · ARMAZENAMENTO DE CREDENCIAIS · LIVRO RAZÃO DE ACHADOS │
│ ▲ │
│ CAMADA OPSEC · CANAL DE COMUNICAÇÃO · BACKBONE LLM │
└─────────────────────────────────────────────────────────────────┘
Os operadores mapeiam para as fases do MITRE ATT&CK e do Cyber Kill Chain (recon está ao vivo; fases posteriores estão com andaimes):
| Operador | Fase | MITRE | Função |
|---|---|---|---|
| Recon | Reconhecimento | TA0043 | OSINT, descoberta de rede, enumeração de ativos |
| Scanner | Descoberta | TA0007 | varredura de vulnerabilidades, fingerprinting de serviços |
| Exploiter | Acesso Inicial | TA0001 | exploração, entrega de payload |
| Infiltrator | Movimentação Lateral | TA0008 | pós-exploração, escalação de privilégio |
| Exfiltrator | Coleta / Exfiltração | TA0009/10 | extração de dados, colheita de credenciais |
| Ghost | Persistência | TA0003 | persistência, furtividade, limpeza |
| Coordenador | Comando & Controle | TA0011 | controle de missão, orquestração |
| Analista | Análise | — | análise de padrões, relatórios |
Provedores: OpenRouter, Venice, Anthropic, OpenAI, ou um agente local sem chaves (Claude Code / Codex / Hermes). Defina OPENROUTER_API_KEY / VENICE_API_KEY / ANTHROPIC_API_KEY, ou conecte um agente em Configurações.
Integrações: node dist/mcp-server.js expõe security_recon para agentes compatíveis com MCP. npm run server inicia a API HTTP (POST /api/mission/start, GET /api/mission/status e mais). Referência completa em docs/.
Red-teaming não deveria ser um sacerdócio. Traga um adaptador, um pacote de prompts, um runbook, uma nova ferramenta de arsenal ou um relatório de bug.
Uma regra, inegociável: tudo aqui é para testes autorizados apenas. Alvos próprios, com escopo ou consentimento. Construa para defensores, ou não construa aqui.
npm run verify-claims tem que continuar verde.Processo de release e portões: RELEASE_CHECKLIST.
AGPL-3.0. Veja LICENSE.
Fortes fortuna iuvat — a fortuna favorece os audazes.
⊰•-•✧ LOVE PLINY ✧•-•⊱ 🌩️