Kaputt bei Design – Privilege Escalation (KrbRelayUp)

Im April 2022 wurde das neue Hacking Tool KrbRelayUp auf GitHub veröffentlicht. KrbRelayUp verwendet mehrere bereits bekannte Hacking Tools, um sehr einfach an die höchste Berechtigung (LocalSystem) auf einem Client und/oder Server (z.B. Terminal Server) in einer Active Directory Domäne zu gelangen. Dazu macht sich KrbRelayUp mehrere Standard-/Fehlkonfigurationen zu Nutze. Darunter ist die nicht aktivierte LDAP-Signierung und die Tatsache, dass jeder in der Domäne Computerkonten anlegen kann.

Zu Beginn war KrbRelayUp auf die Methode der ressourcenbasierten eingeschränkten Delegierung (RBCD) beschränkt. Im Laufe der Zeit wurden jedoch weitere Angriffstechniken, wie die Shadow Credentials- und ADCS Web Enrollment-Methode, hinzugefügt. In diesem Blog werden wir uns auf die ressourcenbasierte eingeschränkte Delegierung (RBCD) von KrbRelayUp konzentrieren. Trotz der Ergänzung weiterer Angriffsmethoden bleibt RBCD ein wichtiger Bestandteil von KrbRelayUp.

Der Angriff

Lab

Schauen wir uns das Ganze etwas genauer an. Für das LAB wurde die Domäne gotraining.lab und ein Windows 11 Client (WS02) verwendet. Auf dem Client WS02 ist der Account gotraining\user angemeldet. Dieser Account verfügt über normale Benutzerrechte auf dem Client.

Ablauf

Der Angriff läuft in vier Schritten ab. Mit KrbRelayUp werden die Schritte zusammengefasst und automatisiert durchgeführt.

Schritt 1 (New-MachineAccount) und 2 (KrbRelay)

Im ersten Schritt legt KrbRelayUp ein neues Computerkonto (evilhost) mit New-MachineAccount im Active Directory an. Das ist bei vielen Umgebungen möglich, da standardmässig jeder Domänen-Benutzer bis zu 10 Computer in einer Domäne hinzufügen/erstellen darf.

Als nächstes wird ein Kerberos Relay Angriff (KrbRelay) über LDAP auf den aktuell verwendeten Computer (WS02) durchgeführt, um das Attribut msDS-AllowedToActOnBehalfOfOtherIdentity zu setzen. Das funktioniert, da bei vielen Active Directory Umgebungen die LDAP-Signierung nicht aktiviert ist.

Nun kann das Computerkonto WS02 im Namen des erstellten evilhost-Kontos handeln. Dies ist der entscheidende Schritt für diesen Angriff.

Haben die Schritte funktioniert, sind beim Computerkonto WS02 die Attribute PrincipalsAllowedToDelegateToAccount und msDS-AllowedtoActOnBehalfOfOtherIdentity gesetzt.

Schritt 3 (Rubeus) und 4 (SCMUACBypass)

Als nächstes wird mit Rubeus ein Service Ticket (ST) über die S4USelf-Erweiterung vom Kerberos beantragt. Mit der S4USelf-Erweiterung kann ein ST für sich selbst, im Namen eines anderen Benutzers, beantragt werden. Im aktuellen Beispiel wird ein ST für den Administrator für evilhost, beantragt. Dieses Ticket (evilhost\Administrator) wird wiederum mit der S4U2Proxy-Erweiterung verwendet, um ein ST für den Administrator für WS02 zu beantragen.

Im letzten Schritt wird das ST (WS01\Administrator) dazu verwendet, sich am lokalen Service Manager zu authentifizieren und einen neuen Service als LocalSystem zu starten.

Das Ergebnis ist eine cmd.exe als LocalSystem, also die höchste Berechtigung auf dem Client.

Schutzmassnahmen

Um die Auswirkungen dieser Bedrohung zu reduzieren, helfen folgende Schutzmassnahmen:

  • MS-DS-Machine-Account-Quota Attribut für unprivilegierte Benutzer auf 0 setzen
    Dadurch ist es für einen unprivilegierten Benutzer nicht mehr möglich, Computer in der Domäne anzulegen. Das ist beispielsweise mit PowerShell möglich. Melden Sie sich dazu an den Domain Controller an und geben Sie den folgenden Befehl in eine PowerShell ein:

Set-ADDomain (Get-ADDomain).distinguishedname -Replace @{"ms-ds-MachineAccountQuota"="0"}

Weitere Informationen dazu finden Sie bei Microsoft.

  • LDAP-Signierung und LDAP-Kanalbindung über Gruppenrichtlinien erzwingen
    Dadurch kann der Kerberos Relay Angriff über LDAP verhindert werden. Diese Einstellung kann über die Default Domain Controller Policy mit Gruppenrichtlinien wie folgt konfiguriert werden.Einstellungspfad:

Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options

Gruppenrichtlinie Wert
Domain controller: LDAP server signing requirements Require Signing
Domain controller: LDAP server channel binding token requirements Always

Weitere Informationen dazu finden Sie bei Microsoft.

  • Windows Firewall an allen Clients und Servern aktivieren
    Dadurch kann ebenfalls der Kerberos Relay Angriff über LDAP verhindert werden, da  ein normaler User keine Berechtigung hat, weitere Firewall-Regeln anzulegen.

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.