by Joe Demesy & Ronan Kervella, on Aug 4, 2019 6:48:37 PM
Cross-platform General Purpose
Implant Framework Written in Golang
Senior Security Associate Joe DeMesy and Security Associate Ronan Kervella are the researchers behind the creation and maintenance of Sliver. They introduced Sliver in June at SummerCon 2019.
⚠️ Warning: Sliver is currently in alpha, you've been warned :) and please consider contributing
How Sliver works
Sliver is designed to be an open source alternative to Cobalt Strike. Sliver supports asymmetrically encrypted C2 over DNS, HTTP, HTTPS, and Mutual TLS using per-binary X.509 certificates signed by a per-instance certificate authority and supports multiplayer mode for collaboration.
We will explore how to design stable, performant, and secure C2 channels as well as other design challenges when creating implants as they present.
Sliver is a general purpose cross-platform implant framework that supports C2 over Mutual-TLS, HTTP(S), and DNS. Implants are dynamically compiled with unique X.509 certificates signed by a per-instance certificate authority generated when you first run the binary.
The server, client, and implant all support MacOS, Windows, and Linux (and possibly every Golang compiler target but we've not tested them all).
- Dynamic code generation
- Compile-time obfuscation
- Local and remote process injection
- Secure C2 over mTLS, HTTP(S), and DNS
- Windows process migration
- Windows user token manipulation
- Procedurally generated C2 over HTTP (work in progress)
- Let's Encrypt integration
- In-memory .NET assembly execution
- DNS Canary Blue Team Detection
Compile from source
See the wiki.
assets/- Static assets that are embedded into the server binary, generated by
client/- Client code, the majority of this code is also used by the server
protobuf/- Protobuf code
server/- Server-side code
sliver/- Implant code, rendered by the server at runtime
util/- Utility functions that may be shared by the server and client
License - GPLv3
Sliver is licensed under GPLv3, some subcomponents have seperate licenses. See their respective subdirectories in this project for details.