Skip to content

A tool that allows you to create vulnerable instrumented local or cloud environments to simulate attacks against and collect the data into Splunk

License

Notifications You must be signed in to change notification settings

splunk/attack_range

Repository files navigation

Splunk Attack Range v5

Attack Range Logo

The Splunk Attack Range builds instrumented cloud environments (AWS, Azure, GCP), simulates attacks, and forwards data into Splunk for detection development and testing.

Attack Range Architecture

What it does:

  • Build labs — Deploy a small, production-like lab (Splunk, Windows/Linux servers, optional Kali, Zeek, etc.) via Terraform and Ansible.
  • Simulate attacks — Run Atomic Red Team (and other) techniques to generate real telemetry.
  • Share access — Use WireGuard VPN; generate additional client configs to share the range with others.

Getting started

Preferred: Docker Compose

  1. Prerequisites: Docker and Docker Compose. Configure your cloud provider (AWS, Azure, or GCP) and mount credentials as below.

  2. Clone and start:

    git clone <repo-url>
    cd attack_range_2
    docker compose -f docker/docker-compose.yml up
  3. Use the app or API:

  4. Build a range (two steps):

    • In the app: pick a template (e.g. aws/splunk_minimal_aws) and start the build. When status is Waiting for VPN, download the WireGuard config, connect with WireGuard, then continue the build.
    • Or via API: POST /attack-range/build with {"template": "aws/splunk_minimal_aws"}, poll GET /attack-range/status/<id>, use the returned WireGuard config, connect, then POST /attack-range/build with {"attack_range_id": "<id>"}.
  5. CLI in Docker (optional):

    docker compose --profile cli -f docker/docker-compose.yml run --rm attack_range build -t aws/splunk_minimal_aws

    Other actions: destroy, simulate, share. See Detailed documentation for CLI usage and flags.


Ways to run

Method Use case
Docker Compose (recommended) Run API + web app + optional CLI with one docker compose; no local Python/Ansible/Terraform.
Web app Build, destroy, simulate, and share via the UI at port 4321.
REST API Automate from scripts or CI; full OpenAPI docs at /openapi/swagger.
CLI `attack_range.py build

Documentation


Quick reference

  • Configs: Each range has a config in config/<attack_range_id>.yml. Templates live in templates/{aws,azure,gcp}/.
  • Credentials: Set up ~/.aws, ~/.azure, or ~/.config/gcloud and mount them into the containers (see docker/docker-compose.yml).
  • Support: GitHub issues and CONTRIBUTING.

Support

Please use the GitHub issue tracker to submit bugs or request features.

If you have questions or need support, you can:


Contributing

We welcome feedback and contributions from the community! Please see our contribution guidelines for more information on how to get involved.


Author

Contributors

About

A tool that allows you to create vulnerable instrumented local or cloud environments to simulate attacks against and collect the data into Splunk

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 49