Scroll Top

DCShadow-Angriffe erkennen und sich dagegen verteidigen

DCShadow-Angriffe gehören zu den raffiniertesten und gefährlichsten Methoden, um ein Active Directory (AD) zu kompromittieren. Angreifer nutzen hierbei erweiterte Techniken, um bösartige Änderungen in der AD-Umgebung durchzuführen, indem sie sich als Domain Controller (DC) ausgeben.

Wie funktioniert ein DCShadow-Angriff?

Ein DCShadow-Angriff nutzt die Replikationsmechanismen von Active Directory aus. Normalerweise kommunizieren Domain Controller miteinander und replizieren AD-Änderungen, um Konsistenz in der Umgebung zu gewährleisten. Der Angreifer registriert den kompromittierten System, das kann ein Server oder auch eine Workstation sein, als Domain Controller durch Erstellen von zwei Objekten in der CN=Configuration-Partition und Ändern des SPNs des Computers. Von dort kann er gefälschte Replikationsdaten an andere DCs senden.

Diese Art des Angriffes setzt bereits einen Tier0-Breach vorraus.

Der Angriff erfolgt in mehreren Schritten:

  1. Installation der erforderlichen Komponenten: Der Angreifer installiert Tools wie Mimikatz auf dem kompromittierten Server.
  2. Konfiguration des gefälschten DC: Der Server wird so konfiguriert, dass er als DC fungiert, indem er die entsprechenden AD-Objekte und Berechtigungen modifiziert.

Replikation der bösartigen Änderungen: Der kompromittierte Server initiiert eine Replikation und verbreitet die Änderungen an andere DCs.

Ein typischer DCShadow-Angriff könnte folgendermaßen via powershell durchgeführt werden:

# Starten Sie mimikatz als Administrator
privilege::debug

# Konfigurieren Sie den DCShadow
lsadump::dcshadow /object:<DistinguishedNameDesZiels> /attribute:<AttributName> /value:<NeuerWert>

# Initiieren Sie die Replikation
lsadump::dcshadow /push

Hier wird das Tool Mimikatz verwendet, um den Angriff durchzuführen. Der Angreifer gibt das Zielobjekt, das Attribut und den neuen Wert an, um die gewünschten Änderungen im AD durchzusetzen.

Schemaänderungen ohne Änderung von schemaInfo

DCShadow kann Schemaänderungen im Active Directory durchführen, ohne dass das schemaInfo-Attribut angepasst wird. Normalerweise würde eine Schemaänderung das schemaInfo-Attribut aktualisieren, was ein Indikator für Änderungen ist. Durch das Auslassen dieser Änderung wird es für Admins schwieriger, diese Modifikationen zu erkennen, da die üblichen Überwachungsmechanismen nicht anschlagen. Dies ermöglicht es Angreifern, Schemaerweiterungen und -änderungen durchzuführen, ohne sofort entdeckt zu werden:

lsadump::dcshadow /object:"CN=Schema,CN=Configuration,DC=domain,DC=com" /attribute:schemaInfo /value:"unchanged"
lsadump::dcshadow /object:"CN=NewSchemaObject,CN=Schema,CN=Configuration,DC=domain,DC=com" /attribute:attributeSyntax /value:"2.5.5.12"

Erweiterte Angriffsmöglichkeiten von DCShadow

DCShadow bietet Angreifern vielfältige Möglichkeiten, dauerhafte und schwer zu entdeckende Änderungen im Active Directory vorzunehmen. Hier sind einige der erweiterten Angriffsmöglichkeiten, die durch DCShadow ermöglicht werden:

1. Erstellen von Backdoors durch SIDHistory

Angreifer können das Attribut SIDHistory manipulieren, um einem Benutzerkonto zusätzliche SID-Werte zuzuweisen. Dadurch können sie den Zugriff auf Ressourcen erlangen, die eigentlich für andere Benutzer bestimmt sind.

Beispiel zur Manipulation von SIDHistory

lsadump::dcshadow /object:"CN=User,DC=domain,DC=com" /attribute:SIDHistory /value:"S-1-5-21-1234567890-123456789-123456789-1001"

    3. Ersetzen des vorherigen krbtgt-Hashes

    Der krbtgt-Benutzer ist entscheidend für die Ausstellung von Kerberos-Tickets. Durch das Ersetzen seines Hashes können Angreifer gefälschte Tickets erstellen (Siehe Golden Ticket Angriff) und sich Zugang zu verschiedenen Diensten verschaffen. 

    Beispiel zur Änderung des krbtgt-Hashes

    lsadump::dcshadow /object:"CN=krbtgt,DC=domain,DC=com" /attribute:unicodePwd /value:"new-krbtgt-hash"

      2. Manipulation von ntpwdHistory

      Durch das Ändern des ntpwdHistory-Attributs können Angreifer alte Passwort-Hashes eines Benutzers überschreiben und so deren Passwortverlauf kontrollieren.

      Beispiel zur Änderung von ntpwdHistory

      lsadump::dcshadow /object:"CN=User,DC=domain,DC=com" /attribute:ntpwdHistory /value:"new-hash-value"

      4. Setzen von nicht übereinstimmenden NTLM- und AES-Hashes

      Angreifer können unterschiedliche Hash-Werte für NTLM und AES setzen, um die Authentifizierung zu manipulieren und ihre Aktivitäten zu verschleiern.

      Beispiel zum Setzen unterschiedlicher NT- und AES-Hashes

      lsadump::dcshadow /object:"CN=User,DC=domain,DC=com" /attribute:unicodePwd /value:"ntlm-hash"
      
      lsadump::dcshadow /object:"CN=User,DC=domain,DC=com" /attribute:msDS-KeyVersionNumber /value:"aes-hash"

      Erkennung von DCShadow-Angriffen

      Die Erkennung von DCShadow-Angriffen erfordert eine Kombination aus präzisem Monitoring und einer gründlichen Analyse der AD-Umgebung:

      Überwachung von Event-Logs

      Eine effektive Methode zur Erkennung von DCShadow-Angriffen ist die Überwachung spezifischer Ereignisprotokolle auf den DCs. Hier sind die wichtigsten Ereignis-IDs:

      1. Event ID 4672: Privileged Account Logon – Dieses Ereignis zeigt an, dass ein Konto mit hohen Rechten sich angemeldet hat.
      2. Event ID 5136: Directory Service Changes – Dieses Ereignis protokolliert Änderungen an AD-Objekten.
      3. Event ID 4929: Active Directory Replication – Dieses Ereignis zeigt an, dass eine Replikation stattgefunden hat.

      Durch die Konfiguration eines SIEM (Security Information and Event Management) Systems können diese Events korreliert und Alarme ausgelöst werden.

      Beispielsweise kann folgendes PowerShell-Skript kann zur Überwachung verdächtiger Ereignisse genutzt werden:

      # PowerShell-Skript zur Überwachung von Event IDs 4672, 5136 und 4929

      $eventIDs = @(4672, 5136, 4929)
      Get-WinEvent -FilterHashtable @{LogName='Security'; ID=$eventIDs} | ForEach-Object {
      
          # Logik zur Verarbeitung und Alarmierung
          if ($_.ID -eq 4672) {
              Write-Output "Privileged Account Logon detected: $($_.Message)"
          } elseif ($_.ID -eq 5136) {
              Write-Output "Directory Service Change detected: $($_.Message)"
          } elseif ($_.ID -eq 4929) {
              Write-Output "AD Replication Event detected: $($_.Message)"

      Netzwerkbasierte Erkennung

      Ein weiterer fortgeschrittener Ansatz zur Erkennung von DCShadow-Angriffen ist die Überwachung des Netzwerkverkehrs. DCShadow kann auf Netzwerkebene durch Überwachung von API-Aufrufen wie DrsAddEntry oder DrsReplicaAdd erkannt werden, da diese normalerweise nur von einem legitimen DC ausgeführt werden. Tools wie Zeek und Wireshark können verwendet werden, um solche Aufrufe zu identifizieren und zu analysieren.

      Forensische Analyse und Metadatenänderung

      Ein wesentlicher Aspekt bei DCShadow-Angriffen ist die Manipulation der Replikationsmetadaten, was die forensische Analyse erheblich erschwert. DCShadow ändert die Metadaten so, dass die Quelle der Änderungen nicht mehr korrekt nachvollziehbar ist. Dadurch werden herkömmliche forensische Methoden, die sich auf diese Metadaten stützen, unzuverlässig.

      Die Herausforderungen bei der forensischen Analyse umfassen:

      • Manipulierte Änderungsprotokolle: Angreifer können Änderungen vornehmen, ohne dass diese eindeutig zugeordnet werden können.
      • Verfälschte Replikationsereignisse: Die Quelle und der Zeitpunkt der Replikation werden verschleiert, was die Nachverfolgung des Angriffs erschwert.

      Beispiel: Forensische Analyse von Replikationsmetadaten

      $replicationMetadata = Get-ADReplicationAttributeMetadata -Object "CN=User,DC=domain,DC=com" -Server "DC1"
      foreach ($attribute in $replicationMetadata) {
          Write-Output "Attribute: $($attribute.AttributeName)"
          Write-Output "Version: $($attribute.Version)"
          Write-Output "Last Originating Change: $($attribute.LastOriginatingChange)"
          Write-Output "Originating DC: $($attribute.OriginatingDsaGuid)"

      In diesem Beispiel wird das PowerShell-Cmdlet Get-ADReplicationAttributeMetadata verwendet, um die Replikationsmetadaten eines AD-Objekts zu überprüfen. Manipulierte Metadaten können hier identifiziert werden, indem Unstimmigkeiten bei der LastOriginatingChange und OriginatingDsaGuid analysiert werden.

      Netzwerkverkehrsanalyse

      Ein weiterer Ansatz zur Erkennung von DCShadow-Angriffen ist die Überwachung des Netzwerkverkehrs auf Anomalien. Tools wie Zeek (früher bekannt als Bro) und Wireshark können verwendet werden, um ungewöhnlichen Datenverkehr zu identifizieren, der auf eine illegitime Replikation hinweist.

      Zeek-Skript zur Überwachung von Replikationsverkehr:

      event smb1_request(c: connection, hdr: smb_hdr) {
      
          if (hdr.cmd == SMB_COM_TRANSACTION2_SECONDARY) {
              # Logik zur Erkennung verdächtigen Replikationsverkehrs
              if (c$orig$ip == <IP_des_kompromittierten_Servers>) {
                  print(fmt("Suspicious replication traffic detected from %s", c$orig$ip));

      Wie kann man DCShadow-Angriffe abwehren?

      Die Abwehr gegen DCShadow-Angriffe erfordert eine Kombination aus präventiven Maßnahmen und aktiver Überwachung:

      1. Härtung des AD

      • Secure Boot: Stellen Sie sicher, dass alle DCs Secure Boot verwenden, um Bootkits zu verhindern.
      • LAPS (Local Administrator Password Solution): Implementieren Sie LAPS, um lokale Administratorkonten zu schützen.
      • Privileged Access Management (PAM): Nutzen Sie PAM, um den Zugriff auf hochprivilegierte Konten zu kontrollieren.

      Weitere Sicherheitslücken und wie Sie dagegen vorgehen besprechen wir hier: 10 Schwachstellen, die Hacker in Ihrem Active Directory ausnutzen

      2. Netzwerksegmentierung

      Trennen Sie AD-relevante Netzwerke von anderen Netzwerken. Dies erschwert es Angreifern, sich lateral zu bewegen und DCShadow-Angriffe durchzuführen.

      3. Einschränkung von AD Replikationszugriffen

      Beschränken Sie, welche Server Replikationsrechte haben, und überwachen Sie diese Zugriffe streng.

      Hier ist ein PowerShell-Beispiel zur Verwaltung von Replikationsrechten:

      1. Liste der aktuellen Replikationspartner abrufen
      $replicationPartners = Get-ADReplicationPartnerMetadata -Target "DC=domain,DC=com"

       

      1. Replikationsrechte einschränken
      foreach ($partner in $replicationPartners) {
          # Nur bestimmten DCs Replikationsrechte gewähren
          if ($partner.Partner -notin $allowedReplicationPartners) {
              Set-ADReplicationConnection -Identity $partner -ReplicationSchedule "None"

      4. Erkennung von Änderungen im Schema und in den Berechtigungen

      Ein weiterer kritischer Aspekt bei der Erkennung von DCShadow-Angriffen ist das Monitoring von Schemaänderungen und Änderungen in den Berechtigungen von AD-Objekten. DCShadow kann verwendet werden, um Schemaerweiterungen oder Änderungen an Sicherheitsgruppen durchzuführen, die es einem Angreifer ermöglichen, seine Spuren zu verwischen oder dauerhaft erhöhte Rechte zu erhalten.

      PowerShell-Skript zur Überwachung von Schemaänderungen

      $schemaChanges = Get-WinEvent -FilterHashtable @{LogName='Directory Service'; ID=5136; ProviderName='Microsoft-Windows-ActiveDirectory_DomainService'}
      foreach ($change in $schemaChanges) {
          if ($change.Properties[1].Value -like "*schema*") {
              Write-Output "Schema change detected: $($change.Message)"

      5. Implementierung eines robusten Incident-Response-Plans

      Ein gut durchdachter Incident-Response-Plan ist unerlässlich, um auf DCShadow-Angriffe schnell und effektiv reagieren zu können. Dieser Plan sollte folgende Elemente enthalten:

      1. Erkennung und Meldung: Überwachung aller DCs auf ungewöhnliche Replikationsaktivitäten und Schemaänderungen sowie Meldung verdächtiger Ereignisse.
      2. Isolierung: Sofortige Isolierung kompromittierter Systeme und Überprüfung und Sperrung verdächtiger Benutzerkonten, um die Ausbreitung des Angriffs zu verhindern.
      3. Analyse: Durchführung einer gründlichen forensischen Analyse, um das Ausmaß des Angriffs zu bestimmen.
        1. Forensische Untersuchung der betroffenen Systeme
        2. Überprüfung der Event-Logs und Netzwerkanalyse
        3. Identifikation der Angriffsmethoden und genutzten Exploits
      4. Wiederherstellung: Sichere Wiederherstellung betroffener Systeme und Daten.
        1. Bereinigung und Wiederherstellung betroffener DCs
        2. Durchführung eines vollständigen Passwort-Resets für administrative Konten
        3. Überprüfung und Wiederherstellung von Backups
      5. Kommunikation: Klare Kommunikationswege innerhalb des IT-Teams und mit externen Sicherheitsexperten.

      Weitere Sicherheitstipps für Ihr Active Directory finden Sie hier: Active Directory Security Best Practices

      Fazit

      DCShadow-Angriffe stellen eine erhebliche Bedrohung für Active Directory-Umgebungen dar. Durch eine Kombination aus proaktiven Sicherheitsmaßnahmen, fortschrittlicher Überwachung und einem robusten Incident-Response-Plan können Sie das Risiko solcher Angriffe erheblich minimieren. Es ist unerlässlich, kontinuierlich Ihre AD-Sicherheitsstrategien zu evaluieren und anzupassen, um gegen die sich ständig weiterentwickelnden Bedrohungen gewappnet zu sein.

      Related Posts