Konteks Etis & Legal
Havoc C2 adalah framework open-source untuk adversarial simulation dan red teaming. Seluruh informasi di bawah berasal dari dokumentasi publik, kode sumber terbuka, serta analisis komunitas keamanan. Pembahasan ini murni edukasional dan defensif. Penggunaan terhadap sistem tanpa izin eksplisit adalah ilegal. Dokumen ini bertujuan membantu defender memahami cara kerja, deteksi, dan mitigasi ancaman berbasis Havoc.
𧬠Apa Itu Havoc C2?
Havoc adalah Command & Control (C2) framework modern yang dirilis pada 2022 oleh tim anonim dengan nama βC5piderβ dan kontributor lainnya. Ditujukan sebagai alternatif open-source untuk Cobalt Strike, Havoc mengimplementasikan banyak fitur evasion canggih yang sebelumnya hanya ditemukan di framework komersial atau private APT. Havoc ditulis dalam Go (team server) dan C++/ASM (agent), dengan antarmuka GUI berbasis Qt/C++.
Havoc dibangun di atas frustrasi terhadap keterbatasan framework open-source yang ada: Empire (PowerShell, mudah terdeteksi), Sliver (bagus tapi kurang GUI), dan Merlin (minimal). Havoc menawarkan kombinasi langka: antarmuka modern, kolaborasi multipengguna, agent stealth dengan sleep obfuscation dan indirect syscalls, serta malleable C2 yang fleksibel β semuanya gratis dan open-source.
Perbandingan Posisi Havoc di Ekosistem C2
| Framework | Open Source | GUI | Sleep Obfuscation | Indirect Syscalls | Malleable C2 | Bahasa Agent | Harga |
|---|---|---|---|---|---|---|---|
| Cobalt Strike | β (berbayar) | β | β (via UDRL) | β (via BOF) | β | C/ASM (Beacon) | $3.500+/thn |
| Havoc | β | β | β (built-in) | β (built-in) | β (via profile) | C/ASM (Demon) | Gratis |
| Sliver | β | β (CLI) | β (opsional) | β (via extensions) | β (basic) | Go | Gratis |
| Empire | β | β (Starkiller) | β | β | β | PowerShell/Python | Gratis |
| Metasploit | β | β (msfconsole) | β | β | β | Ruby/ASM | Gratis |
ποΈ Arsitektur Havoc
Havoc mengikuti arsitektur client-server klasik tetapi dengan pendekatan yang lebih modern:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Havoc Client (GUI) β
β Qt/C++ cross-platform, menghubungi Teamserver via TLS β
β - Multi-tabbed interface: Listeners, Sessions, Event Log β
β - Interaksi real-time dengan agent (Demon) β
β - Kolaborasi multipengguna (dengan autentikasi & roles) β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β (TLS, autentikasi username/password)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Teamserver (Go) β
β - Mengelola listener (HTTP/S, SMB, TCP, DNS) β
β - Database agent (SQLite internal) β
β - Autentikasi operator & role-based access β
β - Generasi payload & profiling C2 β
β - Interaksi ke agent via koneksi terenkripsi β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β (via listener profile)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Demon (C/ASM Agent) β
β - Windows x64 native DLL (reflective loader) β
β - Sleep obfuscation: XOR encrypt agent di memori saat idle β
β - Indirect syscalls: memanggil kernel langsung β
β - Module loader: memuat BOF, .NET assembly, PowerShell β
β - Komunikasi HTTP/S, SMB, TCP dengan enkripsi AES β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Teamserver
Teamserver adalah proses Go yang ringan. Saat dijalankan pertama kali, ia menghasilkan sertifikat TLS, kunci RSA untuk kriptografi sesi, dan database SQLite. Konfigurasi utama (havoc.cfg) mengatur port listener (default 40056 untuk koneksi operator), database path, dan logging.
Operator mengautentikasi ke teamserver dengan username/password (hashed di konfigurasi). Havoc mendukung role-based access: admin bisa membuat listener, generate payload, dan berinteraksi dengan semua sesi; operator hanya bisa berinteraksi dengan sesi yang ditugaskan.
Demon Agent
Demon adalah agent asli Havoc, ditulis dalam C dan assembly. Ia dirancang sebagai reflective DLL yang diinjeksi ke proses target. Fitur utamanya:
- Sleep Obfuscation: Saat tidur (interval antara check-in C2), Demon meng-XOR seluruh region memorinya sendiri dengan kunci acak. Ia menyisakan stub kecil (sleep stub) yang bertugas mendekripsi dan melanjutkan eksekusi saat bangun. Ini menggagalkan memory scanning oleh EDR.
- Indirect Syscalls: Alih-alih memanggil
NtAllocateVirtualMemoryviantdll.dll(yang mungkin di-hook EDR), Demon membaca syscall number dan stub dari salinanntdll.dllyang bersih di disk, lalu mengeksekusi instruksisyscalllangsung. EDR hook tidak efektif. - Module Loader: Demon dapat memuat modul tambahan saat runtime: BOF (Beacon Object Files), .NET assemblies (via CLR hosting), dan skrip PowerShell (via unmanaged PowerShell).
- Komunikasi: Mendukung HTTP/HTTPS dengan konfigurasi profil C2 yang fleksibel, SMB (untuk pivoting internal), dan TCP (untuk P2P chaining).
π Havoc C2 Profile: Malleable C2 Open-Source
Havoc menerapkan profil C2 dalam format JSON. Meskipun tidak selengkap Malleable C2 Cobalt Strike, profil Havoc cukup fleksibel untuk meniru berbagai aplikasi sah.
Contoh Profil Havoc (JSON)
{
"Listeners": [
{
"Name": "HTTPS Listener",
"Host": "192.168.45.2",
"Port": 443,
"Protocol": "HTTPS",
"SSL": {
"Cert": "cert.pem",
"Key": "key.pem"
},
"C2": {
"Sleep": 60,
"Jitter": 30,
"Method": "GET",
"Uri": "/api/v2/updates",
"UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... Teams/1.5.00",
"Headers": {
"X-Client-Id": "{metadata}",
"X-Session-Id": "{session}",
"Accept": "application/json"
},
"Encryption": "AES-256-GCM",
"Encoding": "base64url"
}
}
]
}Variabel bawaan:
{metadata}: Data sesi Demon (username, hostname, IP, PID, integrity level) yang dienkode dan disisipkan ke request.{session}: ID sesi unik.- Payload dapat ditempatkan di header, cookie, parameter URI, atau body POST.
Havoc mendukung transformasi data (XOR, AES, base64) pada metadata dan output, memungkinkan mimikri traffic yang cukup meyakinkan.
β οΈ Kill Chain: Dari Stager ke Domain Admin
1. Delivery & Execution
Operator membuat payload Demon melalui GUI Havoc. Format output:
- Executable (.exe): Demon dikompilasi dengan reflective loader bawaan.
- DLL (.dll): Untuk sideloading atau rundll32.
- Shellcode (.bin): Untuk injeksi via exploit atau makro VBA.
- PowerShell one-liner: Mengunduh dan mengeksekusi shellcode dalam memori.
Payload dikirim ke target melalui phishing, exploit, atau lateral movement.
2. Reflective Loading & Initialization
Saat payload dieksekusi:
- Reflective loader (ditulis asm) mengalokasikan memori (
NtAllocateVirtualMemoryvia indirect syscall), menyalin header PE Demon, memproses relokasi dan impor secara manual. DllMainDemon dipanggil. Demon membaca konfigurasi yang disematkan (terenkripsi) dan memulai loop C2.- Check-in pertama: Demon mengirim metadata (hostname, user, IP, PID, integrity level) ke C2, dienkripsi AES-256-GCM, disisipkan di header HTTP sesuai profil.
3. Situational Awareness
Setelah Demon check-in, operator bisa menjalankan perintah:
shellβ Jalankan perintah cmd.exe (dengan output capture).powershellβ Unmanaged PowerShell.execute-assemblyβ Muat .NET assembly di memori (misal: Seatbelt, SharpHound).inline-executeβ Eksekusi BOF (Beacon Object Files).keyloggerβ Mulai keylogging.screenshotβ Ambil screenshot desktop.
4. Credential Dumping & Lateral Movement
mimikatzβ Jalankan Mimikatz dalam memori untuk mengekstrak hash dan password.hashdumpβ Dump SAM dan LSA secrets.steal_token/make_tokenβ Token impersonasi.psexec/wmi/winrmβ Lateral movement ke host lain.pivotβ Jalankan listener SMB/TCP untuk pivoting ke jaringan internal yang tidak bisa diakses langsung.
5. Persistence
Demon tidak memiliki modul persistence bawaan, tetapi operator dapat:
- Menjadwalkan scheduled task via
shell. - Menulis registry Run key.
- Menginstal service Windows (via
sccommand). - Menyebarkan Demon baru ke host lain untuk redundansi.
π‘οΈ Teknik Evasion di Havoc
1. Sleep Obfuscation (Kokkini)
Havoc menggunakan teknik yang disebut Kokkini (sebelumnya βSleepyHeadβ) untuk sleep obfuscation. Saat Demon akan tidur:
- Demon mengalokasikan region baru untuk sleep stub.
- Mengenkripsi seluruh image Demon (kecuali stub) dengan XOR menggunakan kunci acak 32-byte yang dihasilkan saat itu.
- Menimpa kunci di memori stub.
- Melompat ke stub, yang kemudian memanggil
WaitForSingleObjectatauNtDelayExecution(via indirect syscall). - Saat bangun, stub mendekripsi Demon, lalu melompat kembali ke entry point loop C2.
Hasilnya: Saat EDR melakukan memory scan, yang terlihat hanyalah stub kecil (~500 byte) dan region besar data terenkripsi yang tampak seperti random noise.
2. Indirect Syscalls
Windows EDR mengaitkan fungsi ntdll.dll (seperti NtAllocateVirtualMemory, NtProtectVirtualMemory, NtCreateThreadEx) dengan cara mengganti instruksi awal dengan jmp ke detour mereka sendiri. Havoc mem-bypass ini dengan:
- Membaca file
C:\Windows\System32\ntdll.dlldari disk (salinan segar, tidak ter-hook). - Memparsing export table untuk mendapatkan syscall number dan stub murni untuk setiap fungsi.
- Menyalin stub ke memori Demon.
- Memanggil stub dengan argumen yang tepat, sehingga
syscalldieksekusi langsung tanpa melewati hook EDR.
Teknik ini mirip dengan yang dipopulerkan oleh proyek SysWhispers, tetapi diintegrasikan langsung ke Demon.
3. Stack Spoofing (X64 Return Address Spoofing)
Ketika Demon memanggil fungsi Windows, return address di stack akan menunjuk ke dalam Demon, yang mencurigakan (kode tidak di-back oleh file di disk). Havoc mengimplementasikan stack spoofing: sebelum memanggil fungsi, ia memodifikasi stack untuk meniru call stack yang sah (misal: dari kernel32.dll β ntdll.dll β syscall). Ini mengelabui EDR yang memeriksa stack trace.
4. NTDLL Unhooking (Opsional)
Beberapa EDR menggunakan inline hooking pada ntdll.dll yang dimuat di proses. Havoc dapat melakukan unhooking: memulihkan instruksi asli ntdll.dll dari salinan di disk ke memori, menghilangkan hook EDR sebelum Demon memanggil syscall. Tapi ini sendiri bisa memicu alert, sehingga indirect syscalls lebih dipilih.
5. Custom User-Agent & Header
Profil C2 mendukung kustomisasi penuh User-Agent, header, URI, dan body request. Ini memungkinkan mimikri traffic Microsoft Teams, Google, atau aplikasi lain yang umum di jaringan korporat.
π Deteksi Havoc C2
1. Deteksi Jaringan (Network)
- TLS Fingerprint (JA3): Demon menggunakan library TLS bawaan (mbed TLS atau custom). JA3 hash Havoc dapat dikenali jika menggunakan cipher suite default. Profil default Havoc menghasilkan JA3 yang relatif konsisten.
- HTTP Header Anomalies: Meskipun bisa dikustomisasi, operator sering meninggalkan header default atau pola yang tidak konsisten (misal: User-Agent mobile tapi URI desktop).
- Beaconing Analysis: Demon check-in dengan interval yang dikonfigurasi (
Sleep). Bahkan dengan jitter, analisis statistik NetFlow (seperti RITA) dapat mendeteksi pola periodik ke IP eksternal. - Certificate Transparency: Jika teamserver menggunakan sertifikat default atau self-signed dengan CN yang mencurigakan, sertifikat ini mungkin muncul di log Certificate Transparency.
- JARM Hash: Server TLS Havoc memiliki JARM hash khas yang bisa diidentifikasi dengan pemindaian (mirip Cobalt Strike).
2. Deteksi Endpoint (Host)
- Memory Forensics (YARA): YARA rules dapat mencari string atau byte pattern spesifik Havoc. Namun, sleep obfuscation membuat signature statis tidak efektif saat agent sedang tidur. Rule harus menargetkan sleep stub atau artifact loader.
- Indirect Syscall Detection: Meskipun indirect syscalls menghindari hook, mereka bisa dideteksi dengan memonitor instruksi
syscallyang dieksekusi dari luar regionntdll.dllyang sah. Alat seperti Moneta (Forrest Orr) atau Halo (Sektor7) mendeteksi ini. - Stack Spoofing Artifacts: Stack spoofing yang tidak sempurna dapat meninggalkan jejak: frame stack yang tidak memiliki backing module, atau return address yang tidak terdaftar di module list.
- Sysmon Events:
- Event ID 7 (Image Load): Memantau pemuatan DLL yang tidak biasa.
- Event ID 8 (CreateRemoteThread): Thread dibuat di proses lain.
- Event ID 10 (ProcessAccess): Akses ke proses dengan hak mencurigakan.
- Event ID 22 (DNS Query): DNS query ke domain C2.
- Process Hollowing / Injection: Demon sering diinjeksi ke proses Windows (
explorer.exe,svchost.exe). Monitor anomali: proses yang tiba-tiba membuka koneksi jaringan atau mengalokasikan memori denganPAGE_EXECUTE_READWRITE.
3. Artefak Spesifik Havoc
| Artefak | Deteksi |
|---|---|
| Default sleep stub pattern | Byte pattern XOR tertentu di memori dekat region terenkripsi. |
| Indirect syscall stub | syscall instruction didahului oleh ret dan mov r10, rcx β mirip SysWhispers. |
| Reflective Loader | Memuat DLL tanpa LoadLibrary; jejak di PEB->Ldr hilang. |
| Named Pipe (SMB pivot) | Nama pipe default Havoc bisa dideteksi; tetapi bisa diubah di kode sumber. |
| Task/Response Pattern | Jika Demon dikonfigurasi dengan URI spesifik, IDS dapat menandai permintaan periodik ke URI tersebut. |
4. Threat Intelligence
IOC Havoc publik (server C2, domain, IP, JA3) dapat dikonsumsi via MISP atau feed komersial. Banyak operator menggunakan versi Havoc yang tidak dimodifikasi, sehingga default IOC masih relevan.
βοΈ Dual-Use Spectrum
DEFENSE ββββββββββββββββββββββββββββββββββββββββββββΊ OFFENSE
Red Team APT/Kriminal Peneliti Keamanan
β β β
Menguji pertahanan Menggunakan Menganalisis teknik
dengan simulasi Havoc untuk evasion untuk
serangan yang operasi espionage membuat deteksi
realistis dan atau ransomware yang lebih baik
biaya rendah karena gratis β
β β βΌ
β βΌ Vulnerability
β Havoc dipilih sebagai Research
β alternatif Cobalt mendokumentasikan
β Strike yang murah teknik indirect
β syscall & sleep
β obfuscation
Havoc mendemokratisasi teknik evasion canggih: apa yang dulunya hanya bisa dilakukan dengan Cobalt Strike berlisensi atau malware APT custom, kini tersedia gratis. Ini adalah pedang bermata dua β red team yang sah mendapatkan alat yang lebih baik, tetapi penyerang bermotivasi rendah juga bisa memanfaatkannya.
π‘οΈ Countermeasures Khusus Havoc
| Lapisan | Tindakan |
|---|---|
| Perimeter | Blokir akses ke IP/domen C2 yang dikenal via threat intel. Gunakan firewall NGFW dengan SSL inspection untuk mendeteksi JA3 Havoc. |
| Network | Analisis NetFlow untuk beaconing periodik. Gunakan Suricata/Snort dengan rules untuk user-agent dan URI pattern yang terkait Havoc. |
| Endpoint | Deploy EDR yang mampu mendeteksi indirect syscalls (behavioral). Gunakan YARA scanning periodik dengan rules yang menargetkan sleep stub Havoc. |
| Memory | Lakukan memory forensics pada host mencurigakan; periksa region memori terenkripsi dan thread dengan stack tidak wajar. |
| Hardening | Terapkan Windows Defender Application Control (WDAC) untuk membatasi executable yang bisa dijalankan. Aktifkan Credential Guard untuk melindungi hash. |
| Deception | Pasang honey token (kredensial palsu, file canary) yang jika diakses oleh Demon akan memicu alert. |
| Response | Jika Havoc terdeteksi, isolasi host, ambil memory dump, kumpulkan IOC (URI, User-Agent, JA3), dan lakukan threat hunting ke seluruh environment. |
π Koneksi dalam Vault
- cobalt-strike β Havoc adalah alternatif open-source yang meniru banyak fitur Cobalt Strike (malleable C2, sleep obfuscation, BOF). Analisis perbandingan kedua framework ini krusial untuk defender.
- metasploit β Payload Havoc dapat di-deliver via exploit Metasploit. Sebaliknya, Havoc dapat menjalankan modul Metasploit melalui saluran reverse tunnel.
- bloodhound β Demon dapat menjalankan SharpHound (via execute-assembly) untuk memetakan attack path di AD.
- sliver β C2 open-source alternatif; Sliver berbasis Go dan lebih fokus pada CLI, sedangkan Havoc berbasis C/ASM dengan GUI dan stealth lebih tinggi.
- empire β Framework C2 berbasis PowerShell yang lebih tua; Havoc mengungguli Empire dalam hal evasion.
- shodan β Dapat digunakan untuk mencari teamserver Havoc yang terekspos (JARM, sertifikat, port 40056).
π Referensi
- C5pider et al. (2022-2024). Havoc Framework Documentation & Source Code (GitHub).
- Sektor7 Institute. Windows Evasion Techniques (kursus & publikasi).
- Forrest Orr. Moneta: Memory Analysis for Malware Detection.
- MITRE ATT&CK: T1071.001 (Web Protocols), T1055.001 (Process Injection), T1562.001 (Disable or Modify Tools).
- Black Hills Information Security. RITA: Real Intelligence Threat Analytics.
- Unit 42, Palo Alto Networks. Analysis of Havoc C2 Framework (2023).
Havoc C2 Deep Dive | Open-Source Command & Control | Advanced Evasion & Post-Exploitation