
pentest-ai v1.4.0
Pentester de IA de código aberto que comprova cada descoberta. Oráculos de máquina reexecutam cada exploit; bugs verificados vêm com uma cápsula de prova que você mesmo pode reproduzir.

Site · Início rápido · Bug bounty · Verificação · Documentação · Issues
O Pentest-AI é uma ferramenta de código aberto de teste de intrusão e bug bounty com IA que mantém descobertas comprovadas separadas de suposições. Ela conecta um cliente ou modelo de IA a um fluxo de trabalho real de pentest: investigar aplicações web, descobrir e reproduzir vulnerabilidades e usar oráculos de máquina para verificar se um exploit realmente funciona. Uma descoberta que nenhum oráculo consegue provar permanece rotulada como candidata, e uma descoberta verificada carrega as requisições e respostas que a comprovaram.
Use-a via MCP (Claude Code, Codex, Cursor, VS Code), pela CLI ou em CI/CD. O modelo conduz a investigação; um oráculo independente decide se uma descoberta merece um veredito de verificada, de modo que as suposições do modelo nunca chegam disfarçadas de resultados.
Feito para bug bounty autorizado: um perfil por programa carrega seu escopo, sua taxa declarada e seu identificador de pesquisador, uma execução de teste (dry run) mostra o plano antes de qualquer envio, e os rascunhos de relatório vêm apenas de descobertas verificadas. Ir para o fluxo de trabalho de bug bounty →
Teste apenas sistemas que você possui ou tem autorização explícita para avaliar. Leia a política de uso aceitável e os termos antes de executar um engajamento.
Início rápido
Recomendado: Codex ou Claude Code
Use Python 3.10 a 3.14 e instale o pipx
primeiro. Execute pipx ensurepath e reabra seu terminal se necessário. O pipx isola
as dependências do Pentest-AI e torna seus comandos disponíveis em todas as pastas.
pipx install ptai
ptai setup --mcp
Instale primeiro a CLI do seu cliente de IA. A configuração pergunta antes de conectar todos os clientes compatíveis detectados, incluindo tanto o Codex quanto o Claude Code quando instalados. Ela preserva os registros existentes. Reinicie seu cliente depois.
O assistente usa configurações de âmbito do utilizador. Ele não instala clientes, não faz login, não descarrega modelos nem configura o Ollama. O seu cliente de IA fornece o modelo; nenhuma chave de API de modelo separada é necessária pelo servidor MCP. Use ptai setup --mcp --dry-run para pré-visualizar as alterações. Consulte configuração de cliente único e por repositório para instruções do Codex .codex/config.toml e do Claude Code .mcp.json.
Para atualizações, use pipx upgrade ptai. Num ambiente virtual já ativado, python -m pip install --upgrade ptai também é suportado; mantenha esse ambiente disponível após o registar no seu cliente de IA.
Alternativa: Ollama e modelos locais
Instale o Pentest-AI como acima, mas ignore a configuração do MCP para esta rota.
Instale e inicie o Ollama, depois descarregue um modelo
com suporte a chamada de ferramentas. Use ollama list para encontrar o seu nome exato instalado.
export PENTEST_AI_LLM_PROVIDER=ollama
export PENTEST_AI_MODEL="your-installed-model"
ptai start https://your-authorized-target.example --no-sync
No PowerShell:
$env:PENTEST_AI_LLM_PROVIDER = "ollama"
$env:PENTEST_AI_MODEL = "your-installed-model"
ptai start https://your-authorized-target.example --no-sync
Substitua os placeholders antes de executar. Um modelo local não precisa de chave de API na nuvem. A qualidade do modelo e a memória disponível afetam os resultados. Consulte o guia de modelos para a configuração do endpoint.
Experimente a demonstração incluída
Não é necessária chave de API nem alvo externo.
pipx install ptai
ptai demo
A demonstração testa uma aplicação vulnerável incluída no pacote, reproduz um achado a partir da sua cápsula de prova e verifica as rotas reforçadas. Inspecione o fluxo de trabalho de evidências antes de configurar um engajamento real.
Outros provedores de modelos
Para modelos de nuvem autónomos e dependências opcionais do scanner, consulte o guia de instalação e o guia de provedores. Mantenha as chaves de API fora do controlo de código-fonte.
Automação de bug-bounty
O modo bug bounty destina-se a programas que permitem testes automatizados. Escreve um
perfil por programa com o seu âmbito, a taxa declarada e o teu identificador de investigador.
--program aplica depois tudo isso a cada pedido, e --dry-run imprime o
plano sem enviar nada.
# ~/.pentest-ai/programs/acme.toml
platform = "hackerone"
handle = "acme"
researcher = "your-h1-username" # sent on every request in X-Bug-Bounty
rps = 5.0 # the rate the program states
scope = ["*.acme.com", "api.acme.com"]
excluded = ["status.acme.com"]
scanners_allowed = true
allow_race = false
ptai start https://api.acme.com --program acme --dry-run # sends nothing
ptai start https://api.acme.com --program acme --auto-auth
ptai bounty-report <engagement-id> --program acme --output-dir drafts/
Em --program:
- Cada requisição é limitada à taxa do programa, incluindo ferramentas externas. Uma ferramenta que não pode ser limitada à sua parcela da taxa é ignorada e o scan informa isso.
- O escopo vem do perfil e de nenhum outro lugar. Requisições fora dele são recusadas, e as exclusões prevalecem sobre os wildcards.
- Cada requisição carrega seu handle de pesquisador em
X-Bug-Bounty, ou no cabeçalho que o programa nomeia (PTAI_BOUNTY_HEADER_NAME). - Ferramentas de wordlist como gobuster e ffuf são recusadas. Duas sondagens de descoberta integradas ainda tentam uma lista de caminhos prováveis, cerca de 500 requisições.
- Payloads criados para esgotar ou derrubar o alvo não são enviados. Sondagens que alteram contas de outros usuários ou estado compartilhado não são executadas. Rajadas de race-condition só são executadas quando o perfil define
allow_race = true. 429eRetry-Aftersão respeitados. Um alvo que desacelera recebe uma taxa menor, e um que permanece degradado interrompe o scan com o motivo registrado.- Um programa que proíbe scanners exige um
yesdigitado, porque escaneá-lo pode anular o safe harbour.
ptai bounty-report redige relatórios apenas a partir de achados verificados por oracle, com passos de reprodução extraídos das próprias requisições do oracle. Reproduza cada um manualmente e envie você mesmo. ptai bounty import converte o arquivo de escopo exportado de um programa em entradas de allow e exclude para o perfil.
O tempo de parede é o número de requisições dividido pela taxa. Em nossa aplicação de teste, uma passagem completa a 3 rps equivale a cerca de 8.700 requisições e leva 51 minutos, e encontra todo crítico e alto que uma passagem a 10 rps encontra. A 10 rps foram cerca de 6.600 requisições e 11 minutos, medidos antes que as sondagens lentas tivessem espaço para terminar em taxas baixas.