Multi-cloud red team infrastructure automation. Deploy and manage cloud resources across AWS, Aliyun, Tencent Cloud with Terraform. Includes commands for init, deploy, manage, execute, and cleanup of infrastructure cases.
Multi-cloud red team infrastructure automation tool built on Terraform.
Config: ~/redc/config.yaml | Templates: ~/redc/redc-templates/ | Docs: https://github.com/wgpsec/redc
providers:
aws:
AWS_ACCESS_KEY_ID: "KEY"
AWS_SECRET_ACCESS_KEY: "SECRET"
region: "us-east-1"
aliyun:
ALICLOUD_ACCESS_KEY: "KEY"
ALICLOUD_SECRET_KEY: "SECRET"
region: "cn-hangzhou"
tencentcloud:
TENCENTCLOUD_SECRET_ID: "ID"
TENCENTCLOUD_SECRET_KEY: "KEY"
region: "ap-guangzhou"
Env vars: Set AWS_ACCESS_KEY_ID, ALICLOUD_ACCESS_KEY, TENCENTCLOUD_SECRET_ID, etc. if config.yaml unavailable.
| Flag | Default | Description |
|------|---------|-------------|
| --config | ~/redc/config.yaml | Config file path |
| -u, --user | system | User identifier |
| --project | default | Project name |
| --debug | false | Debug mode |
redc init # Initialize templates
redc pull <image> # Download template (e.g., aliyun/ecs)
redc image ls # List local templates
redc run <template> -n <name> -e key=val # Plan & start (create infrastructure)
redc plan <template> -n <name> # Plan only (preview without creating)
redc start <case-id> # Start case (create infrastructure)
redc ps # List all cases
redc status <case-id> # Check status
redc stop <case-id> # Stop infrastructure
redc kill <case-id> # Stop & remove
redc rm <case-id> # Remove case
redc exec <case-id> <command> # Run command
redc exec -t <case-id> bash # Interactive shell
redc cp <src> <case-id>:<dest> # Upload file
redc cp <case-id>:<src> <dest> # Download file
Quick Deploy:
redc pull aliyun/ecs && redc init
redc run aliyun/ecs -n myserver -e password=Pass123
# Returns case-id (e.g., 8a57078ee856)
redc exec 8a57078ee856 whoami
Controlled:
redc plan aws/ec2 -n staging
# Review the planned resources, then:
redc start <case-id>
redc cp deploy.sh <case-id>:/root/
redc exec <case-id> "bash /root/deploy.sh"
Cleanup:
redc stop <case-id> && redc rm <case-id>
# Or: redc kill <case-id>
import subprocess, re
def redc_run(template, name, env=None):
cmd = ["redc", "run", template, "-n", name]
if env:
for k, v in env.items():
cmd.extend(["-e", f"{k}={v}"])
result = subprocess.run(cmd, capture_output=True, text=True, check=True)
match = re.search(r'[a-f0-9]{12,64}', result.stdout)
return match.group(0) if match else None
# Usage
case_id = redc_run("aliyun/ecs", "auto_deploy", {"password": "Secure123"})
✅ in output❌ in output[a-f0-9]{64} (use first 12 chars)running, stopped, created, error| Error | Solution |
|-------|----------|
| Config not found | Create ~/redc/config.yaml |
| Template not found | Run redc pull <template> |
| Case ID not found | Check redc ps |
| SSH timeout | Verify instance running, security groups |
| Init failed | Check network, configure Terraform mirror |
Case:
{
"id": "string[64]",
"name": "string",
"template": "string",
"status": "running|stopped|created|error",
"outputs": {"public_ip": "string"}
}
Config:
{
"providers": {
"aws": {"AWS_ACCESS_KEY_ID": "string", "region": "string"}
}
}
<project>_<purpose>_<env>redc stop → redc rm--debug for troubleshootingredc psSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer