安全测试集成服务器

OWASP ZAP MCP Server是一个集成OWASP ZAP与Claude Desktop的安全测试工具,支持交互式渗透测试、自动化扫描和安全报告生成。

  • by Luciomo
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Luciomo/zap-mcp-server

使用说明

🛡️ OWASP ZAP MCP Server

Servidor MCP (Model Context Protocol) que integra o OWASP ZAP com o Claude Desktop para pentesting interativo, automação de scans e geração de relatórios de segurança.

📋 Pré-requisitos

  • Node.js 18+ instalado.
  • Java 11+ (necessário para rodar o ZAP).
  • Claude Desktop instalado.
  • OWASP ZAP (O script de atualização pode baixar para você, ou você pode usar uma instalação existente).

🚀 Instalação e Configuração

1. Instalar Dependências

./install.sh

Este script irá:

  • ✅ Verificar dependências
  • ✅ Instalar pacotes npm
  • ✅ Gerar API key forte automaticamente
  • ✅ (Opcional) Iniciar o ZAP via Docker
  • ✅ Criar arquivo de configuração do Claude pronto

Depois basta copiar o conteúdo de claude_config_ready.json para o arquivo de configuração do Claude!


Opção 2: Setup Manual

1. Gerar API Key

npm run generate-key

Copie uma das keys geradas (recomendado: Médio - 32 caracteres).

1. Instalar Dependências

cd zap-mcp-server
npm install

2. Iniciar o OWASP ZAP

Opção A: Docker (Mais Fácil)

Opção B: Instalação Local

Linux:

Iniciar e parar o ZAP:

cd zap-mcp-server

start-services.sh 

e

stop-services.sh

Windows:

zap.bat -daemon -port 8080 -config api.key=minha-api-key-super-secreta

macOS:

/Applications/ZAP.app/Contents/Java/zap.sh -daemon -port 8080 \
  -config api.key=minha-api-key-super-secreta

3. Testar Conexão

npm test

Se ver "✅ Conexão bem-sucedida!", pode continuar!

4. Configurar Claude Desktop

Edite o arquivo de configuração do Claude:

macOS:

nano ~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows:

notepad %APPDATA%\Claude\claude_desktop_config.json

Linux:

nano ~/.config/Claude/claude_desktop_config.json

Adicione esta configuração (ajuste o caminho completo):

{
  "mcpServers": {
    "owasp-zap": {
      "command": "node",
      "args": ["/CAMINHO/COMPLETO/PARA/zap-mcp-server/server.js"],
      "env": {
        "ZAP_URL": "http://localhost:8080",
        "ZAP_API_KEY": "minha-api-key-super-secreta"
      }
    }
  }
}

⚠️ IMPORTANTE: Substitua /CAMINHO/COMPLETO/PARA/ pelo caminho real!

Para descobrir o caminho:

pwd
# Exemplo de saída: /home/claude/zap-mcp-server

5. Reiniciar Claude Desktop

Feche completamente o Claude Desktop e abra novamente.

pkill -f "claude" # Linux/macOS taskkill /IM "claude.exe" /F # Windows

6. Testar no Claude

Abra uma conversa e teste:

"Verifique se o ZAP está conectado"

Se funcionar, você verá a versão do ZAP! 🎉

📚 Comandos Úteis

# Gerar nova API key
npm run generate-key

# Testar conexão com ZAP
npm test

# Iniciar servidor MCP (não necessário se usando Claude Desktop)
npm start

# Ver informações do setup
cat SETUP_INFO.txt

# Ver configuração gerada
cat claude_config_ready.json

🎯 Comandos Disponíveis

Verificar Conexão

"Verifique se o ZAP está conectado"

Spider (Crawling)

"Execute spider em http://testphp.vulnweb.com"
"Qual o status do spider?"
"Mostre as URLs descobertas pelo spider"

Scan Ativo

"Faça scan ativo em http://testphp.vulnweb.com"
"Verifique o progresso do scan ativo"

AJAX Spider (Para SPAs)

"Execute AJAX spider em https://exemplo-spa.com"
"Qual o status do AJAX spider?"

Ver Vulnerabilidades

"Mostre todas as vulnerabilidades encontradas"
"Mostre apenas vulnerabilidades High"
"Liste vulnerabilidades de http://testphp.vulnweb.com"

Configurar Scope

"Defina o contexto 'MeuTeste' com scope https://example.com/.*"

Gerar Relatório

"Gere um relatório HTML dos resultados"

Workflow Completo

"Execute este workflow:
1. Spider em http://testphp.vulnweb.com
2. Aguarde conclusão
3. Execute scan ativo
4. Mostre vulnerabilidades
5. Gere relatório"

🎓 Sites de Teste Legais

Use estes sites para praticar (são propositalmente vulneráveis):

  • http://testphp.vulnweb.com
  • http://testaspnet.vulnweb.com
  • http://testasp.vulnweb.com
  • https://ginandjuice.shop (exemplo oficial do ZAP)

⚠️ NUNCA teste sites sem permissão!

🔧 Solução de Problemas

Windows: Claude não reconhece o servidor

Se o servidor aparece como "Disconnected" ou não carrega no Windows, geralmente é porque o Claude não encontra o node.

  1. Descubra onde está o node: where node
  2. Use o caminho absoluto e barras duplas no config:
"owasp-zap": {
  "command": "C:\\Program Files\\nodejs\\node.exe",
  "args": ["d:\\Caminho\\Para\\zap-mcp-server\\server.js"],
  ...
}
  1. Verifique os logs em: %APPDATA%\Claude\logs\

Linux/macOS: Claude não reconhece o servidor

Se você usa NVM ou o Claude não encontra o comando node (aparece "Disconnected"):

  1. Descubra o caminho real no terminal: which node
  2. Use o caminho absoluto no config:
"command": "/home/seu-usuario/.nvm/versions/node/v20.x.x/bin/node",

ZAP não conecta

# Verificar se ZAP está rodando
curl http://localhost:8080/JSON/core/view/version/?apikey=minha-api-key-super-secreta

# Deve retornar: {"version":"X.X.X"}

Claude não vê as ferramentas

  1. Verifique o caminho em claude_desktop_config.json
  2. Reinicie Claude Desktop COMPLETAMENTE
  3. Verifique logs: Menu → Settings → Developer → View Logs

Erro de permissão

chmod +x server.js

API Key incorreta

Certifique-se que a mesma API key está em:

  • Comando de inicialização do ZAP
  • claude_desktop_config.json

📚 Ferramentas Disponíveis

Ferramenta Descrição
zap_check_connection Verifica conexão com ZAP
zap_spider Crawling tradicional
zap_spider_status Status do spider
zap_spider_results URLs descobertas
zap_ajax_spider Spider com navegador real
zap_ajax_spider_status Status AJAX spider
zap_active_scan Scan ativo de vulnerabilidades
zap_active_scan_status Status do scan ativo
zap_get_alerts Lista vulnerabilidades
zap_passive_scan_status Status scan passivo
zap_set_context Define scope (include/exclude regex)
zap_generate_report Gera e salva relatório HTML em disco
zap_access_url Acessa URL via proxy

🔒 Segurança

  • ⚠️ Nunca exponha a API do ZAP para internet
  • 🔑 Use API keys fortes em produção
  • 🚫 Apenas teste alvos com permissão
  • 🛡️ Rode em ambiente isolado/VM

📖 Recursos

🐛 Reportar Problemas

Se encontrar bugs, abra uma issue com:

  • Sistema operacional
  • Versão do Node.js
  • Versão do ZAP
  • Logs de erro

📄 Licença

MIT

🙏 Créditos

Desenvolvido para integração entre Claude AI e OWASP ZAP via Model Context Protocol (MCP).


Boa sorte com seus testes de segurança! 🛡️🚀