Chào các bạn hôm nay mình sẽ làm bài lab trên tryhackme tên là "mKingdom" !!! :)
1. Đầu tiên, Bước 1: Rà quét hệ thống xem có dịch vụ gì đang hoạt động thu thập toàn bộ thông tin có thể lấy được
(1) Sử dụng công cụ nmap để quét dịch vụ
┌──(root㉿kali)-[~]
└─# nmap -sV -sC 10.10.115.99
Ở đây, chỉ thấy mỗi cổng dịch vụ web chạy trên cổng 85, ngoài ra không còn cỏng nào khác. Tiếp tục tiến hành khai thác trên dịch vụ web xem có gì không
Nhìn thấy một giao diện website giống như bị hack, một mặt quỷ với ký tự Bwa, ha, ha.... (tiếng Anh) 💀
2. Bước 2: Sử dụng công cụ rà quét các đường dẫn thư mục web tìm thêm dữ kiện khai thác
┌──(root㉿kali)-[~]
└─# dirb http://10.10.115.99:85
Mình thấy một đường dẫn /app, mình truy cập vào để xem trên website có thông tin gì
Thấy có một nút JUMP mình bấm vào đó truy cập xem có thông gì, xuất hiện một cảnh báo mình tiếp tục truy cập
Một website toàn nấm, nói về các loại nấm, nền tảng website concrete5 CMS. Mình cùng xem trong nội dung này có tìm được thông tin gì về mã nguồn nền tảng CMS này không
Thật bất ngờ tại giao diện Blog bài viết Hello World khi mình kiểm tra mã nguồn backend (bấm phím F12) đã phát hiện phiên bản CMS là concrete5 - 8.5.2
Sau đó mình thử tìm lỗ hổng liên quan đến _phiên bản concrete5 - 8.5.2 _ và phát hiện lỗ hổng RCE (https://vulners.com/hackerone/H1:768322)
Đây là một lỗ hổng khai thác bằng hình thức upload file định dạng PHP và kết nối về máy hacker
Trước mắt phải truy cập được vào trang quản trị hệ thống CMS, đầu tiên mình xác định với nền tảng CMS này có 2 tài khoản mặc định là admin:admin **hoặc **admin:password
Mình thử thành công tài khoản admin:password và truy cập được vào hệ thống
Tại giao diện web truy cập vào System & Settings > Allowed File Type để kiểm tra định dạng tệp có thể đẩy lên hệ thống CMS
Tại đây, mình bổ sung thêm định dạng php để được quyền upload lên hệ thống
Sau đó mình sẽ tìm file php-revese-shell, tải về và thay thế IP bằng máy hacker
Đường dẫn upload file: http://ip_victim:85/app/castle/index.php/dashboard/files/search
Sau đó sẽ hiển thị đường dẫn kết nối
3. Bước 3: Thiết lập kết nối truy cập hệ thống từ xa
Tại máy hacker, mình chạy lệnh netcat lắng nghe kết nối từ xa:
nc -lvnp 9001
Kết nối thành công user www-data
4. Bước 4: Khai thác
Chạy một số lệnh để có quyền như SSH:
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
CTRL+Z
stty raw -echo && fg
Sau đó tiến hành kiểm tra xem nội bộ hệ thống chạy những cổng dịch vụ nào và xem chúng ta có thể thu thập thêm thông tin gì hay không ?
Thấy nó chạy cổng dịch vụ mysql, mình sẽ tìm file cấu hình mysql biết đâu có thông tin hữu ích.
Truy cập đường dẫn: /var/www/html/app/castle/application/config phát hiện tệp tin cấu hình database.php, mình mở lên và thu được thông tin user toad, mật khẩu là toadisthebest
Mình chuyển quyền lên user toad để khai thác sử dụng lệnh su toad và mật khẩu ở trên
Tại đây thấy têp tin smb.txt mở lên đọc cũng không thu được thông tin gì cả
Mình kiểm tra ngoài user toad còn user khác là mario
Tiến hành mình tìm thử các thư mục khác xem có mật khẩu không, kết quả không có gì cả, mình kiểm tra biến môi trường bằng lệnh env
Thấy một giá trị PWD_token mã hóa base64 mình sẽ thử giải mã
Sử dụng lệnh trên kali để giải mã
Sau khi thu được một đoạn mã mình thử đăng nhập mario với mã đó và thành công đăng nhập. Mình thấy file user.txt và sẽ đọc nó
more user.txt
Thực hiện upload một file pspy64 để kiểm tra quyền file trên hệ thống thực hiện có thể leo thang đặc quyền root
Sau khi chạy phát hiện nó gọi đến url bằng user root để tải file có tên counter.sh
Từ đó mình sẽ tạo ra một đường dẫn website đó trên máy hacker để máy victim gọi vào và rồi kết quả mình sẽ leo thang root và có cờ cuối cùng
Top comments (0)