MCP Kali Server
Um servidor abrangente do Model Context Protocol (MCP) para testes de penetração e operações de cibersegurança, oferecendo integração perfeita entre ferramentas do Kali Linux e clientes compatíveis com MCP.
Documentação
MCP Kali Server

Um servidor abrangente de Model Context Protocol (MCP) para operações de teste de penetração e segurança cibernética, fornecendo integração perfeita entre as ferramentas do Kali Linux e clientes compatíveis com MCP.
🎥 Vídeo de Demonstração
Automatizando o Kali Linux com um MCP (Model Context Protocol) — Demonstração HTB
Neste vídeo, mostro como meu MCP automatiza um fluxo de trabalho do Kali Linux dentro do WSL2 e auxilia na resolução de um desafio do Hack The Box — desde a enumeração até a exploração e a documentação gerada automaticamente.
Assista à demonstração no YouTube
🚀 Visão Geral
Este projeto fornece um poderoso servidor MCP que permite acesso seguro e programático às ferramentas de teste de penetração do Kali Linux por meio de uma interface padronizada. Inclui recursos avançados como gerenciamento de shell reverso, manipulação de sessões SSH e operações abrangentes de arquivos com verificação de integridade.
🏗️ Arquitetura
Este projeto foi projetado para funcionar em diferentes ambientes:
1. Servidor Kali (kali-server/)
Executa apenas no Kali Linux — O aplicativo servidor principal que fornece as capacidades reais de teste de penetração.
kali-server/
├── api/ # REST API routes and endpoints
├── core/ # Core functionality (SSH, reverse shells, config, Docker)
├── tools/ # Penetration testing tools integration
└── utils/ # Utility functions and file operations
Recursos:
- Modo de teste Docker (opção
--test) — gerencia automaticamente contêineres de teste - Todas as ferramentas de teste de penetração (nmap, gobuster, etc.)
- Gerenciamento de sessões SSH e shell reverso
- Operações de arquivos com verificação de integridade
2. Servidor MCP (mcp-server/)
Pode ser executado em qualquer sistema — O servidor Model Context Protocol que fornece uma interface padronizada para clientes MCP.
mcp-server/
└── mcp_server.py # MCP protocol implementation
Nota: O servidor MCP se comunica com o servidor Kali via HTTP, portanto, eles podem estar em sistemas diferentes.
Arquitetura de Implantação
┌─────────────────┐ HTTP ┌──────────────────┐ HTTP ┌──────────────────┐
│ MCP Client │ ◄─────────► │ MCP Server │ ◄─────────► │ Kali Server │
│ (Any system) │ │ (Any system) │ │ (Kali Linux) │
└─────────────────┘ └──────────────────┘ │ │
│ ┌──────────────┐ │
│ │ Docker │ │
│ │ (test mode) │ │
│ └──────────────┘ │
└──────────────────┘
✨ Recursos Principais
🔧 Ferramentas de Teste de Penetração
- Nmap: Descoberta de rede e auditoria de segurança
- Gobuster: Enumeração de diretórios/arquivos
- Dirb: Scanner de conteúdo web
- Nikto: Scanner de servidores web
- Hydra: Quebrador de logins de rede
- SQLmap: Teste de injeção SQL
- WPScan: Scanner de segurança WordPress
- John the Ripper: Quebra de senhas
- Enum4linux: Enumeração SMB
- Metasploit: Framework de exploração
🐚 Gerenciamento Avançado de Sessões
- Gerenciador de Sessões SSH: Gerenciamento completo do ciclo de vida de sessões SSH
start_ssh_session: Estabelecer conexões SSH segurasexecute_ssh_command: Executar comandos em sessões SSHget_ssh_status: Monitorar o status das sessões SSHstop_ssh_session: Encerrar sessões SSH de forma limpalist_ssh_sessions: Visualizar todas as sessões SSH ativas
- Gerenciador de Shell Reverso: Manipulação de múltiplas sessões de shell reverso
start_reverse_shell_listener: Iniciar escuta para shells reversosexecute_shell_command: Executar comandos em shells reversostrigger_reverse_shell_action: Execução de gatilho não bloqueante para payloadsget_shell_status: Monitorar o status das sessões de shell reversostop_reverse_shell: Encerrar sessões de shell reversolist_reverse_shell_sessions: Visualizar todas as sessões de shell reverso ativas
📁 Operações Abrangentes de Arquivos
- Gerenciamento de Arquivos do Servidor Kali:
upload_to_kali: Enviar arquivos diretamente para o servidor Kalidownload_from_kali: Baixar arquivos do servidor Kali
- Transferência de Arquivos via SSH (otimizada para arquivos grandes):
ssh_upload_content: Enviar conteúdo via SSH com otimização automáticassh_download_content: Baixar conteúdo via SSH com divisão em partesssh_estimate_transfer_time: Estimar tempos de transferência e obter recomendações
- Transferência de Arquivos via Shell Reverso:
reverse_shell_upload_file: Enviar arquivos via shell reversoreverse_shell_upload_content: Enviar conteúdo via shell reversoreverse_shell_download_file: Baixar arquivos via shell reversoreverse_shell_download_content: Baixar conteúdo via shell reverso
🛠️ Integração de Sistema
- Execução de Comandos: Execução direta de comandos no servidor Kali
- Monitoramento de Saúde: Verificações de saúde do servidor e monitoramento de status
- Persistência de Sessões: Manter múltiplas sessões simultâneas
🔒 Recursos de Segurança
- Integridade de Dados: Verificação de checksum SHA256 para todas as transferências de arquivos
- Comunicações Seguras: Conexões SSH criptografadas
- Isolamento de Sessões: Gerenciamento independente de sessões
- Tratamento de Erros: Detecção e relatório abrangentes de erros
📊 Otimização de Desempenho
- Transferências em Partes: Otimizado para operações com arquivos grandes
- Seleção Automática de Método: Seleção inteligente com base no tamanho do arquivo
- Processamento em Segundo Plano: Operações não bloqueantes para tarefas de longa duração
- Gerenciamento de Recursos: Uso eficiente de memória e CPU
🛠️ Instalação
Consulte install.md para instruções detalhadas de instalação.
Configuração do Cliente MCP
Após a instalação, configure seu cliente MCP para conectar-se ao servidor Kali:
Este guia aborda:
- Configuração do
.claude/mcp_settings.jsonpara Claude Desktop - Configuração de clientes MCP alternativos
- Como encontrar seu caminho do Python e o endereço IP do Kali
- Exemplos específicos por plataforma (Windows, Linux, macOS)
Configuração de Rede WSL
Se você estiver executando o Kali Linux no WSL 2, a configuração adequada de rede é crítica para o funcionamento do servidor MCP. Consulte nosso guia abrangente:
📖 Guia de Configuração de Rede WSL
Este guia aborda:
- Configuração essencial do WSL (
wsl.conf) - Configuração de resolução de DNS para ferramentas do Kali
- Crítico: Entendendo o comportamento do localhost no WSL 2 (comunicação Windows → Kali)
- Testes de rede e solução de problemas
⚠️ Importante: O cliente MCP no Windows deve ser capaz de acessar o servidor Kali via localhost. Revise este guia antes de executar o servidor.
Divisão de Dependências
Este projeto agora separa as dependências Python para os dois componentes de tempo de execução:
requirements.kali.txt– Apenas o que o código Python do servidor de API Kali precisa (Flask, etc.)requirements.mcp.txt– Dependências para a interface do cliente do servidor MCP (requests, FastMCP, bibliotecas de teste)requirements.txt– Arquivo informativo descrevendo a divisão; não contém pacotes diretos agora.
Instale em cada máquina conforme apropriado:
pip install -r requirements.kali.txt # On Kali host running kali-server/
pip install -r requirements.mcp.txt # On host running mcp-server/
⚠️ Aviso de Segurança
IMPORTANTE: Tenha extrema cautela ao executar o servidor Kali com privilégios de sudo:
# ⚠️ DANGEROUS - Avoid if possible
sudo python kali_server.py
Por que isso é arriscado:
- Todo o servidor é executado com privilégios de root
- Todos os endpoints de API e comandos são executados com acesso total ao sistema
- Qualquer comprometimento do servidor concede acesso root completo ao sistema
- Não há separação de privilégios ou controle de acesso
Alternativas mais seguras:
- Execute o servidor como um usuário comum (muitas ferramentas funcionam sem root)
- Use permissões sudo específicas apenas para comandos que as exigem
- Considere contêineres ou virtualização para isolamento
- Implemente elevação de privilégios apenas quando absolutamente necessário
Para ambientes de produção: Consulte TODO.md para melhorias de segurança planejadas, incluindo gerenciamento granular de privilégios e controles de acesso.
📖 Uso
Consulte usage.md para instruções detalhadas de uso e exemplos.
🧪 Testes
O projeto inclui suítes de testes abrangentes usando contêineres Docker para ambientes de teste isolados.
Executar Todos os Testes
cd tests
./run_all.bat # Windows
# or
chmod +x run_all.sh && ./run_all.sh # Linux
Ambiente de Teste Docker
cd tests/docker
docker-compose up -d --build
python test_config_docker.py
Testes do Gerenciador SSH
cd tests/kali
python -m pytest test_ssh_manager.py -v
Configuração de Testes
Os testes usam contêineres Docker para ambientes de teste consistentes e isolados. A configuração é configurada automaticamente em:
tests/kali/test_config.py- Configuração principal de teste (baseada em Docker)tests/docker/test_config_docker.py- Configuração de teste específica para Docker
📋 Ferramentas MCP Disponíveis
O servidor MCP fornece as seguintes ferramentas:
| Ferramenta | Descrição |
|---|---|
mcp_kali_mcp_nmap_scan | Varredura de rede e enumeração |
mcp_kali_mcp_gobuster_scan | Enumeração de diretórios e arquivos |
mcp_kali_mcp_hydra_attack | Força bruta de senhas |
mcp_kali_mcp_start_ssh_session | Gerenciamento de sessões SSH |
mcp_kali_mcp_execute_ssh_command | Execução de comandos SSH |
mcp_kali_mcp_ssh_upload_content | Envio de arquivos via SSH |
mcp_kali_mcp_ssh_download_content | Download de arquivos via SSH |
mcp_kali_mcp_start_reverse_shell_listener | Gerenciamento de shell reverso |
mcp_kali_mcp_generate_reverse_shell_payload | Geração de payloads |
🔍 Operações de Arquivos
Envio com Verificação de Integridade
# The system automatically verifies file integrity using SHA256 checksums
upload_result = {
"success": True,
"source_checksum": "abc123...",
"remote_checksum": "abc123...",
"checksum_verified": True,
"integrity_check": "PASSED"
}
Download com Verificação de Integridade
# All downloads include automatic integrity verification
download_result = {
"success": True,
"remote_checksum": "def456...",
"local_checksum": "def456...",
"checksum_verified": True,
"integrity_check": "PASSED"
}
🚨 Considerações de Segurança
- Ambiente de Teste: Todos os testes usam contêineres Docker isolados para segurança
- Segurança de Rede: Garanta a configuração adequada do firewall
- Autenticação: Use senhas fortes e autenticação baseada em chaves
- Gerenciamento de Sessões: Limpe regularmente sessões não utilizadas
- Permissões de Arquivos: Defina permissões apropriadas nos arquivos enviados
- Registro de Atividades: Monitore todas as atividades por meio de registro abrangente
🐛 Solução de Problemas
Problemas Comuns
-
Conexão Recusada
# Check if server is running curl http://localhost:5000/health -
Falha na Conexão SSH
# Verify SSH connectivity ssh user@target-host -
Ferramenta Não Encontrada
# Install missing tools sudo apt update && sudo apt install nmap gobuster -
Problemas no Modo de Teste Docker
Se você encontrar erros relacionados ao Docker ao usar o modo
--testno Kali Linux:Correções comuns de Docker no Kali Linux:
# Install Docker sudo apt update && sudo apt install docker.io # Start Docker service sudo systemctl start docker sudo systemctl enable docker # Add user to docker group (then logout/login) sudo usermod -aG docker $USER # Test Docker access docker --version docker psSe os comandos Docker funcionam manualmente, mas falham no modo de teste:
- O problema pode estar relacionado ao PATH no ambiente Python
- Tente executar com sudo:
sudo python kali_server.py --test - Verifique as permissões do socket Docker:
ls -la /var/run/docker.sock - Certifique-se de estar executando no Kali Linux, não no Windows
Modo de Depuração
Ative o registro de depuração:
# For the server
python kali_server.py --test --debug
# For Python logging
import logging
logging.basicConfig(level=logging.DEBUG)
🤝 Contribuindo
- Faça um fork do repositório
- Crie um branch de recurso
- Siga os padrões de codificação (comentários em inglês, nomenclatura adequada)
- Adicione testes abrangentes
- Atualize a documentação
- Envie um pull request
Padrões de Codificação
- Todo código, variáveis e funções devem estar em inglês
- Todos os comentários e documentação devem estar em inglês claro
- Siga as convenções de nomenclatura padrão
- Adicione testes para novos recursos ou correções de bugs
- Atualize o README e a documentação
📄 Licença
Este projeto é licenciado sob a Licença MIT — consulte o arquivo LICENSE para obter detalhes.
🙏 Agradecimentos
- Projeto Original: Este projeto é inicialmente um fork do MCP-Kali-Server, mas foi completamente reescrito e reestruturado
- Kali Linux pela plataforma abrangente de teste de penetração
- Model Context Protocol pela interface padronizada
- A comunidade de segurança cibernética pelo desenvolvimento contínuo de ferramentas
📞 Suporte
- Problemas: Issues do GitHub
- Documentação: Wiki
⚠️ Aviso Legal: Esta ferramenta é projetada apenas para testes de penetração autorizados e pesquisa de segurança. Os usuários são responsáveis por cumprir as leis e regulamentos aplicáveis.