Kurzfassung: Kerberos ist das Authentifizierungsprotokoll von Active Directory. Es arbeitet mit Tickets statt mit Passwörtern im Klartext: Ein Benutzer holt beim Domain Controller ein Ticket Granting Ticket (TGT), das mit dem Schlüssel des Sonderkontos krbtgt gesichert ist, und tauscht es gegen Diensttickets (TGS) für einzelne Dienste. Wer versteht, wie TGT, TGS und krbtgt zusammenhängen, versteht auch, warum Kerberoasting, AS-REP-Roasting, DCSync, Pass-the-Hash und die Golden- und Silver-Ticket-Angriffe funktionieren, denn jeder greift eine bestimmte Stelle dieses Ablaufs an. Dieser Beitrag ist die Grundlage, auf die alle Kerberos-Erkennungen aufbauen.
Kerberos zu verstehen ist die Voraussetzung, um die häufigsten Angriffe auf Active Directory zu erkennen. Fast alle Techniken, mit denen ein Angreifer sich in einer Windows-Domäne Rechte verschafft und bewegt, setzen an einer bestimmten Stelle des Kerberos-Ablaufs an, und wer diesen Ablauf kennt, sieht sofort, warum eine Erkennung genau auf ein bestimmtes Ereignis achtet. Dieser Beitrag erklärt Kerberos aus Verteidigersicht: die Bausteine, den Ticket-Fluss Schritt für Schritt, die Sonderrolle des Kontos krbtgt und die Ereignisse, die dabei entstehen. Er ist bewusst als Hub angelegt, der zu den einzelnen Erkennungsbeiträgen führt, denn jeder Angriff wird an der Stelle verständlich, an der er in den Ablauf eingreift.
Warum Kerberos existiert
Das Grundproblem jeder Anmeldung im Netz: Ein Benutzer will einen Dienst nutzen, und der Dienst muss sicher sein, dass der Benutzer der ist, der er vorgibt zu sein, ohne dass das Passwort über das Netz wandert oder jeder Dienst die Passwörter aller Benutzer kennt. Kerberos löst das mit einer vertrauenswürdigen dritten Instanz, dem Key Distribution Center (KDC), das in einer Windows-Domäne auf jedem Domain Controller läuft. Der Benutzer beweist dem KDC einmal seine Identität und bekommt dafür Tickets, mit denen er sich bei Diensten ausweist, ohne sein Passwort erneut zu verwenden. Das Passwort selbst verlässt den Client nie im Klartext; stattdessen wird aus ihm ein Schlüssel abgeleitet, mit dem verschlüsselt wird. Diese Trennung zwischen einmaliger Identitätsprüfung und wiederholter Ticket-Nutzung ist der Kern von Kerberos, und sie ist zugleich die Angriffsfläche.
Die Bausteine
| Baustein | Was es ist |
|---|---|
| KDC (Key Distribution Center) | Die vertrauenswürdige Instanz, die Tickets ausstellt. Läuft auf jedem Domain Controller und besteht aus zwei Diensten: dem Authentication Service und dem Ticket Granting Service. |
| TGT (Ticket Granting Ticket) | Der Ausweis, den der Benutzer nach der ersten Anmeldung bekommt. Damit fordert er später Diensttickets an, ohne sein Passwort erneut zu nutzen. Mit dem Schlüssel von krbtgt gesichert. |
| TGS (Ticket Granting Service Ticket, Diensticket) | Das Ticket für einen einzelnen Dienst, das der Benutzer mit seinem TGT anfordert. Mit dem Schlüssel des Dienstkontos gesichert. |
| krbtgt | Das Sonderkonto, dessen Passwort-Hash den Schlüssel liefert, mit dem alle TGTs der Domäne gesichert werden. Der wichtigste Schlüssel der ganzen Domäne. |
| SPN (Service Principal Name) | Der eindeutige Name eines Dienstes in der Domäne, unter dem er ansprechbar ist. Der Benutzer fragt ein Diensticket für einen SPN an. |
Der Ticket-Fluss Schritt für Schritt
Der Ablauf hat drei Phasen, und jede erzeugt ein Ereignis auf dem Domain Controller, das in der Referenz zu den Event-IDs steht.
- Vorauthentifizierung und TGT (AS-Exchange). Der Client sendet dem Authentication Service eine Anfrage und beweist seine Identität, indem er einen Zeitstempel mit dem aus seinem Passwort abgeleiteten Schlüssel verschlüsselt (die Vorauthentifizierung). Kann der KDC das entschlüsseln, stimmt das Passwort, und er stellt ein TGT aus, das mit dem krbtgt-Schlüssel gesichert ist. Auf dem Domain Controller entsteht Event 4768.
- Diensticket anfordern (TGS-Exchange). Will der Benutzer einen Dienst nutzen, schickt er sein TGT an den Ticket Granting Service und nennt den SPN des Dienstes. Der KDC prüft das TGT und stellt ein Diensticket aus, das mit dem Schlüssel des Dienstkontos gesichert ist. Auf dem Domain Controller entsteht Event 4769.
- Beim Dienst ausweisen (AP-Exchange). Der Benutzer legt dem Dienst das Diensticket vor. Der Dienst entschlüsselt es mit seinem eigenen Schlüssel und weiß damit, dass der KDC den Benutzer bestätigt hat, ohne selbst beim KDC nachfragen zu müssen. Auf dem Zielsystem entsteht eine Anmeldung, Event 4624.
Der entscheidende Punkt für die Verteidigung: Diese drei Ereignisse gehören normalerweise zusammen. Eine Anmeldung (4624) folgt auf ein Diensticket (4769), das auf ein TGT (4768) folgt. Wenn ein Angreifer Tickets fälscht, fehlen die vorausgehenden Ereignisse, und genau diese Lücke ist die Spur.
Die Sonderrolle von krbtgt
krbtgt ist ein automatisch angelegtes Konto in jeder Domäne, das sich nie anmeldet und dessen Passwort niemand kennt oder braucht. Seine Bedeutung liegt allein in seinem Hash: Aus ihm wird der Schlüssel abgeleitet, mit dem alle TGTs der Domäne gesichert werden. Das macht krbtgt zum wichtigsten Schlüssel überhaupt, denn wer diesen Hash besitzt, kann sich selbst gültige TGTs für beliebige Identitäten ausstellen. Deshalb sind zwei Dinge wahr, die zusammen die halbe Kerberos-Sicherheit erklären. Erstens: Der Diebstahl des krbtgt-Hashes, meist per DCSync, ist das Ende der Domänensicherheit. Zweitens: Weil ein einmal gestohlener Hash dauerhaft gültige Tickets erlaubt, muss das krbtgt-Passwort nach einem Verdacht zweimal zurückgesetzt werden, um beide von Active Directory parallel akzeptierten Versionen zu invalidieren.
Wo die Angriffe ansetzen
Jeder der bekannten Kerberos-Angriffe greift eine bestimmte Stelle des Ablaufs an. Das macht den Ablauf zur Landkarte der Erkennung.
- Kerberoasting setzt am Diensticket an: Der Angreifer fordert massenhaft Diensttickets für Dienstkonten an und knackt deren mit dem Dienstkonto-Schlüssel gesicherten Teil offline, um an das Passwort des Dienstkontos zu kommen. Sichtbar in Event 4769 mit RC4. Details: Kerberoasting erkennen.
- AS-REP-Roasting setzt an der Vorauthentifizierung an: Bei Konten, deren Vorauthentifizierung abgeschaltet ist, liefert der KDC einen mit dem Passwort-Hash gesicherten Teil an jeden, der fragt, und der Angreifer knackt ihn offline. Sichtbar in Event 4768 ohne Vorauthentifizierung. Details: AS-REP-Roasting erkennen.
- DCSync zielt auf den krbtgt-Hash und alle anderen: Der Angreifer gibt sich als Domain Controller aus und fordert per Replikation die Passwort-Hashes an, inklusive krbtgt. Sichtbar in Event 4662 mit Replikationsrechten. Details: DCSync erkennen.
- Golden Ticket fälscht ein TGT mit dem gestohlenen krbtgt-Hash, Silver Ticket fälscht direkt ein Diensticket mit dem Hash eines Dienstkontos. Beide entstehen offline, weshalb die vorausgehenden Ereignisse fehlen. Details: Golden Ticket und Silver Ticket erkennen.
- Pass-the-Hash ist streng genommen ein NTLM-Angriff, nicht Kerberos, aber er verschafft dem Angreifer oft den Zugang, mit dem er die Kerberos-Angriffe erst ausführt. Details: Pass-the-Hash erkennen.
Was das für die Verteidigung bedeutet
Aus dem Ablauf ergeben sich die Grundpfeiler der Kerberos-Verteidigung. Die Überwachung der Kerberos-Ereignisse auf den Domain Controllern (4768, 4769, 4771) ist die Voraussetzung für fast jede der genannten Erkennungen und muss per Gruppenrichtlinie aktiviert sein. AES statt RC4 als Verschlüsselung entzieht dem Roasting einen Teil seiner Grundlage, weil AES deutlich schwerer offline zu knacken ist. Starke, lange Passwörter für Dienstkonten, idealerweise verwaltete Dienstkonten mit automatisch rotierten Passwörtern, machen Kerberoasting wirkungslos. Und der Schutz der privilegierten Konten verhindert, dass der Angreifer überhaupt an den krbtgt-Hash gelangt. Kerberos-Sicherheit ist damit weniger eine Frage einzelner Regeln als des Verständnisses, an welcher Stelle des Ablaufs welche Maßnahme greift. Wie diese Maßnahmen in eine umfassende Active-Directory-Härtung eingebettet sind, steht im eigenen Beitrag.
Fazit
Kerberos ist kein undurchsichtiges Ungeheuer, sondern ein klarer Ablauf: einmal Identität beweisen und ein TGT bekommen, das TGT gegen Diensttickets tauschen, sich mit dem Diensticket beim Dienst ausweisen, alles abgesichert durch den krbtgt-Schlüssel im Hintergrund. Wer diesen Ablauf verstanden hat, versteht auch jede der Erkennungen aus der Serie Angriff erkennen, weil jeder Angriff nur eine bestimmte Stelle des Ablaufs ausnutzt. Für ein Blue Team ist Kerberos deshalb Pflichtwissen: Es ist die gemeinsame Grundlage, auf der die halbe Active-Directory-Verteidigung ruht.