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.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/HavocFramework/Havoc/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before installing Havoc, you’ll need to install several dependencies. The requirements vary slightly by operating system.Ubuntu 20.04 / 22.04
Debian 10/11
Kali Linux
Kali Linux includes most dependencies by default. Install the required packages:Arch-based Distributions
macOS
Install Homebrew
If you don’t have Homebrew installed, install it from brew.sh:
Building Havoc
Clone the Repository
First, clone the Havoc Framework repository:Build the Teamserver
Build the Client
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
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
