Skip to main content

Client Startup

Start the Sliver Client as your user account. Again, on the first launch the client will setup the hidden directories ~/.sliver & ~/.sliver-client similar to when the server was started up. However, since this is the first time starting the client, it will not have any config files.

$ ./sliver-client_linux 
No config files found at /home/rto/.sliver-client/configs (see --help)

To create a config file for your operator, go back to the server host and create a new-operator name.

First, put the server in multiplayer mode so other operators can join:

[server] sliver > multiplayer

[*] Multiplayer mode enabled!

Start up a transport that you plan to use. In this example we will start an HTTPS transport for the implants to communicate over.

[server] sliver > https

[*] Starting HTTPS :443 listener ...

[*] Successfully started job #2

Create a new operator on the server to generate the operator config file. The command is: [server] sliver > new-operator --name <your_name> --lhost <sliver-server-ip>

Example:

[server] sliver > new-operator --name steve --lhost 192.168.0.120 

[*] Generating new client certificate, please wait ...
[*] Saved new client config to: /home/steve/steve_192.168.0.120.cfg

With the config file created, it needs to be transferred to the client host. Keep in mind that the server runs as root, so you will need to update the permissions on the file. Following that we will startup a simple Python3 HTTP Server to transfer the file to the client:

ls -l steve_192.168.0.120.cfg 
-rw------- 1 root root 1613 Oct 3 09:26 steve_192.168.0.120.cfg

sudo chmod a+r steve_192.168.0.120.cfg

python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

On the client host, download the config file:

wget http://<ip address>:8000/steve_192.168.0.120.cfg

Next, move the config file into the ~/.sliver-client/configs directory:

mv steve_192.168.0.120.cfg ~/.sliver-client/configs

With the operator config file in place on the client, go ahead and start the Sliver Client. This time, it will fully launch as expected:

./sliver-client_linux 

Connecting to 192.168.0.120:31337 ...

.------..------..------..------..------..------.
|S.--. ||L.--. ||I.--. ||V.--. ||E.--. ||R.--. |
| :/\: || :/\: || (\/) || :(): || (\/) || :(): |
| :\/: || (__) || :\/: || ()() || :\/: || ()() |
| '--'S|| '--'L|| '--'I|| '--'V|| '--'E|| '--'R|
`------'`------'`------'`------'`------'`------'

All hackers gain skulk
[*] Server v1.5.42 - 85b0e870d05ec47184958dbcb871ddee2eb9e3df
[*] Welcome to the sliver shell, please type 'help' for options

[*] Check for updates with the 'update' command

sliver >

On the server, you will see a message that a new operator has joined the game. When you run the operators command on the server, you will see that the operator just added is online:

[*] steve has joined the game

[server] sliver > operators

Name Status
======= ========
steve Online

At this point, the Sliver server & client are both up and running as expected!