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.

🇰🇷 Leia isto em coreano

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.json flexí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

  1. 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
    
  2. Obtenha Sugestões de Tarefas (next ou todo):

    • 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.
  3. Execute Tarefas Automatizadas (auto):

    • Digite auto no 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.

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).