Skip to content

MITRE Caldera

MITRE Caldera is a cyber security platform designed to easily automate adversary emulation, assist manual red-teams, and automate incident response.1

Installation on x86 machine2

sudo apt install python3-pip python3-venv python3-dev
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt

sudo apt install npm
python3 server.py --insecure --build

# Golang 1.22 install
echo "Installing Golang 1.22"
sudo wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
sudo tar -C /usr/local/ -xvf go1.22.0.linux-amd64.tar.gz  
echo "export GOROOT=/usr/local/go" >> /home/ubuntu/.profile
echo "export GOPATH=$HOME/go" >> /home/ubuntu/.profile 
echo "export PATH=$PATH:/usr/local/go/bin" >> /home/ubuntu/.profile

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go

sudo apt-get install -y apt-transport-https ca-certificates gnupg2 
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa --yes
sudo apt install upx -y
sudo apt install python3.9 -y
sudo apt install python3-pip -y
sudo apt-get install haproxy -y
# Upgrade pyOpenSSL - weird issue only impacting AWS EC2 AMI images
pip3 install --upgrade pyOpenSSL

# Install NodeJS for Caldera 5.0 requirement
curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

# Installing docker needed by VECTR
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Docker deployment

# Install required tool
sudo apt install git docker.io -y
sudo usermod -aG docker $(whoami)
# Relogin the system

# Make docker image
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
docker build --build-arg WIN_BUILD=true . -t caldera:latest

# Run docker image
docker run -p 8888:8888 caldera:latest
docker run -p 7010:7010 -p 7011:7011/udp -p 7012:7012 -p 8888:8888 caldera:latest

# Edit if use public IP
cd plugins/magma
# vi .env and enter following line
VITE_CALDERA_URL=http://<server IP>:8888

# Get login password
docker exec -it naughty_wu cat conf/local.yml