Skip to content
laptop tester edited this page Sep 6, 2026 · 2 revisions

Havoc Framework developer documentation

Welcome to the wiki of the community fork of Havoc. Havoc is a post-exploitation command and control framework: a Go teamserver that runs listeners and builds payloads, a Qt client for operators (multiplayer, scriptable in Python), and Demon, a Windows implant written in C/ASM. The upstream HavocFramework/Havoc project is no longer actively maintained; this fork continues development while staying protocol-compatible with upstream 0.7 ("Bites The Dust").

New here?

This wiki documents the framework's internals from a full read of the source code. Havoc 0.7 consists of three main components:

Component Location Language Purpose
Teamserver teamserver/ Go The C2 server: listeners, agent management, operator client handling, payload building, loot, database
Client client/ C++ / Qt5 + embedded Python The operator UI; connects to the teamserver over WebSocket; scriptable in Python
Demon payloads/Demon C (MinGW) The built-in Windows implant (exe / dll / service / shellcode)

Pages

Quick pointers for third-party agent developers

  1. Add a Service { Endpoint = "..."; Password = "..." } block to the teamserver profile. This exposes a WebSocket API on the teamserver.
  2. Your "agent controller" connects to wss://<host>:<port>/<Endpoint> (TLS, same engine as the operator interface), authenticates, and registers your agent type with a unique 4-byte magic value (≠ 0xdeadbeef, which is Demon).
  3. Your implant talks to any HTTP/External listener using a simple [size][magic][agentID][data] header; the teamserver forwards the data to your controller untouched (you own your crypto) and writes your reply back to the implant.
  4. Full walkthrough: Building a Third-Party Agent. Message-by-message reference: Service API Reference.

A reference implementation exists upstream: Talon (agent) + havoc-py (Python Service-API library).

⚠️ This wiki documents the source code of this repository as-is, not the (sparse) official docs. Where behavior differs from the official wiki, trust the code.

Clone this wiki locally