[!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 file sudo 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:

  1. Truy cập trang GitHub Releases của Sliver: https://github.com/BishopFox/sliver/releases
  2. 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).