Skip to content

Stratus Red Team

Stratus Red Team is an open-source adversary emulation platform that simulates real-world cloud attacks across AWS, Azure, GCP, and Kubernetes. It’s designed for security teams to validate detections, test incident response procedures, and improve cloud security posture through controlled purple team exercises.

Installation

Go Install

go install github.com/DataDog/stratus-red-team/v2/cmd/stratus@latest
stratus --version

GitHub Release Download

# Download latest release
cd /tmp
wget https://github.com/DataDog/stratus-red-team/releases/download/v2.x.x/stratus-linux-x86_64
chmod +x stratus-linux-x86_64
sudo mv stratus-linux-x86_64 /usr/local/bin/stratus

Homebrew (macOS)

brew install stratus-red-team
stratus --version

Docker

docker run datadog/stratus-red-team:latest stratus --help
docker run -e AWS_REGION=us-east-1 datadog/stratus-red-team:latest stratus list

Docker with AWS Credentials

docker run -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
  -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
  -e AWS_REGION=us-east-1 \
  datadog/stratus-red-team:latest stratus detonate aws.defense-evasion.cloudtrail-delete

Quick Start

List All Available Techniques

stratus list

List Techniques by Platform

stratus list --platform aws
stratus list --platform azure
stratus list --platform gcp
stratus list --platform kubernetes

Filter by MITRE ATT&CK Tactic

stratus list --mitre-attack-tactic credential-access
stratus list --mitre-attack-tactic defense-evasion
stratus list --mitre-attack-tactic discovery

View Technique Details

stratus show aws.initial-access.console-login-without-mfa
stratus show azure.credential-access.add-member-to-group

Quick Detonate Technique

stratus detonate aws.discovery.ec2-enumerate-instances

Attack Technique Lifecycle

Stratus follows a structured lifecycle for each technique:

Lifecycle StageDescriptionCommand
WarmupPre-requisite setup (create test IAM user, EC2 instances)stratus warmup <technique>
DetonateExecute the attack techniquestratus detonate <technique>
CleanupRemove artifacts created during detonatestratus detonate --cleanup
RevertUndo all changes from warmupstratus revert <technique>
StatusCheck warmup/detonate state of techniquestratus status <technique>

Typical Workflow

# 1. Warm up (creates test infrastructure)
stratus warmup aws.persistence.create-access-key

# 2. Detonate (runs the attack)
stratus detonate aws.persistence.create-access-key

# 3. View status
stratus status aws.persistence.create-access-key

# 4. Cleanup artifacts from detonate
stratus detonate --cleanup aws.persistence.create-access-key

# 5. Revert warmup changes
stratus revert aws.persistence.create-access-key

AWS Techniques

Credential Access

TechniqueDescription
aws.credential-access.ec2-get-password-dataRetrieve Windows instance password
aws.credential-access.ec2-describe-security-groupsList security groups and rules
aws.credential-access.iam-get-userEnumerate IAM user details
aws.credential-access.secretsmanager-listList AWS Secrets Manager secrets

Persistence

TechniqueDescription
aws.persistence.create-access-keyCreate IAM access keys for persistence
aws.persistence.create-iam-userBackdoor IAM user creation
aws.persistence.create-login-profileAdd password-based console access
aws.persistence.create-iam-roleCreate privileged IAM role
aws.persistence.lambda-invocation-roleCreate Lambda execution role

Defense Evasion

TechniqueDescription
aws.defense-evasion.cloudtrail-deleteDelete CloudTrail logs
aws.defense-evasion.disable-cloudtrailDisable CloudTrail logging
aws.defense-evasion.disable-guarddutyDisable GuardDuty detections
aws.defense-evasion.vpc-flow-logs-disableDisable VPC Flow Logs
aws.defense-evasion.s3-block-public-access-disableDisable S3 public access block

Discovery

TechniqueDescription
aws.discovery.ec2-enumerate-instancesList EC2 instances and details
aws.discovery.iam-enumerate-usersEnumerate IAM users
aws.discovery.iam-enumerate-rolesEnumerate IAM roles
aws.discovery.s3-list-bucketsList all S3 buckets
aws.discovery.rds-describe-instancesDiscover RDS database instances

Exfiltration

TechniqueDescription
aws.exfiltration.s3-download-objectDownload objects from S3 bucket
aws.exfiltration.ec2-snapshot-createCreate EC2 snapshot for data theft
aws.exfiltration.rds-snapshot-createCreate RDS snapshot copy
aws.exfiltration.logs-get-log-eventsExtract CloudWatch logs

Initial Access

TechniqueDescription
aws.initial-access.console-login-without-mfaAWS console login without MFA
aws.initial-access.ec2-launch-instanceLaunch EC2 instance

Lateral Movement

TechniqueDescription
aws.lateral-movement.iam-assume-roleAssume IAM role across accounts
aws.lateral-movement.ec2-describe-instancesEnumerate instances for pivoting

Azure Techniques

Credential Access

stratus show azure.credential-access.az-cli-list-user-credentials
TechniqueDescription
azure.credential-access.get-managed-identity-tokenExtract managed identity tokens
azure.credential-access.list-app-service-authEnumerate app service authentication

Persistence

TechniqueDescription
azure.persistence.create-service-principalCreate backdoor service principal
azure.persistence.add-global-adminAdd global admin to Entra ID
azure.persistence.app-service-publishPublish backdoor app service

Entra ID (Azure AD) Attacks

stratus list --platform azure | grep entra
TechniqueDescription
azure.persistence.add-member-to-groupAdd backdoor member to group
azure.defense-evasion.disable-mfa-for-userDisable MFA on target user

Discovery

TechniqueDescription
azure.discovery.list-subscriptionsEnumerate Azure subscriptions
azure.discovery.list-app-servicesDiscover app service instances
azure.discovery.list-keyvault-secretsEnumerate Key Vault secrets

GCP Techniques

Service Account Abuse

stratus list --platform gcp | grep service-account
TechniqueDescription
gcp.persistence.iam-add-memberAdd backdoor IAM member
gcp.credential-access.get-service-account-keysEnumerate service account keys

Compute Discovery

TechniqueDescription
gcp.discovery.compute-instancesList Compute Engine instances
gcp.discovery.list-cloud-sqlEnumerate Cloud SQL instances
gcp.discovery.list-storage-bucketsList GCS buckets

Defense Evasion

TechniqueDescription
gcp.defense-evasion.disable-cloud-audit-logsDisable Cloud Audit Logging

Kubernetes Techniques

Pod Creation & Escape

TechniqueDescription
kubernetes.persistence.create-podCreate privileged pod
kubernetes.privilege-escalation.create-clusterroleCreate ClusterRole for persistence

RBAC Abuse

TechniqueDescription
kubernetes.persistence.create-clusterrolebindingBind cluster admin role
kubernetes.discovery.list-clusterrolesEnumerate available roles

Secrets Access

stratus detonate kubernetes.credential-access.list-secrets
TechniqueDescription
kubernetes.credential-access.list-secretsExtract Kubernetes secrets
kubernetes.credential-access.get-secretRead specific secret value

Listing and Filtering

Comprehensive List with Details

stratus list -o table
stratus list -o json | jq '.[] | .id'

Filter by Multiple Criteria

# AWS + credential access
stratus list --platform aws --mitre-attack-tactic credential-access

# Azure + persistence
stratus list --platform azure --mitre-attack-tactic persistence

# Defense evasion across all platforms
stratus list --mitre-attack-tactic defense-evasion

Filter Output Format

# JSON output for scripting
stratus list --format json | jq '.[] | select(.tactic=="credential-access")'

# CSV export
stratus list --format csv > techniques.csv

Search by Technique ID

stratus show aws.defense-evasion.cloudtrail-delete --format json

Warming Up

Warmup creates prerequisite infrastructure (IAM users, EC2 instances, S3 buckets) needed for techniques to run successfully.

Basic Warmup

stratus warmup aws.persistence.create-access-key
stratus warmup aws.discovery.ec2-enumerate-instances
stratus warmup aws.discovery.iam-enumerate-users

Check Warmup Status

stratus status aws.persistence.create-access-key

Warmup with Custom Parameters

# Some techniques support parameters
stratus warmup aws.discovery.ec2-enumerate-instances

Cleanup Warmup Resources

stratus revert aws.persistence.create-access-key

Detonation

Detonation executes the actual attack technique. Should be performed after successful warmup.

Basic Detonate

stratus detonate aws.initial-access.console-login-without-mfa

Detonate with Cleanup

# Runs detonate + cleanup in one command
stratus detonate --cleanup aws.defense-evasion.cloudtrail-delete

Force Detonate (Skip Warmup Check)

stratus detonate --force aws.discovery.ec2-enumerate-instances

Detonate Multiple Techniques

for technique in aws.discovery.ec2-enumerate-instances aws.discovery.iam-enumerate-users; do
  stratus detonate $technique
done

Dry Run (No Changes)

stratus detonate --dry-run aws.persistence.create-access-key

Status Management

Check Technique Status

stratus status aws.persistence.create-access-key

Status Output Indicates

Warmup:  ✓ done
Detonate: ✓ done

Revert All Changes

stratus revert aws.persistence.create-access-key

Cleanup Detonate Artifacts

stratus detonate --cleanup aws.defense-evasion.cloudtrail-delete

View Cleanup Logs

stratus status aws.persistence.create-access-key --verbose

Batch Status Check

for technique in $(stratus list --platform aws --format json | jq -r '.[].id'); do
  echo "=== $technique ==="
  stratus status $technique 2>/dev/null | head -2
done

Custom Techniques

Stratus supports extending with custom techniques via JSON configuration.

Custom Technique Structure

techniques:
  - id: custom.example.my-technique
    name: My Custom Attack
    description: Custom detection test
    tactic: discovery
    platforms:
      - aws
    prerequisites:
      - iam:CreateUser
    steps:
      - name: Create test user
        module: ec2
        function: describe_instances

Load Custom Techniques

stratus detonate --techniques-dir ./custom_techniques custom.example.my-technique

Troubleshooting

Authentication Issues

# Verify AWS credentials
aws sts get-caller-identity

# Check Azure authentication
az account show

# Verify GCP credentials
gcloud auth list

Permission Denied Errors

# Check required IAM permissions
stratus show aws.persistence.create-access-key --show-permissions

# Ensure service account has necessary roles
gcloud projects get-iam-policy <project>

Technique Won’t Warm Up

# Use verbose output
stratus warmup --verbose aws.persistence.create-access-key

# Check prerequisites
stratus show aws.persistence.create-access-key | grep -i prerequisite

Cleanup Failures

# Force cleanup
stratus revert --force aws.persistence.create-access-key

# Manual cleanup may be required for failed techniques
aws iam delete-user --user-name stratus-<randomid>

Rate Limiting

# Add delays between detonations
for technique in $(stratus list --platform aws --format json | jq -r '.[].id'); do
  stratus detonate $technique
  sleep 5
done

Best Practices

PracticeDetails
Use Test AccountsRun on isolated test AWS/Azure/GCP accounts, not production
Document DetectionLog all detonate events and correlate with SIEM detections
Cleanup After TestsAlways run cleanup/revert to remove test artifacts
Start SimpleTest individual techniques before batch execution
Monitor LogsEnable CloudTrail, Azure Audit Logs, Cloud Audit Logs
Validate DetectionVerify your detection tools alert on technique execution
Schedule TestsRun red team exercises on regular cadence (monthly/quarterly)
Team CommunicationNotify relevant teams before purple team exercises
Review ResultsDocument which techniques triggered alerts and which didn’t
Iterate DetectionsUpdate detection rules based on gaps identified

Example Full Workflow

#!/bin/bash
TECHNIQUE="aws.discovery.ec2-enumerate-instances"

echo "Starting red team exercise on $TECHNIQUE"
echo "1. Warming up..."
stratus warmup $TECHNIQUE

echo "2. Detonating attack..."
stratus detonate $TECHNIQUE

echo "3. Check your monitoring for alerts..."
sleep 30

echo "4. Cleaning up..."
stratus detonate --cleanup $TECHNIQUE
stratus revert $TECHNIQUE

echo "5. Verify cleanup..."
stratus status $TECHNIQUE
ToolPurpose
CALDERAMulti-platform adversary emulation with plugin architecture
Atomic Red TeamAtomic techniques mapping directly to MITRE ATT&CK
PacuAWS exploitation and reconnaissance framework
CloudGoatAWS-focused intentional vulnerability creator
GremlinChaos engineering for cloud infrastructure testing
KubeletKubernetes security assessment framework
FalcoRuntime security monitoring for cloud-native environments

Integration Examples

# Run Stratus technique and monitor with Falco
stratus detonate kubernetes.privilege-escalation.create-clusterrole &
falco -o json | jq '.rule'

# Automate with Atomic Red Team
stratus list --format json | jq '.[] | select(.platform=="aws")'