Ludus

Um servidor Model Context Protocol (MCP) para automatizar ambientes de cyber range Ludus v1 e v2 por meio de assistentes de IA. Mais de 190 ferramentas para gerenciamento de range, blueprints, grupos, templates, cenários e integração com SIEM.

Documentação

Ludus FastMCP

Version Python Ludus License

Um servidor Model Context Protocol (MCP) para automatizar ambientes de cyber range Ludus por meio de assistentes de IA escritos em Python.

Visão Geral

O Ludus FastMCP permite o gerenciamento de cyber ranges Ludus com auxílio de IA por meio de comandos em linguagem natural. O servidor expõe 231 ferramentas em 23 módulos para gerenciamento do ciclo de vida do range, implantação de cenários, criação de templates, gerenciamento de roles Ansible e integração com monitoramento de segurança.

Requer Ludus 2.0 ou posterior. Esta versão tem como alvo apenas a API do Ludus 2.x, que é o que disponibiliza blueprints, grupos, fontes de conteúdo, acesso ao console de VMs, cotas e diagnósticos. O suporte à API do Ludus 1.x foi removido; fixe o ludus-fastmcp em uma versão 1.x se você ainda executa um servidor Ludus 1.x.

O cliente cobre todos os endpoints da API Ludus, validados contra um servidor Ludus 2.3.0 ativo.

Principais Capacidades

CategoriaDescrição
Gerenciamento de RangeCriar, configurar, implantar e gerenciar ambientes de laboratório virtual
BlueprintsCriar, exportar, importar, compartilhar e aplicar configurações de range reutilizáveis
Fontes de ConteúdoAdicionar catálogos git ou arquivos de templates, roles e laboratórios pré-construídos como GOAD
GruposOrganizar usuários e ranges com controle de acesso baseado em grupos
Implantação de CenáriosCenários pré-construídos para AD, equipes red/blue/purple e análise de malware
Construtor de TemplatesTemplates de SO personalizados, configurações de esqueleto e geração de YAML
Gerenciamento de RolesIntegração com Ansible Galaxy, roles personalizadas, roles de assinatura e controle de escopo
Integração SIEMSuporte a Wazuh, Splunk, Elastic Stack e Security Onion
Configuração de IAConversão de linguagem natural para configuração YAML
DiagnósticosSaúde do sistema, informações de licença, histórico de logs de implantação e ferramentas de migração
Cotas e LimitesCotas de recursos por usuário e por grupo, além de desligamento automático de range (plugin)

Plataformas Suportadas

Funciona com qualquer cliente compatível com MCP, incluindo Claude Desktop, VS Code (Cline), OpenWebUI e AnythingLLM.

Início Rápido

Requisitos

  • Python 3.11+
  • FastMCP 3.x (instalado automaticamente)
  • Um servidor Ludus executando 2.0 ou posterior
  • Chave de API Ludus, ou um token JWT para implantações Pro/SSO

Instalação

# Using pipx (recommended)
pipx install git+https://github.com/tjnull/Ludus-FastMCP

# From source
git clone https://github.com/tjnull/Ludus-FastMCP
cd Ludus-FastMCP
pip install -e .

Configuração

Execute o assistente de configuração interativo:

ludus-fastmcp --setup

O assistente configura as credenciais da API, testa a conectividade e gera arquivos de configuração do cliente MCP.

Para opções de configuração manual, consulte o Guia de Configuração.

Uso

Servidor MCP (ludus-fastmcp)

ludus-fastmcp --setup          # Interactive setup wizard
ludus-fastmcp --list-tools     # List all 231 available tools
ludus-fastmcp --version        # Display version information
ludus-fastmcp                  # Start MCP server
ludus-fastmcp --daemon         # Run as background service

CLI do Cliente (ludus-ai)

ludus-ai setup-llm                    # Configure local LLM (Ollama)
ludus-ai install anythingllm          # Install AnythingLLM interface
ludus-ai tool list-tools              # List available tools
ludus-ai tool call-tool <name>        # Execute tools directly

Exemplos de Interação

Uma vez conectado a um cliente MCP, interaja com seu ambiente Ludus:

Show my current range status
Deploy an Active Directory lab with Wazuh monitoring
Create a snapshot named "pre-attack" for all VMs
Build a lab with 2 domain controllers and 5 workstations
Create a blueprint from my current range and share it with the red-team group
Show system diagnostics and storage usage
List all groups and their members

Exemplos de uso do Ludus-FastMCP com grok code por meio do Opencode.

img

img

img

img

Documentação

DocumentoDescrição
IntroduçãoInstalação, configuração e primeira implantação
ConfiguraçãoVariáveis de ambiente e configuração do cliente MCP
Referência de FerramentasDocumentação completa para todas as 231 ferramentas
CenáriosCenários de implantação pré-construídos
Solução de ProblemasProblemas comuns e soluções
SegurançaRecursos de segurança e melhores práticas

Requisitos do Servidor Ludus

Esta versão fala apenas com a API do Ludus 2.x. Cada requisição vai para /api/v2; não há caminho de código v1 restante para o qual recorrer.

Na primeira chamada, o cliente pergunta ao servidor sua versão e se recusa a continuar se ele não responder como um servidor 2.x, então uma incompatibilidade aparece uma vez, logo no início, em vez de um 404 confuso de qualquer ferramenta que você tenha executado:

https://ludus.example:8080 does not serve the Ludus 2.x API
(GET /api/v2/ returned HTTP 404). This release requires Ludus 2.0 or later;
upgrade the server, or pin ludus-fastmcp to a 1.x release for a Ludus 1.x server.

Defina LUDUS_API_VERSION=v2 para afirmar a versão você mesmo e pular essa verificação (isso economiza uma requisição por sessão). LUDUS_API_VERSION=v1 é rejeitado na inicialização em vez de ser silenciosamente ignorado.

Ainda no Ludus 1.x?

Fixe uma versão mais antiga:

pipx install "git+https://github.com/tjnull/Ludus-FastMCP@v1.0.0"

Atualizar o servidor é o melhor caminho: blueprints, fontes de conteúdo, grupos, cotas, histórico de logs de implantação e acesso ao console de VMs não existem na API 1.x.

Recursos controlados por plugin

Alguns recursos do Ludus são fornecidos como plugins de servidor que podem não estar carregados em uma instalação específica. Cotas e desligamento automático são os exemplos comuns. Quando um plugin está ausente, a API Ludus responde com HTTP 404 mesmo que a requisição esteja correta.

Em vez de relatar isso como um endpoint ausente, essas ferramentas retornam um resultado claro para que um assistente de IA não saia procurando por um bug inexistente:

{
  "available": false,
  "feature": "Quotas",
  "error": "Quotas is not available on this Ludus server.",
  "reason": "This capability is provided by a Ludus plugin that is not loaded on the server.",
  "hint": "The request was well-formed. Do not retry or try alternative endpoints."
}

Endpoints que um servidor não implementa (HTTP 501, como /range/sshconfig em algumas versões) são relatados da mesma forma, com uma nota explícita de que tentar novamente não ajudará.

Recursos

RecursoLink
Documentação Ludusdocs.ludus.cloud
Referência da API Ludusapi-docs.ludus.cloud
Ludus GitHubgithub.com/badsectorlabs/ludus
Framework FastMCPgofastmcp.com
Especificação MCPmodelcontextprotocol.io

Suporte

Licença

Este projeto é licenciado sob a Licença MIT. Consulte LICENSE para detalhes.

Aviso Legal

Este software é destinado a testes de segurança autorizados, fins educacionais e pesquisa em ambientes controlados. Os usuários são responsáveis pela conformidade com as leis aplicáveis e políticas organizacionais. Os autores não oferecem garantias e não assumem responsabilidade pelo uso ou uso indevido deste software.

Agradecimentos

  • Ludus por Bad Sector Labs
  • FastMCP e a comunidade Model Context Protocol.

Créditos

  • @LouDeter - Middleware de registro de requisições/respostas MCP e suporte a arquivos de log (PR #8)