Tryhackme - Metamorphosis


Đầu tiên ta sẽ tìm hiểu về thông tin của đối tượng: 


Tại đây ta sẽ thấy có 1 số port quan trọng cần phải để ý: 22, 80, 139/445 và 873. Mình sẽ đi từ cái dễ nhất, là 139/445 SMB: 


Ta có thể thấy như trên ảnh rằng không có gì quan trọng ở trong giao thức này, và tiếp theo ta sẽ tiếp tục truy cập vào port 80. Và ở đây mình sẽ sử dụng công cụ dirsearch:


Ta sẽ thấy ngay ở đây có directory tên admin, nhưng kết quả trả về là 403: Forbidden. Ở trong source code mình thấy họ có để lại một lời nhắn: 


Và lúc này ta còn cổng cuối cùng: Rsync. Lúc này mình sẽ dùng chút kiến thức nho nhỏ của mình để tìm kiếm thông tin từ port này. Trước khi làm thì mình sẽ thêm metamorphosis.thm vào file /etc/hosts (cái này thì chắc không cần nói rồi :>). Tiếp theo ta sẽ bắt đầu lục lọi port này:

rsync rsync://rsync-connect@metamorphosis.thm
rsync rsync://rsync-connect@metamorphosis.thm/Conf


Ở đây ta thấy có rất nhiều file thú vị và mình lấy tất cả các file này về máy mình: rsync -v rsync://rsync-connect@metamorphosis.thm/Conf/<tên-file> . Nội dung của file webapp.ini rất đáng để suy ngẫm:


Ta thấy biến env đang có value là prod, và ta sẽ thay đổi giá trị của env từ prod thành dev và tiếp theo mình sẽ upload nó lên Rsync: rsync -v <path-of-webapp.ini> rsync://rsync-connect@metamorphosis.thm/Conf/webapp.ini
Và tại đây ta thu được trang admin:


Tại đây ta nhập username mà ta tìm được ở file webapp.ini, nhưng kết quả không có gì đáng nghi lắm:


Ta hãy nhớ lại một chút, thường với những trường đăng nhập có thể xảy ra rất nhiều lỗi như XSS, SQL Injection, Command Injection.... Và như ở hint ngay đầu bài ta thấy có hashtag: sql injection. Quá ngon rồi, vậy thì mình chắc chắn cái này dính SQL Injection. Và mình sử dụng sqlmap để exploit nó:


Ở trong database db không có gì đặc biệt, nên mình sẽ thử tạo shell bằng sqlmap: sqlmap -u "http://metamorphosis.thm/admin/index.php" --level 5 --risk 3 --batch D db --os-shell --forms và nó hoạt động:


Và ở đây mình sẽ tạo reverse shell bằng python và ta thu được user.txt

Tiếp theo là root.txt. Ta sẽ lại để ý tiếp là ở ngay đầu bài có hashtag: sniff. Cái này làm mình nhớ đến sniffing traffic. Và đầu tiên mình sử dụng lệnh: ss -tulpn và tại đây mình tìm được một số port:


Port 1027 làm mình phải tra google một hồi không lâu cho lắm và mình tìm thấy được rằng port này có một con bug khá là cute: 


Và mình upload file linpeas.sh từ máy mình sang máy nó và chạy file:



Và đến lúc này mình sử dụng tcpdump để sniff the traffic: tcpdump -i lo port 1027 -c 10 -A -vvv


Và các bạn có thể thấy có dòng BEGIN RSA PRIVATE KEY. Vậy chắc chắn đây là key ssh rồi. Và cuối cùng mình copy cái này vào file ssh.key + chmod 600 ssh.key + ssh -i ssh.key root@<Target-IP>:


Yeah, leo root thành công, giờ ta đoc file root.txt thôi: 

Root flag: 7ffca2ec63534d165525bf37d91b4ff4
























Nhận xét

Bài đăng phổ biến