Walkthrough qua cách pwn machine 'Sightless' trên Hackthebox (Free @ Season 6)
Hello các cậu nha, hôm nay tớ sẽ writeup một chút về cách tớ đã pwn thành công machine codename Sightless
trên Hackthebox nha.
1. Preanalysis
Vẫn như mọi target thông thường, chúng ta sẽ bắt đầu với nmap
Nhìn qua thì chúng ta sẽ có các service ftp, ssh và http được chạy trên máy, mình sẽ bắt đầu với http trước nhé.
2. Pentest qua http
Trước hết, mình sẽ vào thử IP của target qua Firefox, và mình được redirect qua http://sightless.htb
Lướt qua website một vòng, mình thấy khá ấn tượng với các service ở dưới
Cùng xem qua service đầu tiên (SQLMap) và bắt đầu khai thác luôn nha.
2.1: Pentest SQLMap
Oops, chúng ta đang gặp một số vấn đề khi truy cập vào SQLMap, nhìn qua thì là do DNS chưa được resolve, cùng giải quyết nha.
Và đây là SQLMap v6.10.0 được chạy trên server
Áp dụng một số "kỹ năng" research, chúng ta có thể xác định được SQLMap version này dính một (CVE-2022-0944
)
Cùng đọc POC và reproduce lại cùng mình nhé
Nếu không nhầm, thì chúng ta hoàn toàn có thể chạy cho mình lệnh riêng thông qua exploit kia, cùng khai thác nhé.
2.2: Khai thác SQLMap thông qua exploit
Theo như hướng dẫn, mình sẽ vào Connections -> Driver -> MySQL -> Trong phần Database
, chúng ta sẽ nhập payload
Trong bài writeup này, mình sẽ dùng payload sau:
Giải thích nhanh gọn, thì những gì payload kia sẽ làm là lấy shell thông qua protocol TCP, chúng ta cùng chuẩn bị nhé.
Chạy một listener trên máy trước: nc -lvnp 4444
Và sau đó điền payload vào trường Database
, nhấn test.
Đơn giản vậy thôi, chúng ta đã lấy được shell rồi =)))
3. Kiểm tra hệ thống
Sau khi đã lấy được quyền root, mình sẽ xem qua file /etc/shadow
, để xem danh sách các user có mặt trong hệ thống
Nhìn sơ qua, thì cả user root
và michael
đều được đặt password, chúng ta sẽ xem qua michael
trước nhé.
3.1: Pwn mật khẩu user michael bằng John the Ripper
Đây chỉ là lệnh mẫu, bạn có thể tìm hiểu hơn qua docs của John the Ripper nhé.
Sau khi có mật khẩu, chúng ta sẽ truy cập bằng ssh
4. Capture user flag
Tiến hành ssh vào hệ thống
5. Đào sâu hon vào hệ thống
Mình sẽ chạy netstat
để xem các port đang listen ở trên máy:
Chúng ta sẽ cùng phân tích port 8080 nha.
5.1: Phân tích Froxlor
Trước hết, mình sẽ thử redirect port 8080 về máy cùng chisel
, bạn có thể sử dụng sftp hoặc netcat để up binary lên nhé.
Sau khi truy cập, mình nhận được trang web này
Tiến hành port forwarding, chúng ta nhận được remote debugging của Chrome.
Để ý traffic của website đầu tiên qua tab Network, chúng ta sẽ biết được mật khẩu đăng nhập.
Tiến hành đăng nhập với username và password ở trên, chúng ta đã vào được bên trong.
5.2: Khai thác Froxlor
Vào phần PHP => PHP-FPM Versions và tiến hành tạo một version mới.
Mình sẽ copy root flag vào /tmp
và đổi quyền
Sau đó, gửi request để trigger restart service php-fpm
:
Làm tương tự với chown michael /tmp/root.txt
6. Capture the flag :)
Cũng trong user michael
, mình sẽ lấy nội dung của root.txt
:
Submit, vậy là bạn thành công rồi ;)
7. Tổng kết
Mình đánh giá Sightless
là một machine không quá khó, tuy nhiên, mình vẫn phải Google cho gợi ý tại đoạn Remote Debugging Port, hi vọng những gì mình đã trải qua có thể giúp đỡ bạn chơi được CTF tốt hơn nha :3.
Cảm ơn đã đọc qua bài viết của tớ ạaa.