Lab 2.3 Sliver
[!info] Sliver là cái gì ?
Sliver là một C2 Framework, đại loại là tool giúp tạo các server C2, từ C2 giao tiếp với máy mục tiêu các kiểu…..
Sliver có một cái hay là nhiều kẻ tấn công có thể cùng sử dụng chung 1 server C2 để ra lệnh cho các mục tiêu
| Đặc điểm | Metasploit (Framework) | Sliver (C2 Framework) |
|---|---|---|
| Mục đích chính | Khai thác lỗ hổng (Exploitation). | Duy trì quyền kiểm soát (Post-Exploitation/C2). |
| Kiến trúc | Đơn nhiệm (thường là 1 người dùng). | Đa nhiệm (nhiều Operator cùng kết nối vào 1 Server). |
| Payload chính | Meterpreter. | Implant (Go-based). |
| Khả năng tàng hình | Trung bình (Dễ bị AV/EDR “tóm” do chữ ký phổ biến). | Rất cao (Sử dụng kỹ thuật hiện đại, Obfuscation tốt). |
| Giao tiếp | TCP, HTTP, HTTPS cơ bản. | mTLS, WireGuard, DNS, HTTP(S) tùy biến cao. |
1: Starting Sliver
Chạy Sliver server trên máy slingshot

xem các lệnh có trong sliver: help

Bật chế độ multiplayer : multiplayer

[!info]
Tùy chọn multiplayer chỉ khả dụng trên máy server, không có trên các máy client
Các player ở đây có thể là operator, hoặc player
Xem các tùy chọn tạo player mới và thực hiện tạo một player có tên là zerocool

Mở một terminal mới và kiểm tra xem file cfg vừa tạo

Nhìn vào quyền trên file, ta có thể giải thích như sau: Ban nãy, file này được tạo bởi sliver server, mà ta chạy sliver server với quyền root -> file này cũng thuộc quyền sở hữu của root, và như ta thấy, chỉ có root mới có quyền đọc và ghi với file.
Do đó cần thay đổi quyền với file để có thể đọc nó
Thay đổi quyền sở hữu thành công
Bây giờ ta sẽ thử luyện tập import tiến trình trên hệ thống local.
Ta thấy có lệnh import: nhập vào một file cấu hình cho client

Giờ là đã có thể kết nối tới server

Chọn vào player zerocool
[!warning]- Fix lỗi không thể kết nối tới server (Lỗi do vị trí file của sliver đang không chuẩn)
Kiểm tra vị trí của sliver-server và sliver-client: whereis sliver-server và whereis sliver-client
if u have it in /root just start the sliver service systemctl (sudo systemctl start sliver.service) and also the sliver service (sudo service sliver start).
Nếu vị trí của sliver nằm ở bin thì sửa lại filesudo nano /etc/systemd/system/sliver.service
Tìm dòng ExecStart và sửa lại cho đúng đường dẫn thực tế. Ví dụ, nếu nó nằm ở /opt/sliver/, hãy sửa thành: ExecStart=/opt/sliver/sliver-server daemon
Lưu file
Mỗi khi bạn thay đổi file trong /etc/systemd/system/, bạn bắt buộc phải báo cho hệ thống biết để tải lại cấu hình:
- Tải lại cấu hình hệ thống: sudo systemctl daemon-reload
- Khởi động lại dịch vụ: sudo systemctl restart sliver
- Kiểm tra lại trạng thái: sudo systemctl status sliver
Cay vcl ko fix được, xóa đi cài lại bản mới luôn, cài bản 1.7.3
Xóa Sliver cũ và cài đặt bản mới
Bước 1: Dọn dẹp sạch sẽ Sliver cũ trên Slingshot
## 1. Dừng và vô hiệu hóa dịch vụ
sudo systemctl stop sliver
sudo systemctl disable sliver
## 2. Xóa các file thực thi (xóa cả ở /opt và /usr/bin để tránh trùng lặp)
sudo rm -f /usr/bin/sliver-server /usr/bin/sliver-client /opt/bin/sliver-server
## 3. Xóa toàn bộ cơ sở dữ liệu và cấu hình cũ
sudo rm -rf /root/.sliver /root/.sliver-client /home/sec560/.sliver-client
## 4. Cập nhật lại systemd
sudo systemctl daemon-reload
Bước 2: Tải Sliver mới trên Máy Thật (Host Machine)
Trên máy tính thật của bạn (máy đang có mạng), hãy làm như sau:
- Truy cập trang GitHub Releases của Sliver: https://github.com/BishopFox/sliver/releases
- Tải về 2 file dành cho Linux (vì máy ảo Slingshot chạy Ubuntu x86_64):
- sliver-server_linux-amd64
- sliver-client_linux-amd64
Bước 3: Chuyển file từ Máy Thật vào Máy Ảo (cứ copy bth thôi, cop vào home của user sec560 là được)
Bước 4: Cài đặt và Kích hoạt
## 1. Đổi tên và di chuyển vào /usr/bin/
sudo mv sliver-server_linux-amd64 /usr/bin/sliver-server
sudo mv sliver-client_linux-amd64 /usr/bin/sliver-client
## 2. Cấp quyền thực thi
sudo chmod +x /usr/bin/sliver-server
sudo chmod +x /usr/bin/sliver-client
## 3. Khởi động lại dịch vụ
sudo systemctl enable sliver
sudo systemctl start sliver
sudo systemctl status sliver
Sau khi status báo active (running), bạn đã có một máy chủ Sliver hoàn toàn mới, sạch sẽ và sẵn sàng sử dụng.
Oke cài đặt xong rồi
Chạy lại đoạn tạo operator mới

Kiểm tra file cfg vừa được tạo:

Mở terminal mới, kiểm tra các lệnh của sliver-client

import

GIờ thì có thể chạy client rồi

2. Creating a listener and an implant payload
Tạo một listener https (trình lắng nghe)
Trong thực tế thì ta thường dùng domain và để dùng được domain thì ta cần setup cert. Nhưng mà ở lab này thì dùng địa chỉ IP thôi
Bắt đầu một trình lắng nghe https đơn giản

sliver báo là job #1
Kiểm tra job

Giờ chúng ta đã cấu hình xong trình lắng nghe để nhận kết nối. Hãy cùng xem cách xây dựng tải trọng.
xem qua các tùy chọn với generate

Giờ thì bắt tay vào tạo một payload cho windows để kết nối về máy listener của ta

–skip-symbols: vì sliver thực hiện mã hóa và obfuscation payload vô cùng cầu kì nên để gen ra payload thì rất tốn thời gian, tùy chọn này để làm lab cho nhanh thôi, trong thực tế thì ko ai muốn dùng cả
Đã tạo thành công implant (trụ cấy ghép), kiểm tra nó bằng lệnh implants

Gửi payload đến windows
Mở một terminal mới để tạo một máy chủ gửi dữ liệu đến máy windows

python3 -m là chạy một module
CHuyển qua máy windows để tải về file

Tải thành công

4. Executing the Payload
Nhấn chạy file first.exe
Trở lại terminal của client, ta đã thấy thông báo

Kiểm tra sessions

Để tương tác với sessions, sử dụng use + 2 kí tự đầu tiên của id

Thành công truy cập vào sessions
5. Interacting with the session
Giống với kiểu của meterrpreter, sliver này cũng có cú pháp tương tác riêng, kiểm tra bằng help

Lấy một vài thông tin của máy mục tiêu:

6. Shell
Lại giống meterpreter, ta có thể chạy shell của máy mục tiêu bằng shell

Thăm dò tí

thoát shell máy mục tiêu với exit
7. Execute Assembly - SharpWMI
[!info] Assembly
“Assembly” ở đây KHÔNG phải là ngôn ngữ Assembly (Hợp ngữ)
Trong ngữ cảnh của lệnh execute-assembly, từ “assembly” mang nghĩa là một .NET Assembly. Hiểu đơn giản, đó là một khối mã đã được biên dịch (thường là một file .exe hoặc .dll) được tạo ra từ các ngôn ngữ lập trình thuộc nền tảng .NET của Microsoft (phổ biến nhất là C#).
Sử dụng SharpWMI để thực thi assembly, để làm được vậy thì từ sliver sessions, sử dụng câu lệnh execute-asembly và cung cấp đường dẫn tới SharpWMI

Sliver đã chuyển tập tin và thực thi nó trong bộ nhớ. Vì tập tin không bao giờ được ghi vào ổ đĩa, nên các công cụ phòng thủ sẽ khó phát hiện việc thực thi hơn.
Hãy thử nghiệm bằng cách chạy hành động loggedon để lấy danh sách người dùng đã đăng nhập.

Chúng ta có thể thấy người dùng cục bộ SEC560STUDENT\sec560 trên máy ảo Windows của mình. Chúng ta cũng có thể sử dụng điều này để nhắm mục tiêu vào các hệ thống khác. Chúng ta sẽ thực hiện điều này sau trong một bài thực hành về tấn công xoay trục (pivoting).

