Skip to content

๐ŸŽง Listeners โ€‹

Listeners are endpoints set up on the Sliver server that wait for incoming connections from implants. When an implant is executed on a target machine, it initiates a connection back to one of these listeners, establishing a communication channel. This channel allows the operator to send instructions and receive outputs from the implant.

๐Ÿ“ฎ Types of Listeners โ€‹

Sliver provides several types of listeners to support various communication protocols and operational needs.

  1. HTTP/HTTPS Listeners : These listeners use the HTTP or HTTPS protocols for communication. HTTPS listeners encrypt the data transmitted between the implant and the server, providing an additional layer of security.

  2. DNS Listeners : DNS listeners use DNS queries and responses to communicate with implants. This method can be useful for bypassing network restrictions and firewalls that might block other types of traffic.

  3. mTLS Listeners : Mutual Transport Layer Security (mTLS) listeners establish highly secure connections by requiring both the client and server to authenticate each other using certificates. This ensures that the communication is encrypted and that both parties are verified.

๐Ÿ”ง Setting Up Listeners โ€‹

Setting up listeners in Sliver involves configuring the necessary parameters such as the IP address, port, and protocol. Here is a step-by-step guide to setting up each type of listener:

  1. HTTP/HTTPS Listener :

To create an HTTP listener, use the following command :

bash
http -l 9000
bash
[server] sliver > jobs

 ID   Name   Protocol   Port   Stage Profile
==== ====== ========== ====== ===============
 1    http   tcp        9000

For an HTTPS listener :

bash
https -l 9000
bash
[server] sliver > jobs

 ID   Name    Protocol   Port   Stage Profile
==== ======= ========== ====== ===============
 3    https   tcp        9000
  1. DNS Listener Setup :

To create a DNS listener, use the command :

bash
dns -l 9000
bash
[server] sliver > jobs

 ID   Name   Protocol   Port   Stage Profile
==== ====== ========== ====== ===============
 6    dns    udp        9000
  1. mTLS Listener Setup :

Setting up an mTLS listener :

bash
mtls -l 9000
bash
[server] sliver > jobs

 ID   Name   Protocol   Port   Stage Profile
==== ====== ========== ====== ===============
 5    mtls   tcp        9000

๐Ÿง” Manage Listeners โ€‹

Managing listeners is facilitated through the jobs command, which allows operators to handle active listeners efficiently. The jobs command provides an overview of all running jobs, including listeners, and enables operators to manage these jobs effectively.

  1. List all jobs :
bash
jobs
  1. Delete a specific job :
bash
jobs -k 1
  1. Delete all running jobs :
bash
jobs -K

๐Ÿ‘ป Stage-Listener โ€‹

The stage-listener command in Sliver is used to start a stager listener bound to a specific Sliver profile. This allows you to link a profile's settings to the listener, ensuring that when a stager calls back to this URL, the appropriate implant profile is utilized.

For example, to start a TCP listener and link it to a profile, you would use :

bash
stage-listener --url tcp://1.2.3.4:8080 --profile customProfile

When a stager calls back to this URL, a Sliver implant corresponding to the specified profile will be sent.