root@thehacksparrow:~/writeups$ SYSTEM ONLINE
root@sparrow:~/writeups$ cat thefrizz.md
// writeups

TheFrizz

15 Mar 2025 · 26 min read · root access
TheFrizz - maquina de Hack The Box

Executive summary — TheFrizz is a domain controller with NTLM disabled and a XAMPP stack running an unpatched school CMS. An unauthenticated arbitrary file write in Gibbon LMS (CVE-2023-45878) hands over a webshell; its database credentials crack a teacher's hash, and that account can only log in over SSH via Kerberos. From there, a file deleted into the Recycle Bin revives a base64-encoded deployment password belonging to a second account, a member of Group Policy Creator Owners — a group that, combined with link permission over the domain, is equivalent to Domain Admin: a Restricted Groups GPO linked to the domain root inserts that account as a local administrator on the domain controller itself.

PlatformHack The Box
Operating systemWindows Server 2022 (Build 20348)
DifficultyMedium
StatusRetired
AuthenticationKerberos only (NTLM disabled)
Target IP10.129.232.168

Attack map

[80/HTTP] Gibbon LMS 25.0.00, unauthenticated (CVE-2023-45878) -> webshell as w.webservice
   |  config.php -> MySQL -> f.frizzle hash -> hashcat -m 1420 + rockyou
   v
[Kerberos/SSH] f.frizzle -- NTLM disabled, only gssapi-with-mic -> user.txt
   |  $Recycle.Bin -> deleted 7z -> WAPT install -> base64-encoded password
   v
[Credential] M.SchoolBus -- member of Group Policy Creator Owners
   |  New-GPO + New-GPLink at DC=frizz,DC=htb -> Restricted Groups
   v
[GPO] BUILTIN\Administrators rewritten -> M.SchoolBus is local admin on the DC
   |  impacket -k (Kerberos, NTLM disabled) -> smbexec
   v
[ROOT] NT AUTHORITY\SYSTEM -> root.txt

1. Reconnaissance

A full port sweep at a high rate limit trades away precision: out of 65,516 ports, some end up marked filtered because of the scan's own pace rather than an actual firewall.

sudo nmap -p- --min-rate 3000 -T4 -Pn -n --open -oN allports.nmap 10.129.232.168

The result is the textbook profile of a domain controller — 53, 88, 135, 139, 389, 445, 464, 593, 636, 3268/3269, 9389 — plus SSH on 22. Port 80 is missing: it got caught among the filtered ports because of --min-rate. Since HTB machines built around a CMS usually have something listening on HTTP, it's worth forcing it explicitly rather than assuming there's no web service:

sudo nmap -p22,53,80,88,135,139,389,445,464,593,636,3268,3269,9389 -sCV -Pn -n -oN services.nmap 10.129.232.168
22/tcp   open  ssh           OpenSSH for_Windows_9.5
53/tcp   open  domain        Simple DNS Plus
80/tcp   open  http          Apache httpd 2.4.58 (OpenSSL/3.1.3 PHP/8.2.12)
|_http-title: Did not follow redirect to http://frizzdc.frizz.htb/home/
88/tcp   open  kerberos-sec  (server time: 2026-08-30 23:40:03Z)
389/tcp  open  ldap          Domain: frizz.htb0., Site: Default-First-Site-Name
445/tcp  open  microsoft-ds?
|_clock-skew: 7h00m09s

Three things worth noting before moving on. The domain is frizz.htb, the host frizzdc — straight into /etc/hosts. Second, there's Apache and PHP running on a domain controller, almost certainly a XAMPP install; that alone signals the entry point is going to be the web app, not AD itself. And third, a seven-hour clock skew: Kerberos rejects any ticket more than five minutes off from the KDC, so any future Kerberos operation is going to fail until it's fixed.

echo "10.129.232.168 frizzdc.frizz.htb frizz.htb" | sudo tee -a /etc/hosts
🔒 Clearance required

This content is Root Access only. Everything else on the site — the free tier, the whole public library — stays open.

See Root Access plans

No account? Create one free then upgrade from your console.