Skip to content

AtomicThreatProfile is a Python script that creates custom adversary profiles for use in Caldera using json formatted data from Control Validation Compass

Notifications You must be signed in to change notification settings

NerdChip/AtomicThreatProfile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

AtomicThreatProfile

AtomicThreatProfile is a Python script that creates custom adversary profiles for use in Caldera using json formatted data generated from Control Validation Compass. Caldera is a cyber security framework designed to easily run autonomous breach-and-simulation exercises, this tool provides great funtionality depending on the use case. However, when using this tool I realised that creating custom adversay profiles can be tedious and saw an oppurtuntity to enhance Caldera by automating profile creation underpinned by threat intelligence provided by Control Validation Compass.

Requirements

Installation

git clone https://github.com/NerdChip/AtomicThreatProfile
cd AtomicThreatProfile
pip3 install -r requirements.txt

Usage

Before executing Atomic threat profile you will need to retrieve data generated by Control Validation Comapass(CVC). CVC is a great resource that has a number of uses but AtomicThreatProfile only uterlises the Threat Model feature which can be used to categrise potential threats based on motive, location and industy(https://controlcompass.github.io/). This data is what will be passed to AtomicThreatProfile to produce the custom adversary profile within Caldera.

Select Threat Group

Fill in the one or multiple critera and select a single adversary on the right hand side. For the purpose of this example i have choosen Lazarus Group.

image

Copy json Data

After you have chosen an adversary scroll down the page and you will see, Adversary Profile, ATT&CK Navigator Layer (TTPs) and Diamond Model. we will be using the ATT&CK Navigator json data to create the custom adversary profile, click inside the the box and copy the data (ctrl-a & ctrl-c).

image

Generate json File

Once the data has been copied it will be pasted inside a new json file create on the system where Caldera and AtomicThreatProfile are inlsalled. Please remember to create the file in the same working directory as AtomicThreatProfile - Another tip would be to make sure the filename resembles that of the selected threat group. Dont forget to elevate to root priveleges.

nano LazarusGroup.json

image

AtomicThreatProfile

Use -h to invoke help

python3 AtomicThreatProfile.py -h

image

To run AtomicThreatProfile you will need to pass the prevously create json file (-f) and the threat group name (-t), these areguments are required. You can also specify which operating system you want the techniques to be related to (-p) at the moment only windows is supported, this arguement is optional and the default is "all".

python3 AtomicThreatProfile.py -f LazarusGroup.json -t LazarusGroup
python3 AtomicThreatProfile.py -f LazarusGroup.json -t LazarusGroup -p windows

image

Once the program has completed some checks the user will be prompted to select which techniques they want to include within the custom adversary profile, to select a technique you use space bar to confirm selection use Enter (you can select multiple under 1 technique)

if a mistake is made during this process you will have to re-execute the program. please remember that these profiles will only be generated based on the techniques that Caldera has within its framework.

image

Once the selection phase has been completed AtomicThreatProfile will move the generated file into the required folder for Caldera to load. image below shows our custom profile ready for use in Caldera:

image

Important for me to note, some techniques require additional configurations in order to get them working, i would advise getting familiar with Caldera before using AtomicThreatProfile

Contributing

if you have any feedback on how I can improve the functionality of AtomicThreatProfile, the code or any feature suggestions please reach out to me.

Features

I would like to continuting improving this tool so here are some ideas I have at time of writing:

  • Threading (faster)
  • Remove requirement for json file (Automatic generation based on threat group name)
  • Develop as app for integration into Caldera

About

AtomicThreatProfile is a Python script that creates custom adversary profiles for use in Caldera using json formatted data from Control Validation Compass

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages