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)