Port 88: Kerberos

Was ein offener Kerberos-Port über eine Active-Directory-Umgebung verrät, bevor überhaupt ein gültiges Credential vorliegt.

Port 88/TCP und UDP bedeutet mit hoher Zuverlässigkeit: hier läuft ein Domain Controller. Kerberos ist in Active-Directory-Umgebungen das primäre Authentifizierungsprotokoll, und anders als viele andere Dienste lässt es sich in Teilen sogar ganz ohne gültige Credentials sondieren.

Was vor jeder Authentifizierung möglich ist

Der auffälligste Punkt: Kerberos erlaubt User-Enumeration ohne ein einziges gültiges Passwort, allein über das Protokollverhalten bei AS-REQ-Anfragen.

kerbrute userenum --dc 10.10.11.5 -d corp.local userlist.txt

Fragt man nach einem existierenden Benutzernamen, antwortet der KDC (Key Distribution Center) anders als bei einem nicht existierenden: Bei einem gültigen Benutzernamen kommt entweder ein AS-REP (wenn Pre-Authentication nicht erforderlich ist, siehe unten) oder ein KRB5KDC_ERR_PREAUTH_REQUIRED. Bei einem ungültigen Namen antwortet der KDC mit KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN. Dieser Unterschied allein reicht für eine vollständige Enumeration gültiger Domain-Benutzernamen, Monate vor dem ersten kompromittierten Account.

Pre-Authentication als zweiter Hebel

Accounts mit deaktivierter Kerberos-Pre-Authentication (Do not require Kerberos preauthentication in den Account-Eigenschaften) liefern direkt ein verschlüsseltes AS-REP, ohne dass vorher ein Passwort nötig war. Dieses AS-REP lässt sich offline gegen das Benutzerpasswort crackbar machen, eine eigene Technik (AS-REP Roasting), die eng mit dem Kerberoasting-Artikel dieser Reihe verwandt ist, dort aber gegen Service- statt Benutzerkonten.

Warum das für die weitere Vorgehensweise zählt

Sobald irgendein gültiges Domain-Credential vorliegt, egal wie niedrigprivilegiert, öffnet Kerberos die Tür zu Kerberoasting: jeder Domain-User darf Service-Tickets für beliebige Dienste im Verzeichnis anfordern, auch ohne jemals Zugriff auf diesen Dienst zu haben. Tools wie NetExec bauen genau auf dieser Eigenschaft auf, um mit einem einzigen gültigen Credential sehr schnell einen Überblick über die gesamte Domäne zu bekommen.

Hardening-Tipp

User-Enumeration über Kerberos lässt sich nicht vollständig verhindern, das Protokoll ist darauf angewiesen, Benutzer zu identifizieren. Was zählt, ist die zweite Ebene: Pre-Authentication für alle Accounts erzwingen, AS-REP-Roasting-Kandidaten (Pre-Auth deaktiviert) regelmäßig auditieren, und ungewöhnlich viele KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN-Antworten in kurzer Zeit als Enumeration-Indikator im SIEM werten.

#kerberos#port-88#active-directory