PentestGPT-MCP
Uma ferramenta avançada de teste de penetração para avaliações de segurança automatizadas e orientadas por LLM, utilizando ferramentas como nmap e dirb.
Documentação
PentestGPT-MCP
Este projeto é uma ferramenta avançada de teste de penetração baseada no artigo original "PentestGPT". Ele estende as capacidades principais integrando-se a servidores do Model Context Protocol (MCPs) para realizar avaliações de segurança automatizadas e orientadas por LLM.
Ele é baseado no projeto PentestGPT.
- Repositório GitHub Original: https://github.com/GreyDGL/PentestGPT
- Artigo de Pesquisa Original (USENIX Security '24): https://www.usenix.org/conference/usenixsecurity24/presentation/deng
Recursos
- Integração Dinâmica com Servidores MCP: Conecta-se a vários servidores de ferramentas executados localmente ou remotamente por meio de um arquivo de configuração
mcp_servers.jsonflexível. - Execução Automatizada de Tarefas (modo
auto): Executa automaticamente tarefas sugeridas pelo LLM usando ferramentas fornecidas por um servidor MCP conectado. - Modo Interativo "Human-in-the-Loop": Suporta confirmação do usuário antes de cada execução de ferramenta, aumentando a segurança e o controle durante varreduras automatizadas.
- Suporte Flexível a Modelos: Funciona com uma ampla gama de provedores de LLM, incluindo OpenAI (série GPT) e Google (série Gemini).
Instalação
1. Clone o Repositório e Configure um Ambiente Virtual
git clone https://github.com/your-username/PentestGPT-MCP.git
cd PentestGPT-MCP
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
2. Instale as Dependências
Instale os pacotes Python necessários do requirements.txt.
pip install -r requirements.txt
3. Configure as Chaves de API
O PentestGPT-MCP requer chaves de API para interagir com Modelos de Linguagem de Grande Escala. Defina as variáveis de ambiente apropriadas para o modelo que deseja usar.
Para OpenAI (ex.: gpt-4o):
export OPENAI_API_KEY="your-openai-api-key"
Para Google (ex.: Gemini):
export GOOGLE_API_KEY="your-google-api-key"
4. Configure os Servidores MCP
A ferramenta gerencia conexões com servidores MCP por meio de um arquivo de configuração JSON central.
1. Copie a Configuração de Exemplo
Copie o arquivo de exemplo do diretório config/ para a raiz do projeto.
cp config/mcp_servers.json.example ./mcp_servers.json
2. Edite o Arquivo de Configuração
Abra mcp_servers.json e personalize-o de acordo com seu ambiente.
Exemplo de Configuração:
{
"mcpServers": {
"pentest-tools": {
"command": "python",
"args": [
"mcp_servers/pentest_tools_server.py"
]
},
"kali_mcp": {
"command": "python3",
"args": [
"/absolute/path/to/mcp_server.py",
"http://LINUX_IP:5000/"
]
}
}
}
Estrutura da Configuração:
mcpServers: O objeto raiz que contém todas as configurações do servidor."server-name": Um nome exclusivo definido pelo usuário para cada servidor (ex.:"pentest-tools").command: O comando para executar o servidor (ex.:python,python3,node).args: Uma matriz de argumentos para passar ao comando. O primeiro argumento é normalmente o caminho para o script do servidor.
Importante: O mcp_servers/pentest_tools_server.py padrão assume que ferramentas como nmap e dirb estão instaladas e disponíveis no PATH do sistema. É altamente recomendável executar isso em um ambiente onde essas ferramentas estejam presentes, como o Kali Linux.
Uso
1. Executando o PentestGPT-MCP
Inicie o aplicativo a partir do diretório raiz do projeto.
python main.py
Você pode usar vários argumentos de linha de comando para personalizar a sessão:
- Alterar Modelos:
python main.py --reasoning gpt-4o --parsing gpt-4o - Listar Modelos Disponíveis:
python main.py --models - Especificar um Caminho de Configuração MCP Personalizado:
python main.py --mcp-config /path/to/your/mcp_servers.json
2. Fluxo de Trabalho Básico
-
Forneça Informações Iniciais: Quando solicitado, descreva brevemente o alvo e o objetivo do teste de penetração.
Please describe the penetration testing task in one line... > Penetration test on the web server at http://10.0.2.15 -
Obtenha Sugestões de Tarefas (
nextoutodo):next: Insira os resultados de uma varredura manual ou qualquer texto que deseje analisar. O PentestGPT processará a entrada e sugerirá os próximos passos na Árvore de Teste de Penetração (PTT).todo: Peça ao PentestGPT para recomendar a próxima tarefa com base na PTT atual.
-
Execute Tarefas Automatizadas (
auto):- Digite
autono prompt para executar a tarefa mais recentemente sugerida por meio de um servidor MCP. - Será solicitado que você selecione qual servidor MCP configurado deseja usar para a tarefa.
- Escolha o modo interativo (
y) para revisar e confirmar cada comando de ferramenta antes da execução, garantindo um processo seguro e controlado.
- Digite
Referência de Comandos
next: Envie resultados de testes para análise e receba sugestões para a próxima tarefa.todo: Peça uma recomendação sobre o que fazer em seguida.more: Solicite uma explicação mais detalhada da tarefa atual.auto: Execute automaticamente a tarefa mais recente sugerida usando um servidor MCP conectado.discuss: Participe de uma conversa livre com o PentestGPT.quit: Encerre a sessão atual (você será solicitado a salvar a sessão antes de sair).