Sauna

kerbrute, ASREProast, DCSync

IP

  • LHOST: 10.10.14.15

  • RHOST: 10.129.95.180

Nmap

Port scan:

PORT     STATE SERVICE
53/tcp   open  domain
80/tcp   open  http
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
464/tcp  open  kpasswd5
593/tcp  open  http-rpc-epmap
636/tcp  open  ldapssl
3268/tcp open  globalcatLDAP
3269/tcp open  globalcatLDAPssl

Script scan:

Full scan:

Port 445 (crackmapexec)

Enumerate SMB shares with crackmapexec:

Here we learn that the NetBIOS name is sauna and the domain is egotistical-bank.local:

crackmapexec smb enumeration

Port 80 (username enumeration)

Recall that crackmapexec found a domain name:

Add the following entry to /etc/hosts:

In "About Us", we found a list of potential usernames:

potential usernames

Write down a list of possible usernames and save them as users.txt:

This [firstname initial][lastname] username pattern is commonly used in HTB boxes. In real world, you may want to generate a list of potential usernames based on emails or company policy.

Port 88 (kerbrute)

Enumerate valid usernames with kerbrute:

Here we found a valid username fsmith@egotistical-bank.local:

kerbrute

Update users.txt:

Foothold (ASREProast)

Now we have a valid username fsmith and we don't know his password. In such scenario, we can try ASREProast in order to get a TGT ticket and crack it offline. To learn the theory behind ASREProast, read the following post:

How To Attack Kerberos 101

ASREProast with GetNPUsers:

Note that the / in egotistical-bank.local/ is required, otherwise GetNPUsers won't recognize the string as a domain. It works:

GetNPUsers

Save the hash to a file named hash.txt:

Crack the TGT ticket with John:

The plaintext password is Thestrokes23:

John

Since port 5985 is open and we have a valid credential fsmith:Thestrokes23, we can get shell with Evil-WinRM:

Get a user shell as fsmith:

user shell

Lateral Movement (winPEAS)

Upload winPEAS via Evil-WinRM upload command and run it:

winPEAS found an AutoLogon credential svc_loanmanager:Moneymakestheworldgoround!:

winPEAS

However, the user svc_loanmanager does not exist. Further enumeration shows that there exists a user svc_loanmgr:

net user

Try getting shell with credential svc_loanmgr:Moneymakestheworldgoround! via Evil-WinRM:

Get shell as svc_loanmgr:

lateral movement

Privilege Escalation (DCSync)

Upload adPEAS via Evil-WinRM upload command and run it:

adPEAS found that svc_loanmgr has DCSync rights:

adPEAS

Since we know the credential of svc_loanmgr, we can do DCSync with secretsdump from Kali:

secretsdump found Administrator's NTLM hash:

secretsdump

The NTLM hash is:

Recall that Evil-WinRM can do pass the hash, therefore we don't have to crack this hash. Try pass the hash with Evil-WinRM:

Get SYSTEM shell:

SYSTEM shell

Last updated