Automated Emulation is a simple terraform template creating a customizable and automated Breach and Attack Simulation lab. It automically builds the following resources hosted in AWS:
See the Features and Capabilities section for more details.
This lab differs from other popular Cyber Ranges in its design and philosophy. No secondary tools like Ansible are necessary. Feel free to use them if you like. But they aren’t required for configuration management.
Instead of using 3rd party configuration management tools, this lab uses terraform providers (AWS SDK) and builtin AWS features (user data).
You don’t have to rely on a secondary agent or deal with outdated libraries or networking issues with agentless push or updating a secondary tool that causes issues over time.
This increases stability, consistency, and speed for building and configuring cloud resources. Use terraform, bash, and powershell to build and configure.
A small user-data script is pushed into the system and runs. Individual configuration management scripts are uploaded to an S3 bucket.
The master script instructs the system which smaller scripts to run which builds the system. With good documentation, the location of these scripts should make it easy to add and customize.
See the Features and Capabilities section for more details.
git clone https://github.com/iknowjason/AutomatedEmulation Generate an IAM programmatic access key that has permissions to build resources in your AWS account. Setup your .env to load these environment variables. You can also use the direnv tool to hook into your shell and populate the .envrc. Should look something like this in your .env or .envrc:
export AWS_ACCESS_KEY_ID="VALUE"
export AWS_SECRET_ACCESS_KEY="VALUE" Change into the AutomatedEmulation working directory and type:
terraform init terraform apply -auto-approve or
terraform plan -out=run.plan
terraform apply run.plan terraform destroy -auto-approve The lab has been created with important terraform outputs showing services, endpoints, IP addresses, and credentials. To view them:
terraform output The groupdel command in Linux removes a group from the system. It deletes the group's entry from /etc/group and /etc/gshadow,…
The wc command in Linux counts lines, words, characters, and bytes in files or standard input. It…
The top command in Linux provides a real-time view of running processes and system resource usage. From…
The usermod command in Linux modifies existing user account attributes. You can use it to manage group…
The sort command in Linux reads lines from files or standard input and writes them to standard…
The wall command in Linux sends a message to the terminals of all currently logged-in users. The…