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: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:- Navigate to the Microsoft WSL GUI Apps documentation
- Download and install the required driver for your system
- Follow the standard Linux installation steps above
Known Issues
fatal error: Python.h: No such file or directory
fatal error: Python.h: No such file or directory
This error occurs when Python development files are not installed. Ensure you have Python 3.10 and its development package:
incomplete type 'QTime' used in nested name specifier
incomplete type 'QTime' used in nested name specifier
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.
Known compiler issue: Couldn't compile implant: exit status 1
Known compiler issue: Couldn't compile implant: exit status 1
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 Linux font/formatting issues
Kali Linux font/formatting issues
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
