Skip to main content
Havoc Framework works well on Debian 10/11, Ubuntu 20.04/22.04, Kali Linux, and macOS. It’s recommended to use the latest versions possible to avoid issues. You’ll need a modern version of Qt and Python 3.10.x to avoid build issues.
If you run into issues during installation, check the Known Issues section below and the GitHub Issues list.

Prerequisites

Before installing Havoc, you’ll need to install several dependencies. The requirements vary slightly by operating system.

Ubuntu 20.04 / 22.04

1

Install base dependencies

Install the core packages required for building Havoc:
2

Enable Python 3.10

Ubuntu 20.04/22.04 requires Python 3.10 for the Havoc client. Add the deadsnakes PPA:
If you encounter fatal error: Python.h: No such file or directory during build, ensure you have both python3.10 and python3.10-dev packages installed.

Debian 10/11

1

Install base dependencies

Install the core packages required for building Havoc:
2

Setup Python 3.10 from bookworm repository

Debian 10/11 requires adding the bookworm repository for Python 3.10:

Kali Linux

Kali Linux includes most dependencies by default. Install the required packages:
Kali has issues loading the proper Monaco font from the embedded Qt resources file. You may experience formatting issues in the Havoc client if not using a monospace/fixed-width font.

Arch-based Distributions

macOS

1

Install Homebrew

If you don’t have Homebrew installed, install it from brew.sh:
2

Install dependencies

Install the required packages using Homebrew:

Building Havoc

Clone the Repository

First, clone the Havoc Framework repository:

Build the Teamserver

1

Install additional Go dependencies

2

Build the teamserver binary

From the Havoc root directory, run:
This command will:
  • Run the teamserver installation script
  • Compile the teamserver with Go
  • Set capabilities to allow running as a regular user (Linux only)
The teamserver is compiled with the Git commit hash embedded for version tracking.

Build the Client

1

Build the client binary

From the Havoc root directory, run:
This will:
  • Initialize and update Git submodules
  • Create the build directory
  • Clone the official Havoc Modules repository
  • Build the client using CMake with 4 parallel jobs
2

macOS-specific post-build step

On macOS, after the CMake build completes, run:

Build Both Components

You can build both the teamserver and client in one command:

Verifying the Installation

After building, verify your installation:

Data Storage

All files created during interaction with the Teamserver are stored within the /Havoc/data/* folder, including:
  • Agent loot and downloads
  • SQLite database (havoc.db)
  • Teamserver certificates
  • Cross-compilation toolchains

WSL Support

To run the Havoc client on Windows Subsystem for Linux (WSL), you need to install the appropriate GUI driver:
  1. Navigate to the Microsoft WSL GUI Apps documentation
  2. Download and install the required driver for your system
  3. Follow the standard Linux installation steps above

Known Issues

This error occurs when Python development files are not installed. Ensure you have Python 3.10 and its development package:
You probably need a newer version of Qt. If you are using Ubuntu, try adding a backports PPA and installing the latest Qt6 development packages.See GitHub Issue #95 for more details.
This is typically related to the MinGW compiler setup. Check that all cross-compilation dependencies are properly installed.See GitHub Issue #105 for troubleshooting steps.
Kali has issues loading the proper Monaco font from the embedded Qt resources file. The Havoc client requires a monospace/fixed-width font for proper formatting.You can manually configure a monospace font in your system settings to work around this issue.

Cleanup

If you need to clean your build and start fresh:

Next Steps

Now that you have Havoc installed, proceed to the Quick Start Guide to learn how to:
  • Start the teamserver
  • Connect the client
  • Create listeners
  • Generate and deploy agents