← retour aux outils back to tools

# caldera

Plateforme d'émulation d'adversaire automatisée du MITRE. Mène des opérations red team autonomes avec des techniques mappées sur ATT&CK, gère les agents et génère des rapports d'évaluation. MITRE's automated adversary emulation platform. Runs autonomous red team operations using ATT&CK-mapped techniques, manages agents, and generates assessment reports.

↗ https://github.com/mitre/caldera

## Overview

CALDERA is MITRE’s automated adversary emulation system. It uses ATT&CK techniques to autonomously run red team operations — deploying agents, executing techniques, and assessing defensive coverage. Used for purple teaming, security assessment automation, and testing detection capabilities.

## Installation

    git clone https://github.com/mitre/caldera.git --recursive
    cd caldera
    pip3 install -r requirements.txt

Start the server

    python3 server.py --insecure

→ Access at: http://localhost:8888 Default creds: admin / admin

## Architecture

    CALDERA Server → Web UI (planning, reports)
                    ↓
               C2 Channel (HTTP/S, DNS, etc.)
                    ↓
               Agents (Sandcat, Manx, Ragdoll)
                    ↓
               Target Systems (Windows, Linux, macOS)

## Agents

    # Sandcat (Go) — primary agent, cross-platform
    # Deploy from UI: Agents → Add Agent → select Sandcat
    # Or manually:

Windows

    .\sandcat.exe -server http://10.10.10.50:8888 -group red

Linux

    ./sandcat -server http://10.10.10.50:8888 -group red

macOS

    ./sandcat -server http://10.10.10.50:8888 -group red

## Operations

    # In the web UI:
    # 1. Go to Operations → + Add Operation
    # 2. Select adversary profile (APT3, APT29, etc. — MITRE ATT&CK groups)
    # 3. Select target group (deployed agents)
    # 4. Configure planning method (atomic/batch/sequential)
    # 5. Start operation

    # CALDERA runs techniques automatically:
    # - Discovery (system info, users, processes)
    # - Credential access (credential dumping)
    # - Lateral movement (if configured)
    # - Persistence
    # - Exfiltration

## Adversary Profiles

    # Pre-built profiles based on real threat actors:
    # APT3    — privilege escalation, lateral movement
    # APT29   — credential access, exfiltration
    # FIN6    — POS-targeting techniques
    # COBALT  — financial-sector TTP
    # Custom  — build your own with specific ATT&CK techniques

    # Plugins add more adversaries:
    # Emu plugin — emulates specific threat groups
    # Training plugin — guided red team exercises

## Plugins

    # Key plugins:
    # stockpile    — ATT&CK abilities and adversaries
    # sandcat      — Go agent deployment
    # emu          — threat group emulation
    # manx         — reverse shell agent
    # response     — automated defense responses
    # training     — interactive training mode

    # Install plugin:
    # Server → Configuration → Plugins → Enable

## Reports and Purple Teaming

    # After operation completes:
    # Reports → Operation Report

    # Shows:
    # - Techniques executed (MITRE ATT&CK IDs)
    # - Commands run on each agent
    # - Data collected
    # - Coverage gaps

    # Purple team: share report with defenders
    # They map techniques to detection coverage
    # Identify gaps in SIEM/EDR coverage

## REST API

CALDERA has a full REST API for automation

    curl -X GET http://localhost:8888/api/v2/agents \
      -H "KEY: ADMIN_API_KEY"

Start operation via API

    curl -X POST http://localhost:8888/api/v2/operations \
      -H "KEY: ADMIN_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"name":"test","adversary":{"adversary_id":"ad-hoc"}}'

## Tips

- CALDERA is best for purple team exercises — run and share reports with the blue team
- Start with “Discovery” adversary profiles to get baseline coverage without being destructive
- The ATT&CK matrix integration makes it easy to identify detection gaps by technique
- Use in isolated lab environments — agents have real attack capabilities

Help / Man page

    python3 server.py [options]

    --port N        Server port (default: 8888)
    --insecure      Disable SSL (for testing)
    --log LEVEL     Log level: DEBUG, INFO, WARNING
    --config FILE   Config file (default: conf/local.yml)
    --fresh         Delete existing database on start

    Access: http://localhost:8888
    Default login: admin / admin (change immediately)

## Vue d’ensemble

CALDERA est le système d’émulation d’adversaire automatisée du MITRE. Il utilise les techniques ATT&CK pour mener des opérations red team de façon autonome : déploiement d’agents, exécution de techniques, et évaluation de la couverture défensive. Utilisé pour le purple teaming, l’automatisation d’évaluations de sécurité et le test des capacités de détection.

## Installation

    git clone https://github.com/mitre/caldera.git --recursive
    cd caldera
    pip3 install -r requirements.txt

    # Démarrer le serveur
    python3 server.py --insecure
    # → Accès sur : http://localhost:8888  Identifiants par défaut : admin / admin

## Architecture

    CALDERA Server → Web UI (planning, reports)
                    ↓
               C2 Channel (HTTP/S, DNS, etc.)
                    ↓
               Agents (Sandcat, Manx, Ragdoll)
                    ↓
               Target Systems (Windows, Linux, macOS)

## Agents

    # Sandcat (Go) : agent principal, multiplateforme
    # Déployer depuis l'UI : Agents → Add Agent → sélectionner Sandcat
    # Ou manuellement :

    # Windows
    .\sandcat.exe -server http://10.10.10.50:8888 -group red

    # Linux
    ./sandcat -server http://10.10.10.50:8888 -group red

    # macOS
    ./sandcat -server http://10.10.10.50:8888 -group red

## Opérations

    # Dans l'UI web :
    # 1. Aller dans Operations → + Add Operation
    # 2. Sélectionner un profil d'adversaire (APT3, APT29, etc. : groupes MITRE ATT&CK)
    # 3. Sélectionner le groupe cible (agents déployés)
    # 4. Configurer la méthode de planification (atomic/batch/sequential)
    # 5. Démarrer l'opération

    # CALDERA lance les techniques automatiquement :
    # - Discovery (infos système, utilisateurs, processus)
    # - Accès aux identifiants (credential dumping)
    # - Déplacement latéral (si configuré)
    # - Persistance
    # - Exfiltration

## Profils d’adversaires

    # Profils prédéfinis basés sur de vrais acteurs de menace :
    # APT3    : élévation de privilèges, déplacement latéral
    # APT29   : accès aux identifiants, exfiltration
    # FIN6    : techniques ciblant les points de vente (POS)
    # COBALT  : TTP du secteur financier
    # Custom  : construisez le vôtre avec des techniques ATT&CK précises

    # Des plugins ajoutent d'autres adversaires :
    # Plugin Emu : émule des groupes de menace précis
    # Plugin Training : exercices red team guidés

## Plugins

    # Plugins clés :
    # stockpile    : capacités et adversaires ATT&CK
    # sandcat      : déploiement de l'agent Go
    # emu          : émulation de groupes de menace
    # manx         : agent reverse shell
    # response     : réponses de défense automatisées
    # training     : mode d'entraînement interactif

    # Installer un plugin :
    # Server → Configuration → Plugins → Enable

## Rapports et purple teaming

    # Une fois l'opération terminée :
    # Reports → Operation Report

    # Affiche :
    # - Techniques exécutées (IDs MITRE ATT&CK)
    # - Commandes lancées sur chaque agent
    # - Données collectées
    # - Lacunes de couverture

    # Purple team : partager le rapport avec les défenseurs
    # Ils mappent les techniques sur la couverture de détection
    # Identifient les lacunes de couverture SIEM/EDR

## API REST

    # CALDERA dispose d'une API REST complète pour l'automatisation
    curl -X GET http://localhost:8888/api/v2/agents \
      -H "KEY: ADMIN_API_KEY"

    # Démarrer une opération via l'API
    curl -X POST http://localhost:8888/api/v2/operations \
      -H "KEY: ADMIN_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"name":"test","adversary":{"adversary_id":"ad-hoc"}}'

## Conseils

- CALDERA est idéal pour les exercices purple team : lancez et partagez les rapports avec la blue team
- Commencez par des profils d’adversaire “Discovery” pour obtenir une couverture de base sans être destructeur
- L’intégration de la matrice ATT&CK facilite l’identification des lacunes de détection par technique
- À utiliser dans des environnements de lab isolés : les agents ont de réelles capacités d’attaque

Aide / Page de manuel

    python3 server.py [options]

    --port N        Server port (default: 8888)
    --insecure      Disable SSL (for testing)
    --log LEVEL     Log level: DEBUG, INFO, WARNING
    --config FILE   Config file (default: conf/local.yml)
    --fresh         Delete existing database on start

    Access: http://localhost:8888
    Default login: admin / admin (change immediately)