
Weiterleiten von Zertifikatdiensten
Celia CatalánAktie
Nachdem wir die Authentifizierung erzwungen und den NetNTLM-Hash des Passworts des Computerbenutzers des Opfers erhalten haben, werden uns verschiedene Ausnutzungsszenarien präsentiert, die wir in verschiedenen Blogeinträgen diskutieren werden.
Als nächstes sprechen wir über Certificate Service Relaying anhand eines praktischen Beispiels in einem Prüflabor.
In diesem ersten Fall besteht der Angriff darin, die durch eine „Zwangsauthentifizierung“ erfassten Anmeldeinformationen wiederzuverwenden, um sich in einem falsch konfigurierten ADCS (Active Directory Certificate Service) zu authentifizieren (was standardmäßig der Fall ist), um die Berechtigungen in der Domäne zu erweitern.
Im Folgenden sind einige der Bedingungen aufgeführt, die erfüllt sein müssen, um diesen Angriff durchzuführen:
- Das ADCS muss so konfiguriert sein, dass es NTLM-Authentifizierungen akzeptiert.
- Die NTLM-Authentifizierung ist nicht EPA-geschützt oder SMB-signiert.
- Das ADCS führt einen der folgenden Dienste aus:
- Webdienst für Zertifikatsregistrierungsrichtlinien.
- Webdienst zur Zertifikatsregistrierung.
Zusammenfassung
Der Ausnutzungsprozess dieses Angriffs wird im Folgenden ausführlich erläutert:
1. Erhalten Sie Zugriff auf ein Netzwerk, das mit Active Directory und einer falsch konfigurierten ADCS-Instanz konfiguriert ist. Bei bestimmten Zwangsangriffen muss auch ein Domänenbenutzer kompromittiert werden, unabhängig von seinen Privilegien.
2. Konfigurieren Sie die Abhörsoftware auf einem vom Angreifer kontrollierten Computer, um die NTLM-Authentifizierung für die falsch konfigurierte ADCS-Instanz wiederzuverwenden.
3. Erzwingen Sie die Authentifizierung des Domänencontrollers (jede „Coerce Authentication“-Schwachstelle) gegenüber dem vom Angreifer kontrollierten Computer mit der Software, um die NTLM-Authentifizierung wiederzuverwenden.
4. Der Domänencontroller authentifiziert sich auf dem vom Angreifer kontrollierten Computer.
5. Die vom Computerbenutzer des Domänencontrollers erhaltenen Anmeldeinformationen werden zur Authentifizierung beim ADCS wiederverwendet.
6. Das ADCS stellt dem Benutzer des Domänencontroller-Computers ein Zertifikat aus.
7. Mithilfe des im vorherigen Schritt erhaltenen Zertifikats wird ein Kerberos TGT-Ticket angefordert.
8. Verwenden Sie das TGT-Ticket des Computerbenutzers des Domänencontrollers, um das TGS eines beliebigen Benutzers anzufordern, oder führen Sie eine DCSync durch, um das NTDS der Domäne abzurufen.
Testlaborkomponenten
Im Folgenden beschreiben wir kurz die im Prüflabor gefundenen Vermögenswerte:
- Attack_Machine – Diese Maschine bezieht sich auf ein Kali-Linux, von dem aus wir den Angriff durchführen, um eine „Authentifizierung erzwingen“ zu erhalten und die Software auf die Wiederverwendung der Authentifizierung warten zu lassen.
- DC.corp.lab – Domänencontroller mit der konfigurierten Domäne „corp.lab“, der Opfer des Angriffs wird. Ein Benutzer namens „Bob“ wird in dieser Domäne ohne Berechtigungen konfiguriert, um den Angriff aus seiner Kompromittierung nachzuahmen.
- CA.corp.lab – Zertifizierungsstelle innerhalb der Domäne „corp.lab“.
- Windows10 – Computer mit Windows-Betriebssystem, der zuvor vom Angreifer kompromittiert wurde, innerhalb der Domäne „corp.lab“.
Installieren einer bestimmten Version von impacket
Um diesen Angriff zu entwickeln, muss eine bestimmte Version von impacket installiert sein, die entwickelt wurde, um die gegen das ADCS erhaltene NTLM-Authentifizierung wiederverwenden zu können. Dazu führen wir die folgenden Schritte aus:
- Installieren Sie das Paket für virtuelle Python-Umgebungen:
sudo apt installiere python3-venv
- Laden Sie die benötigte Impacket -Version herunter und überprüfen Sie sie.
Git-Klon https://github.com/ExAndroidDev/impacket.git
CD-Impacket
git checkout ntlmrelayx-adcs-angriff
- Erstellen Sie eine neue virtuelle Umgebung und installieren Sie Impacket-Abhängigkeiten