0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Giải pháp cho máy 'Synced' trên Hack The Box

Đăng vào 3 ngày trước

• 8 phút đọc

Giới thiệu về máy "Synced" trên Hack The Box

Trong bài viết này, chúng ta sẽ khám phá các bước giải quyết máy "Synced", một phần của phòng thí nghiệm 'Starting Point' trên Hack The Box với độ khó được đánh giá là 'Rất Dễ'. Đây là máy cuối cùng của cấp độ Tier-0 trong Starting Point. Để truy cập máy này, bạn cần nâng cấp từ gói miễn phí của mình.

Rsync trên Cổng 873: Cổng vào cho Đồng bộ hóa Tập tin Hiệu quả

Dịch vụ truyền tải tập tin phổ biến nhất là Giao thức Truyền tải Tập tin (FTP), đã được đề cập kỹ lưỡng trong máy Fawn. Mối quan tâm chính với FTP là nó là một giao thức rất cũ và chậm. FTP được sử dụng để sao chép toàn bộ tập tin qua mạng từ một máy chủ từ xa. Trong nhiều trường hợp, có nhu cầu chỉ truyền tải một số thay đổi đã thực hiện trên một vài tập tin mà không cần truyền tải mọi tập tin mỗi lần. Đối với các tình huống này, giao thức rsync thường được ưa chuộng.

Rsync là một công cụ đồng bộ hóa tập tin đa năng. Đây là một công cụ mã nguồn mở và cung cấp truyền tải tập tin gia tăng nhanh chóng. Định nghĩa chính thức của rsync theo trang hướng dẫn Linux như sau:

Rsync là một công cụ sao chép tập tin nhanh và vô cùng đa năng. Nó có thể sao chép nội bộ, từ/đến một máy chủ khác qua bất kỳ shell từ xa nào, hoặc từ/đến một daemon rsync từ xa. Nó cung cấp một số lượng lớn tùy chọn kiểm soát mọi khía cạnh của hành vi của nó và cho phép chỉ định rất linh hoạt tập hợp các tập tin cần sao chép. Nó nổi tiếng với thuật toán delta-transfer, giúp giảm lượng dữ liệu gửi qua mạng bằng cách chỉ gửi những điểm khác biệt giữa các tập tin nguồn và các tập tin hiện có ở đích. Rsync được sử dụng rộng rãi cho việc sao lưu và gương hóa và như một lệnh sao chép cải tiến cho việc sử dụng hàng ngày.

Sức mạnh cốt lõi của rsync nằm ở thuật toán “delta-transfer” của nó. Thay vì sao chép mù quáng toàn bộ tập tin, rsync thông minh xác định và truyền tải chỉ những khác biệt giữa các tập tin nguồn và tập tin đích, dẫn đến việc truyền tải nhanh hơn và hiệu quả hơn về mặt mạng.

Các giai đoạn chính của một phiên truyền tải rsync như sau:

  1. rsync thiết lập kết nối với máy chủ từ xa và khởi động một tiến trình nhận rsync khác.
  2. Các tiến trình gửi và nhận so sánh các tập tin đã thay đổi.
  3. Những gì đã thay đổi sẽ được cập nhật trên máy chủ từ xa.

Cách thức hoạt động của rsync khiến nó trở thành một lựa chọn tuyệt vời khi cần đồng bộ hóa tập tin giữa một máy tính và ổ lưu trữ và giữa các máy tính kết nối mạng. Nhờ vào tính linh hoạt và tốc độ mà nó cung cấp, rsync đã trở thành một tiện ích tiêu chuẩn của Linux, được bao gồm trong tất cả các bản phân phối Linux phổ biến theo mặc định. Thêm thông tin về rsync có thể được tìm thấy trên trang Wikipedia.

Kết nối và Tương tác với Dịch vụ Rsync

Tương tác với dịch vụ rsync chủ yếu được thực hiện thông qua tiện ích dòng lệnh rsync (được cài sẵn trong các bản phân phối Linux), một tính năng tiêu chuẩn trong hầu hết các hệ điều hành tương tự Unix. Cú pháp cơ bản để kết nối với một daemon rsync từ xa như sau:

Copy
rsync [TÙY CHỌN] [NGƯỜI DÙNG@]HOST::[MODULE] [ĐÍCH]
rsync [NGƯỜI DÙNG@]HOST::   (để liệt kê các module có sẵn)

Lệnh này sẽ cố gắng kết nối với daemon rsync trên HOST/IP/USER@ và liệt kê các module có thể truy cập công khai.

Cấu trúc của Chuỗi Kết nối:

  • [TÙY CHỌN]: Đây là các tùy chọn có sẵn trong rsync. Danh sách tất cả các tùy chọn hợp lệ có sẵn trên trang hướng dẫn chính thức của rsync trong phần Tóm tắt Tùy chọn. Bạn cũng có thể xem nó bằng cách sử dụng lệnh --help: rsync --help.
  • [NGƯỜI DÙNG@]HOST: Điều này xác định tên máy chủ từ xa hoặc địa chỉ IP. Bạn có thể tùy chọn cung cấp một tên đăng nhập nếu module rsync yêu cầu xác thực. Tham số tùy chọn [NGƯỜI DÙNG@] được sử dụng khi chúng ta muốn truy cập máy từ xa một cách xác thực. Trong máy này (synced), chúng ta không có bất kỳ thông tin xác thực hợp lệ nào, vì vậy chúng ta sẽ bỏ qua phần này và thử xác thực ẩn danh.
  • ::: Hai dấu hai chấm là rất quan trọng. Nó chỉ ra một kết nối đến một daemon rsync trên máy chủ được chỉ định, thay vì sử dụng một shell từ xa như SSH.
  • [MODULE]: Các daemon rsync được cấu hình với "modules", về cơ bản là bí danh cho tập tin/thư mục trên máy chủ được cung cấp cho đồng bộ hóa. Bạn có thể nghĩ về chúng như là các chia sẻ. Nếu bạn bỏ qua module, một số máy chủ có thể liệt kê các module có sẵn.
  • [ĐÍCH]: Đây là đường dẫn cục bộ nơi bạn muốn tải xuống các tập tin. Nếu bạn muốn lưu trữ trong thư mục hiện tại thì chỉ cần đề cập tên với mà bạn muốn lưu tập tin trên máy cục bộ.

Xác thực

Các module rsync có thể được cấu hình với các mức độ bảo mật khác nhau:

  • Ẩn danh: Một số module có thể truy cập công khai mà không cần xác thực.
  • Bảo vệ bằng mật khẩu: Nhiều module yêu cầu tên người dùng và mật khẩu. Bạn có thể được yêu cầu nhập mật khẩu, hoặc bạn có thể lưu nó vào một tệp và sử dụng tùy chọn --password-file.

Thường xảy ra rằng rsync được cấu hình sai để cho phép đăng nhập ẩn danh, điều này có thể bị kẻ tấn công khai thác để truy cập thông tin nhạy cảm được lưu trữ trên máy từ xa.

Các Nhiệm vụ Cần Thực Hiện

NHIỆM VỤ 1: Cổng mặc định của rsync là gì? 873
NHIỆM VỤ 2: Có bao nhiêu cổng TCP mở trên máy chủ từ xa? 1
NHIỆM VỤ 3: Phiên bản giao thức nào được sử dụng bởi rsync trên máy từ xa? 31
NHIỆM VỤ 4: Tên lệnh phổ biến nhất trên Linux để tương tác với rsync là gì? rsync
NHIỆM VỤ 5: Bạn cần cung cấp thông tin xác thực nào cho rsync để sử dụng xác thực ẩn danh?
anonymous:anonymous,
anonymous,
Không có,
rsync:rsync
NHIỆM VỤ 6: Tùy chọn nào chỉ liệt kê các chia sẻ và tập tin trên rsync? (Không cần bao gồm các ký tự — ở đầu) list-only

Gửi Cờ

Chúng ta sẽ bắt đầu bằng cách quét máy chủ từ xa để tìm bất kỳ cổng mở nào và các dịch vụ đang chạy bằng cách sử dụng quét Nmap. Chúng ta sẽ sử dụng các cờ sau cho quét:

Copy
nmap -p- --min-rate=1000 -sV {target_IP}
  • -p- : Cờ này quét tất cả các cổng TCP từ 0-65535
  • -sV : Cố gắng xác định phiên bản của dịch vụ đang chạy trên một cổng
  • --min-rate : Cờ này được sử dụng để chỉ định số lượng gói tối thiểu mà Nmap nên gửi mỗi giây; nó tăng tốc quét khi số lượng tăng cao hơn.

Quá trình quét cho thấy chỉ có cổng 873 đang mở. Hơn nữa, Nmap thông báo rằng dịch vụ đang chạy trên cổng này là rsync.

Bây giờ chúng ta sẽ cố gắng kết nối và chỉ liệt kê tất cả các thư mục có sẵn cho người dùng ẩn danh. Đọc qua trang hướng dẫn, chúng ta có thể thấy tùy chọn --list-only, theo định nghĩa, được sử dụng để “liệt kê các tập tin thay vì sao chép chúng”. Để tương tác với máy, chúng ta thực hiện lệnh sau:

Copy
rsync --list-only {target_IP}::
hoặc 
rsync {target_IP}::

Nhìn vào đầu ra, chúng ta có thể thấy rằng chúng ta có thể truy cập vào một thư mục gọi là public với mô tả Chia sẻ Ẩn danh. Đây là một thực tiễn phổ biến để gọi các thư mục chia sẻ đơn giản là chia sẻ. Hãy cùng tiến xa hơn và liệt kê các tập tin bên trong chia sẻ công khai. Dấu gạch chéo ở cuối tên module là rất quan trọng; nó biểu thị rằng bạn muốn xem nội dung của thư mục.

Copy
rsync --list-only {target_IP}::public/
hoặc 
rsync {target_IP}::public/

Chúng ta nhận thấy một tập tin có tên flag.txt bên trong chia sẻ công khai. Bước cuối cùng của chúng ta sẽ là tải xuống/sao chép/đồng bộ toàn bộ nội dung của tập tin flag.txt vào máy cục bộ của chúng ta. Để thực hiện điều đó, chúng ta chỉ cần theo cú pháp tổng quát bằng cách chỉ định SRC là public/flag.txt và DEST là flag.txt để chuyển tập tin đến máy cục bộ của chúng ta.

Copy
rsync {target_IP}::[SRC] [DEST]
rsync {target_IP}::public/flag.txt flag.txt

Thực hiện lệnh này trả về không có đầu ra. Nhưng, trong thư mục cục bộ của chúng ta có một tập tin mới gọi là flag.txt. Hãy đọc nội dung của nó: cat flag.txt

Chúc mừng! Bạn đã thành công trong việc thu thập tập tin cờ từ máy từ xa bằng cách sử dụng giao thức rsync.

Và đây đánh dấu sự kết thúc của Tier -0 trong các máy của Starting Point trong Hack The Box Labs. Hãy bắt đầu Pwn Machines ngay bây giờ… :) Chúc bạn Hacking vui vẻ! 🪅

Tín dụng: Internet 🛜

Kính thưa bạn đọc, hãy thoải mái liên hệ với tôi nếu có câu hỏi hoặc phản hồi. 🥷

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào