Wir analysieren Angriffe auf Kerberos mit Rubeus. Teil 2





Hallo!



Dies ist der zweite Teil des Artikels über die Funktionen des Kerberos-Protokollangriffstools Rubeus. Der erste kann hier gelesen werden . Dieses Mal werden wir uns ansehen, wie mit diesem Tool die folgenden Angriffe implementiert werden können:




  • Übergeben Sie den Hash / Übergeben Sie den Schlüssel (PTK);
  • Übergeben Sie das Ticket;
  • Uneingeschränkte Delegation;
  • Eingeschränkte Delegation.


Es wurde bereits viel darüber geschrieben, warum diese Angriffe möglich sind, welche Mechanismen ihrer Implementierung existieren, welches Prinzip der Arbeit von Kerberos zugrunde liegt (zum Beispiel haben Kollegen von Jet Infosystems einen guten Artikel mit Analyse veröffentlicht ), daher werde ich mich in meinem Artikel auf die Implementierung von Angriffen mit konzentrieren mit Rubeus.



Zusätzlich zu den „Aktionen“ für Angriffe und Interaktionen mit Kerberos hat Rubeus eine kleine angenehme Kleinigkeit: Basierend auf dem Passwort im Klartext kann es den NTLM-Hash berechnen, was manchmal sehr praktisch und nützlich ist.







Damit ist ein kleiner lyrischer Exkurs abgeschlossen. Kehren wir zum Hauptteil zurück.

Der Prüfstand für die Durchführung von Angriffen ist seit der Veröffentlichung des ersten Teils des Artikels unverändert geblieben .



Übergeben Sie den Hash / Übergeben Sie den Schlüssel (PTK)







Pass-the-hash — . , NTLM LM.

Aber was soll ich tun, wenn die NTLM- oder LM-Authentifizierung im Netzwerk deaktiviert ist und nur die Kerberos-Authentifizierung verwendet wird und Sie einen Kennwort-Hash haben? Hier kommt Overpass-the-Hash ins Spiel - mit dem Passwort-Hash des Benutzers kann Rubeus eine TGT für dieses Konto anfordern.



Hier ist ein Domain-Benutzer, den Barsik beschlossen hat, Fragen der Informationssicherheit zu untersuchen. Irgendwo hat er einen Hash des ADadmin-Domain-Administratorkennworts erhalten, Rubeus heruntergeladen, intelligente Artikel gelesen und versucht, es in die Praxis umzusetzen.







Wir sehen, dass er keine zwischengespeicherten Tickets sowie keinen Zugriff auf den Domänencontroller hat DC-16.meow.local, aber dann startet Barsik Rubeus mit einer "Aktion" asktgtund Argumenten /domain, /user, /rc4, /ptt, um ein gültiges TGT-Ticket basierend auf dem Hash des ADadmin-Kontokennworts zu erhalten/pttlädt das empfangene Ticket sofort in die aktuelle Sitzung des Barsik-Benutzers hoch.







Das Ticket wird empfangen und geladen. Barsik versucht erneut, sich als Adadmin beim Domänencontroller anzumelden.







Und diesmal macht er es erfolgreich.



Pass The Ticket (PTT)



Dieser Angriff ähnelt dem Überholen des Hash / Übergeben des Schlüssels. Der Angreifer versucht, das Ticket eines Domänenbenutzers (vorzugsweise mit maximalen Berechtigungen in der Domäne) abzurufen und in die aktuelle Sitzung zu laden. Eine Möglichkeit, TGT-Tickets zu erhalten, besteht darin, Tickets lokal auf dem aktuellen Domänencomputer vom Prozess lsass.exe(Local Security Authentication Server) zu sichern. Dazu müssen Sie über lokale Administratorrechte oder NT AUTHORITY / SYSTEM verfügen. Rubeus kann in lsass gespeicherte Tickets mit der Dump-Aktion sichern, und die Triage-Aktion zeigt an, welche Tickets derzeit im System gespeichert sind.











Rubeus entlädt Tickets aus dem lsassverschlüsselten base64, während das Tool selbst einen Hinweis zum Speichern des empfangenen base64Tickets enthält .kirbi.







Speichern und importieren Sie das Ticket in die aktuelle Benutzersitzung.







Wie Sie dem Screenshot entnehmen können, wurde das ADadmin-Ticket erfolgreich geladen, und wir können den Inhalt des Laufwerks C auf dem Domänencontroller DC-16.meow.local im Auftrag von ADadmin anzeigen.



Uneingeschränkte Delegation



Die uneingeschränkte Delegierung ist ein Domänenprivileg, das Benutzer- oder Computerkonten gewährt werden kann. Es ermöglicht einem Konto, sich im Namen eines anderen Kontos bei einem Dienst im Netzwerk zu authentifizieren.



Jetzt ist es an der Zeit, den Prüfstand ein wenig zu optimieren und die uneingeschränkte Delegierung zu aktivieren: Geben wir das Privileg der uneingeschränkten Delegierung an den BARSCOMP-Computer.







Eine der Phasen zum Testen der Sicherheit einer Active Directory-Domäne besteht darin, nach Konten mit aktivierter Delegierung zu suchen. In der Regel wird Powerview für diesen Zweck verwendet . Sie können das Standardmodul ActiveDirectory jedoch auch manuell verwenden.







Um diesen Angriff auszuführen, werde ich den Druckerfehler verwendenDies wurde ausführlich von Lee Christensen von SpectreOps beschrieben. Jeder authentifizierte Benutzer kann eine Remoteverbindung zum Druckserver des Domänencontrollers herstellen und ein Update für neue Druckaufträge anfordern, indem er ihn auffordert, eine Benachrichtigung an ein uneingeschränktes Delegierungskonto zu senden. Lee Christensen hat eine Anwendung namens SpoolSample geschrieben , die über das MS-RPRN-Protokoll auf den CD-Druckdienst zugreift.



Auf dem Computer, von dem aus der Angriff ausgeführt wird (BARSCOMP.meow.local), muss Rubeus im Überwachungsmodus mit der "Aktion" ausgeführt werden monitoring. Dieser Modus erfordert NT ATHORITY / SYSTEM-Berechtigungen und wartet im lsass-Prozess auf neue TGT / TGS-Tickets. Ich werde mit einem Argument /interval:1(in Sekunden) das Intervall für die Abfrage von lsass nach neuen Tickets und mit einem Argument festlegen/filteruser:DC-16$Ich werde den Filter so einstellen, dass nur DC-16 $ Benutzertickets angezeigt werden.







Rubeus wird ausgeführt. Parallel dazu führe ich in einer anderen Sitzung SpoolSample.exe mit den Argumenten dc-16.meow.local(angegriffener Computer) und barscomp.meow.local(unserem " abhörenden " Host) aus.







Mal sehen, was Rubeus „überwacht“ hat.







Ein TGT Domain Controller Account Ticket wurde gefangen. Jetzt können Sie mit dem bereits bekannten Pass-the-Ticket-Angriff ein Ticket importieren und mit mimikatz einen DCSync-Angriff ausführen, um den NTLM-Hash des krbtgt-Kontos abzurufen (und wie Sie bereits aus dem ersten Teil des Artikels wissen, kann der Hash dieses Kontos zum Erstellen verwendet werden Goldenes Ticket und vollständige AD-Domain-Erfassung).





Bitte beachten Sie, dass Rubeus Tickets sowohl in Form einer .kirbi-Datei als auch in einer Base64-codierten Zeichenfolge versteht.

Eingeschränkte Delegation



Wenn es einem Angreifer gelingt, einen Benutzer oder ein Computerkonto zu gefährden, für das die eingeschränkte Delegierung aktiviert ist, kann er sich als ein beliebiger Domänenbenutzer ausgeben und sich bei dem Dienst authentifizieren, für den die Delegierung zulässig ist.



Erstellen Sie ein neues Domänenbenutzer-Backup mit dem Kennwort B @ ckup1234, und weisen Sie ihm einen SPN für den cifs-Dienst auf dem Domänencontroller zu.







Jetzt können Sie die Fähigkeit zur Delegierung der Dienste ldap und cifs auf dem Domänencontroller DC-16.meow.local für dieses Konto festlegen.







Konten, für die eine eingeschränkte Delegierung zulässig ist, können auch mithilfe von Powerview oder dem ActiveDirectory-Modul identifiziert werden.







Wenn Sie das Kennwort oder den NTLM-Hash des Kontos meow.local \ Backup kennen und Rubeus verwenden, können Sie ein TGT-Ticket dafür anfordern.







Mit der "Aktion" s4u in Rubeus können Sie jetzt TGS für einen Benutzer anfordern, dem die Authentifizierung für den Dienst cifs \ dc-16.meow.local gestattet ist (z. B. den ADadmin-Domänenadministrator).







Hier gebe ich das zuvor erhaltene Backup-Account-Ticket an; / imersonateuser - der Benutzer, dessen Rechte ich erhalten möchte; / domain - die Domäne, in der alles passiert; / msdsspn / asltservice - ein Dienst, der TGS benötigt; / ptt - importiert das empfangene Ticket sofort in die aktuelle Sitzung. Folgendes



passiert in Rubeus:







Hier sehen Sie, dass bei begrenzter Delegierung zwei Kerberos-Erweiterungen enthalten sind: S4U2self und S4U2proxy.



Mit S4U2self können Service-Principals im Namen eines bestimmten Benutzers ein spezielles FORWARDABLE TGS anfordern. Dies ist erforderlich, damit dieses Ticket später von der S4U2proxy-Erweiterung verwendet werden kann.



Mit S4U2proxy kann der Anrufer dieses spezielle Ticket verwenden, um das TGS des Benutzers für einen Dienst anzufordern, für den eine Delegierung zulässig ist (in diesem Fall cifs \ dc-16.meow.local). Mehr dazu lesen Sie hier und hier .



Zu diesem Zeitpunkt hat Rubeus das endgültige Ticket bereits erhalten und in die aktuelle Sitzung importiert.







Mal sehen, ob wir das Laufwerk C auf dem Domänencontroller mit dem empfangenen Ticket sehen können.







Ja, alles ist gut gelaufen.



Damit ist meine Überprüfung dieses Tools abgeschlossen. Im Allgemeinen hat es mir gefallen, schön und einfach zu bedienen, mit guter Funktionalität. Ich hoffe, dass Sie diese Artikel nach dem Lesen in Betrieb nehmen.



Vielen Dank für Ihre Aufmerksamkeit, alle sind gut, nicht krank werden!



All Articles