No history yet

Caldera Environment Setup

Preparing Your Environment

Before installing CALDERA, you need to ensure your Kali Linux system has the correct versions of its core dependencies. CALDERA relies on Python for its server backend, NodeJS for its modern Magma user interface, and GoLang to compile its agents.

Meeting these version requirements is crucial. Using older versions can lead to compilation errors or unexpected behavior during runtime. Let's get your system ready.

DependencyMinimum Version
Python3.8+
NodeJS16.0+
GoLang1.17+

Cloning and Dependencies

First, you need to download CALDERA from its official repository. The framework uses Git submodules to manage its plugins, which are essential for its full functionality. To ensure you download the core application and all its plugins, you must perform a recursive clone.

git clone https://github.com/mitre/caldera.git --recursive

Once cloned, navigate into the new caldera directory. The next step is to set up a dedicated Python environment. This is a best practice that isolates CALDERA's Python packages from other applications on your system, preventing version conflicts. We'll use the standard venv module for this.

# Create a virtual environment named 'venv'
python3 -m venv venv

# Activate the environment
source venv/bin/activate

# Now, install the required Python packages
pip install -r requirements.txt

Remember, you'll need to run source venv/bin/activate every time you open a new terminal to work with CALDERA.

Next, install GoLang. CALDERA uses it to compile agents for different operating systems. Kali's package manager is the simplest way to get it.

sudo apt update && sudo apt install golang -y

The final dependency is NodeJS. This is required to build the Magma UI, CALDERA's web interface. While you can install it from the Kali repositories, using Node Version Manager (nvm) is recommended for easier version management. First, install nvm.

# Download and run the nvm installation script (check for the latest version)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# Source your shell configuration to apply changes
source ~/.bashrc

# Install and use a compatible NodeJS version
nvm install 16
nvm use 16

Initial Server Build

With all dependencies in place, you are ready to perform the initial build and launch the CALDERA server. This final step uses a special flag, --build, which tells the server to compile all the front-end assets for the Magma UI. This is a one-time operation for the initial setup.

# Make sure your Python virtual environment is active!
python server.py --insecure --build

The --insecure flag allows the server to start without needing pre-configured user accounts, which is useful for the very first run. The build process may take several minutes. Once it completes, you'll see output in your terminal containing the URL for the web interface (usually http://0.0.0.0:8888) and the credentials for the default administrator accounts.

Quiz Questions 1/6

Why is it crucial to perform a recursive clone when downloading CALDERA from its repository?

Quiz Questions 2/6

What is the primary reason for using a Python virtual environment (venv) for the CALDERA installation?

With the server running, you can now access the web UI and begin exploring the CALDERA framework.