RE:TERNAL is a centralised purple team simulation platform. Reternal uses agents installed on a simulation network to execute various known red-teaming techniques in order to test blue-teaming capabilities. The simulations are mapped to the MITRE ATT&CK framework. This repo contains the compose file in order to set up the reternal platform via docker. An additional import script is available to create your first user and import Mitre and Metta databases.
Component | Description | Code | Build |
---|---|---|---|
API | Administrative API to schedule tasks | ||
UI | VueJS-based UI buildscript and NGinx webserver | ||
C2 | Seperate API endpoint that agents use to communicate with | ||
Agent Compiler | Service that compiles the agent (Golang) payloads |
Component | Description | Build |
---|---|---|
Total Stack | Build verifying entire stack via docker-compose in this repository |
Component | Description |
---|---|
Quickstart | Quickstart repo that contains the compose-file and management tools to create users, techniques etc |
Mitre | Repository containing already existing mapped techniques for reternal |
Reternal components are primarily aimed to be run as docker containers since the component configuration depends on environment variables set by docker-compose or the dockerfile. A docker-compose with all the default options can be found in this repository.
- docker
- docker-compose
- python3
- pip (3)
- Clone the quickstart repo to your system:
git clone https://github.com/d3vzer0/reternal-quickstart --recurse
- Navigate to the reternal-quickstart directory:
cd reternal-quickstart
- Install pip dependencies:
pip3 install -r requirements.txt
- Create unique keys for JWT and Session tokens:
python3 manage.py -a update -t compose
When done, execute 'docker-compose up -d --build
' inside the root reternal-quickstart directory to run all the services. The latest version from the Development branch will be pulled and build.
The quickstart repo contains a management script called 'manage.py'. You can use this script to create your first user and import already existing techniques.
- Configure all variables and create first user:
python3 manage.py -a install -t all
You can now open a browser of choice and navigate to http://localhost. Use the credentials you just created via the manage.py script.
- Create user:
python3 manage.py -a create -t user
- Import Mitre DB:
python3 manage.py -a import -t mitre
- Import Techniques:
python3 manage.py -a import -t mapping
- Create Default commands:
python3 manage.py -a create -t command
We use the Github to manage Feature requests and Bug reports.
Joey Dreijer < [email protected] >
Yaleesa Borgman < [email protected] >
This project has been re-developed so many times, it will probably never really finish. Hence RE (Redo) and Ternal (Eternal).
- MITRE ATT&CK - Framework used for mapping simulations: https://attack.mitre.org/wiki/Main_Page
- Uber Metta - Using Metta's templates for MITRE techniques with small (optional) adjustments to the purple_action format: https://github.com/uber-common/metta