This quickstart guide will walk you through setting up Havoc Framework, starting the teamserver, connecting the client, and generating your first Demon agent.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 you begin, ensure you have:- A supported Linux distribution (Ubuntu 20.04/22.04, Debian 10/11, or Kali Linux)
- All required dependencies installed (see Installation)
- Successfully built both the teamserver and client
Start the teamserver
The teamserver is the backend component that handles agent communications, payload generation, and client connections.Connect the client
Start the Havoc client
In a new terminal window:The client GUI will launch and display a connection dialog.
Configure connection settings
Enter your connection details:
- Profile Name: A descriptive name (e.g., “Local Server”)
- Host: The teamserver address (e.g.,
127.0.0.1for local) - Port: The teamserver port (default:
40056) - Username: Your operator username (defined in the profile)
- Password: Your operator password (defined in the profile)
The default credentials in
havoc.yaotl are:- Username:
5piderorNeo - Password:
password1234
Create a listener
Listeners are how agents communicate with the teamserver.Open the Listeners view
In the top menu, navigate to View → Listeners.A new pane will appear at the bottom of the window.
Configure the listener
In the Create Listener dialog:
- Name: A descriptive name (e.g., “HTTP Listener”)
- Payload: Select “Https” or “Http”
- Hosts: The callback address (e.g.,
192.168.1.100) - Port (Bind): Port to bind on the teamserver (e.g.,
443) - Port (Conn): Port agents use to connect (default: same as bind)
- User Agent: Browser user agent string
- Headers: Custom HTTP headers (optional)
Generate a payload
Configure the payload
In the Payload dialog:
- Listener: Select your HTTP/HTTPS listener
- Agent: Select “Demon”
- Format: Choose EXE, DLL, or Shellcode
- Architecture: x64 (x86 coming soon)
- Sleep: Agent sleep interval in seconds (default: 2)
- Jitter: Randomness in sleep timing (default: 15%)
- Indirect Syscall: Enable for EDR evasion
- Sleep Technique: Choose obfuscation method:
- WaitForSingleObjectEx (no obfuscation)
- FOLIAGE
- Ekko
Generate
Click Generate. The teamserver will compile your payload.
Compilation output
Compilation output
You’ll see compilation progress in the client. Once complete, you’ll be prompted to save the payload file.
Execute the payload
Transfer your generated payload to the target system and execute it. Within seconds (depending on your sleep configuration), you should see a new agent callback in the Havoc client.For testing purposes, you can execute the payload on your local system. In production, use appropriate delivery methods for your engagement.
Interact with your agent
View the new session
When an agent checks in, it appears in the session graph and the Sessions pane.
Interact with the agent
Right-click on the session and select Interact.A new console tab will open for this agent.
Essential commands
Here are some frequently used Demon commands:Session management
checkin- Request full agent check-insleep <seconds>- Change sleep intervalexit- Terminate the agent
File operations
ls/dir- List directory contentscd <path>- Change directorydownload <file>- Download a fileupload <local> <remote>- Upload a file
Process management
ps- List processeskill <pid>- Terminate a processproc module <pid>- List loaded modules
Token management
token getuid- Get current token UIDtoken steal <pid>- Steal token from processtoken impersonate <id>- Impersonate a stolen token
Code execution
shell <command>- Execute shell commandinline-execute <assembly>- Execute .NET assemblyshellcode inject <pid> <path>- Inject shellcode
Enumeration
domain- Get domain informationnet logons- Show logged-on usersnet sessions- Show active sessions
Next steps
Explore Demon features
Learn about sleep obfuscation, indirect syscalls, and advanced capabilities
Configure profiles
Customize your C2 infrastructure with YAOTL profiles
Token management
Master privilege escalation and lateral movement techniques
Extend Havoc
Build custom agents, modules, and integrations
Troubleshooting
Agent doesn't callback
Agent doesn't callback
Check:
- Firewall rules allow the listener port
- Listener is running (
View → Listeners) - Agent can reach the callback address
- Sleep interval hasn’t elapsed yet (default: 2 seconds)
- Check teamserver logs for connection attempts
Payload compilation fails
Payload compilation fails
Common causes:
- Missing MinGW compiler (run
make ts-buildagain) - Incorrect compiler paths in profile
- Insufficient disk space
Client can't connect to teamserver
Client can't connect to teamserver
Check:
- Teamserver is running
- Correct host and port
- Credentials match profile configuration
- Firewall allows teamserver port (default: 40056)
Commands return errors
Commands return errors
Common issues:
- Insufficient privileges (try
token privs-get) - Blocked by AV/EDR (check event logs)
- Invalid syntax (use
help <command>)
Additional resources
- Command Reference - Complete list of Demon commands
- Listener Configuration - Advanced listener options
- Sleep Obfuscation - Evade memory scanners
- Python API - Automate operations
For more help, join the Havoc Discord or check the FAQ.
