Install Havoc C2 framework on Kali Linux

Chenny Ren
4 min readJun 9, 2023

According to the latest installation guide on havocframework official site

Havoc

Havoc is a modern, malleable post-exploitation command and control framework made for penetration testers, red teams, and blue teams.

It’s free and open-source on github written and maintained by Paul Ungur (C5pider)

Client

The Havoc Client user interface is written in QT C++ and applied with the Dracula theme.

The Interface is split into three parts. The top left of the interface shows a visualization of sessions in table form or node graph. The top left of the interface shows the event viewer which displays the following events: newly connected user/operator, the start of a listener or failed start of the listener with an error message and newly connected implants. The bottom of the interface displays tabs like interacted session, file explorer, listener table and other Havoc features.

In this demo, I’ll run both the teamserver and client server on my kali linux

First git clone the repo to kali linux

git clone <https://github.com/HavocFramework/Havoc.git>

Install the dependencies for kali linux

sudo apt install -y git build-essential apt-utils cmake libfontconfig1 libglu1-mesa-dev libgtest-dev libspdlog-dev libboost-all-dev libncurses5-dev libgdbm-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev mesa-common-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5websockets5 libqt5websockets5-dev qtdeclarative5-dev golang-go qtbase5-dev libqt5websockets5-dev python3-dev libboost-all-dev mingw-w64 nasm

click ok , the installation will continue

Go to teamserver folder , bash run install.sh

Build the teamserver

cd teamserver
go mod download golang.org/x/sys
go mod download github.com/ugorji/go
cd ..

Build and Run

# Install musl Compiler & Build Binary (From Havoc Root Directory)
make ts-build
# Run the teamserver
./havoc server --profile ./profiles/havoc.yaotl -v --debug

run the teamserver

Building the Client

The Havoc Client user interface is written in QT C++ and applied with the Dracula theme.

The Interface is split into three parts. The top left of the interface shows a visualization of sessions in table form or node graph. The top left of the interface shows the event viewer which displays the following events: newly connected user/operator, the start of a listener or failed start of the listener with an error message and newly connected implants. The bottom of the interface displays tabs like interacted session, file explorer, listener table and other Havoc features.

Now that we successfully compiled the teamserver we now should install the dependencies for the Client and compile it.

Build and Run:

# Build the client Binary (From Havoc Root Directory)
make client-build
# Run the client
./havoc client

then run the client , we can access the team server

The Name field can be any profile name (like Death Star or Teamserver).

In the fields, Host and Port should contain the teamserver host address/domain and port.

In the fields, User and Password should contain the username and password specified in your Yaotl profile.

Try the default username Neo and password1234

We can successfully connect to havoc teamserver

--

--

Chenny Ren

OSCP | OSWP | OSEP | CRTP |CRTE | CRTO | Red Team Professional | SOC engineer