ExploitDB MCP Server
Consulte exploits e vulnerabilidades de segurança do banco de dados ExploitDB.
Documentação
Servidor MCP ExploitDB
Um servidor Model Context Protocol que fornece acesso à funcionalidade do ExploitDB, desenvolvido por Cyreslab.ai. Este servidor permite que assistentes de IA como o Claude consultem informações sobre exploits e vulnerabilidades de segurança, aprimorando as capacidades de pesquisa em cibersegurança e inteligência de ameaças.
Repositório GitHub: https://github.com/Cyreslab-AI/exploitdb-mcp-server Contato: contact@cyreslab.ai
Recursos
- Pesquisa de Exploits: Pesquise exploits por palavras-chave, IDs CVE, plataformas e mais
- Detalhes do Exploit: Obtenha informações abrangentes sobre exploits específicos, incluindo código
- Consulta CVE: Encontre todos os exploits relacionados a IDs CVE específicos
- Exploits Recentes: Acompanhe exploits recém-adicionados
- Estatísticas: Obtenha insights sobre a distribuição de exploits por plataforma, tipo e ano
- Atualizações Automáticas: Mantenha o banco de dados atualizado com atualizações agendadas
Instalação
Pré-requisitos
- Node.js (v16 ou superior)
- npm (v7 ou superior)
Etapas de Instalação
-
Clone o repositório:
git clone https://github.com/Cyreslab-AI/exploitdb-mcp-server.git cd exploitdb-mcp-server -
Instale as dependências:
npm install -
Compile o projeto:
npm run build -
Configure o servidor:
- Crie um arquivo
.envno diretório raiz com base em.env.example - Ajuste as configurações conforme necessário (diretório de dados, frequência de atualização, etc.)
- Crie um arquivo
-
Inicialize o banco de dados:
npm run update-dbNota: A atualização inicial do banco de dados pode levar vários minutos, pois processa aproximadamente 47.000 exploits do arquivo CSV do ExploitDB. O script lida com dados ausentes ou malformados de forma graciosa, usando valores de fallback para campos obrigatórios.
-
Execute o servidor:
node build/index.js
Configuração MCP
Para usar este servidor com Claude ou outros assistentes compatíveis com MCP, adicione-o à sua configuração MCP:
{
"mcpServers": {
"mcp-exploitdb-server": {
"command": "node",
"args": ["/path/to/exploitdb-mcp-server/build/index.js"]
}
}
}
Ferramentas Disponíveis
O servidor MCP ExploitDB fornece 18 ferramentas abrangentes para consultar e analisar dados de exploits:
Ferramentas Principais de Pesquisa
- search_exploits - Pesquisa geral com múltiplos filtros
- get_exploit - Obtenha informações detalhadas sobre um exploit específico
- find_by_cve - Encontre exploits por ID CVE
- get_recent_exploits - Obtenha exploits adicionados recentemente
- get_statistics - Obtenha estatísticas do banco de dados
Ferramentas Avançadas de Pesquisa
- search_by_platform - Pesquise exploits para uma plataforma específica com filtros
- search_by_type - Pesquise por tipo de exploit (webapps, remote, local, dos, hardware, shellcode)
- search_by_author - Encontre todos os exploits de um autor específico
- search_by_date_range - Encontre exploits dentro de um intervalo de datas
- search_by_tags - Pesquise pelas tags reais do ExploitDB (ex.: "SQL Injection (SQLi)", "Cross-Site Scripting (XSS)")
Ferramentas de Análise e Inteligência
- get_platform_statistics - Obtenha estatísticas detalhadas para uma plataforma específica
- get_trending_exploits - Encontre exploits adicionados recentemente (período de tempo configurável)
- compare_exploits - Compare múltiplos exploits lado a lado
- get_exploit_timeline - Obtenha a linha do tempo cronológica dos exploits
Ferramentas Utilitárias
- batch_get_exploits - Recupere múltiplos exploits de forma eficiente (até 50)
- get_related_exploits - Encontre exploits relacionados por plataforma, autor, CVE ou tags
- validate_exploit_id - Verifique se um ID de exploit existe
- export_search_results - Exporte resultados de pesquisa em formato JSON ou CSV
Exemplos de Uso
Pesquisar Exploits
Use a ferramenta search_exploits para pesquisar exploits no banco de dados:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_exploits</tool_name>
<arguments>
{
"query": "wordpress plugin",
"platform": "php",
"limit": 5
}
</arguments>
</use_mcp_tool>
Parâmetros adicionais de pesquisa:
type: Filtre por tipo de exploit (ex.: webapps, remote, local, dos, hardware, shellcode)cve: Filtre por ID CVEauthor: Filtre por nome do autorstart_date/end_date: Filtre por intervalo de datas (AAAA-MM-DD)verified: Filtre por status verificado (true/false)offset: Para paginação
Obter Detalhes do Exploit
Use a ferramenta get_exploit para recuperar informações detalhadas sobre um exploit específico:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_exploit</tool_name>
<arguments>
{
"id": 12345,
"include_code": true
}
</arguments>
</use_mcp_tool>
Encontrar Exploits por CVE
Use a ferramenta find_by_cve para encontrar todos os exploits relacionados a um CVE específico:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>find_by_cve</tool_name>
<arguments>
{
"cve": "CVE-2021-44228",
"limit": 10
}
</arguments>
</use_mcp_tool>
Obter Exploits Recentes
Use a ferramenta get_recent_exploits para recuperar exploits adicionados recentemente:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_recent_exploits</tool_name>
<arguments>
{
"limit": 10
}
</arguments>
</use_mcp_tool>
Obter Estatísticas
Use a ferramenta get_statistics para obter insights sobre os exploits no banco de dados:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_statistics</tool_name>
<arguments>
{}
</arguments>
</use_mcp_tool>
Pesquisar por Plataforma
Pesquise exploits para uma plataforma específica com filtros avançados:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_platform</tool_name>
<arguments>
{
"platform": "php",
"type": "webapps",
"verified": true,
"limit": 10
}
</arguments>
</use_mcp_tool>
Pesquisar por Autor
Encontre todos os exploits de um autor específico:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_author</tool_name>
<arguments>
{
"author": "Offensive Security",
"limit": 10
}
</arguments>
</use_mcp_tool>
Pesquisar por Intervalo de Datas
Encontre exploits dentro de um intervalo de datas específico:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_date_range</tool_name>
<arguments>
{
"start_date": "2024-01-01",
"end_date": "2024-12-31",
"platform": "windows",
"limit": 20
}
</arguments>
</use_mcp_tool>
Pesquisar por Tags
Pesquise exploits pelas tags reais do ExploitDB:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_tags</tool_name>
<arguments>
{
"tags": ["SQL Injection (SQLi)", "Remote"],
"match_all": false,
"limit": 10
}
</arguments>
</use_mcp_tool>
Obter Exploits em Tendência
Encontre exploits adicionados recentemente:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_trending_exploits</tool_name>
<arguments>
{
"days": 30,
"limit": 10
}
</arguments>
</use_mcp_tool>
Comparar Exploits
Compare múltiplos exploits lado a lado:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>compare_exploits</tool_name>
<arguments>
{
"ids": [12345, 12346, 12347]
}
</arguments>
</use_mcp_tool>
Obter Exploits Relacionados
Encontre exploits relacionados a um exploit específico:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_related_exploits</tool_name>
<arguments>
{
"id": 12345,
"relation_type": "platform",
"limit": 10
}
</arguments>
</use_mcp_tool>
Obter Exploits em Lote
Recupere múltiplos exploits de forma eficiente:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>batch_get_exploits</tool_name>
<arguments>
{
"ids": [12345, 12346, 12347, 12348],
"include_code": false
}
</arguments>
</use_mcp_tool>
Exportar Resultados de Pesquisa
Exporte resultados de pesquisa em formato CSV ou JSON:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>export_search_results</tool_name>
<arguments>
{
"query": "wordpress",
"format": "csv",
"platform": "php",
"limit": 100
}
</arguments>
</use_mcp_tool>
Opções de Configuração
O servidor pode ser configurado usando variáveis de ambiente ou um arquivo .env:
| Variável | Descrição | Padrão |
|---|---|---|
CLONE_REPOSITORY | Se deve clonar o repositório do ExploitDB | false |
REPOSITORY_URL | URL do repositório do ExploitDB | https://gitlab.com/exploit-database/exploitdb.git |
CSV_URL | URL do arquivo CSV do ExploitDB | https://gitlab.com/exploit-database/exploitdb/-/raw/main/files_exploits.csv |
DATA_DIR | Diretório para armazenar dados | ./data |
DB_PATH | Caminho para o banco de dados SQLite | ./data/exploitdb.sqlite |
UPDATE_INTERVAL | Frequência de atualização em horas (0 para desativar) | 24 |
MAX_RESULTS | Número máximo de resultados a retornar por consulta | 10 |
Fontes de Dados
Este servidor usa dados do Exploit Database, mantido pela Offensive Security. Os dados são baixados diretamente do arquivo CSV ou clonados do repositório GitLab do ExploitDB.
Modelo de Dados
O CSV ingerido (files_exploits.csv) tem 17 colunas:
id, file, description, date_published, author, type, platform, port, date_added, date_updated, verified, codes, tags, aliases, screenshot_url, application_url, source_url.
Todas as 17 colunas são ingeridas e armazenadas:
codes— a lista real de referências CVE/OSVDB delimitada por ponto e vírgula (ex.:CVE-2017-13262;CVE-2017-13261;OSVDB-12345). Todos os identificadores CVE são extraídos desta coluna para uma tabela normalizadaexploit_cves, de modo que um exploit que aborda múltiplos CVEs seja corretamente descoberto por cada um deles. Secodesestiver vazio (linhas mais antigas às vezes não o possuem), o servidor recorre à extração por regex de um padrão CVE do texto da descrição.tags— as tags reais do ExploitDB para o exploit (ex.:SQL Injection (SQLi),Metasploit Framework (MSF)), armazenadas como estão. Elas não são adivinhadas por correspondência de palavras-chave na descrição.aliases— nomes/identificadores alternativos para o exploit (ex.:dirtycow,ImageTragick), expostos como um array.screenshot_url,application_url,source_url— links de referência da entrada original do ExploitDB, apresentados comoscreenshotUrl,applicationUrl,sourceUrl.
Outros tratamentos de qualidade de dados:
- Tratamento de datas: Usa
date_publisheddo CSV, com fallbacks paradate_added,date_updated, ou uma data padrão se todos estiverem ausentes - Campos ausentes: Fornece padrões sensatos para campos obrigatórios (autor, tipo, plataforma) quando os dados estão incompletos
- IDs duplicados: Um pequeno número de linhas no CSV upstream compartilha o mesmo
id; a linha mais recente vence (upsert porid)
A representação JSON de cada exploit inclui tanto cve (o CVE primário/primeiro, mantido para compatibilidade retroativa) quanto cves (o array completo de todos os CVEs associados ao exploit).
Nota sobre type: o files_exploits.csv ingerido contém apenas linhas webapps, remote, local, dos e hardware — a categoria shellcode do ExploitDB vive em um CSV separado (files_shellcodes.csv) que este servidor não ingere atualmente. shellcode é aceito como valor de filtro para compatibilidade futura, mas não corresponderá a nenhuma linha atualmente.
O banco de dados normalmente contém:
- Mais de 46.000 exploits abrangendo de 1988 até o presente
- Mais de 33.000 exploits verificados
- Cobertura em mais de 60 plataformas (PHP, Windows, Linux, etc.)
- Mais de 27.000 exploits de aplicações web
- Metadados abrangentes incluindo autores, datas, plataformas, CVEs, tags, aliases e URLs de referência
Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.
Agradecimentos
- Offensive Security por manter o Exploit Database
- Model Context Protocol por permitir que assistentes de IA acessem ferramentas externas
Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
Tem sugestões de recursos ou encontrou um bug? Por favor, abra uma issue em nosso repositório GitHub ou entre em contato diretamente em contact@cyreslab.ai.