<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks in PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
**IPsec** wird weithin als die Haupttechnologie zur Sicherung von Kommunikationen zwischen Netzwerken (LAN-zu-LAN) und von entfernten Benutzern zum Netzwerkgateway (Remote Access) anerkannt und dient als Grundlage für Unternehmens-VPN-Lösungen.
Die Einrichtung einer **Sicherheitsvereinbarung (SA)** zwischen zwei Punkten wird von **IKE** verwaltet, der unter dem Dach von ISAKMP arbeitet, einem Protokoll, das für die Authentifizierung und den Schlüsselaustausch entwickelt wurde. Dieser Prozess verläuft in mehreren Phasen:
- **Phase 1:** Es wird ein sicherer Kanal zwischen zwei Endpunkten erstellt. Dies wird durch die Verwendung eines Pre-Shared Key (PSK) oder Zertifikate erreicht, wobei entweder der Hauptmodus, der drei Paare von Nachrichten umfasst, oder **aggressiver Modus** verwendet wird.
- **Phase 1.5:** Obwohl nicht obligatorisch, überprüft diese Phase, bekannt als Extended Authentication Phase, die Identität des Benutzers, der versucht, sich zu verbinden, indem ein Benutzername und ein Passwort erforderlich sind.
- **Phase 2:** Diese Phase widmet sich der Verhandlung der Parameter zur Sicherung von Daten mit **ESP** und **AH**. Sie ermöglicht die Verwendung von Algorithmen, die sich von denen in Phase 1 unterscheiden, um **Perfect Forward Secrecy (PFS)** zu gewährleisten und die Sicherheit zu erhöhen.
Die IPSec-Konfiguration kann nur so vorbereitet werden, dass sie eine oder wenige Transformationen akzeptiert. Eine Transformation ist eine Kombination von Werten. **Jede Transformation** enthält eine Anzahl von Attributen wie DES oder 3DES als **Verschlüsselungsalgorithmus**, SHA oder MD5 als **Integritätsalgorithmus**, einen vorab gemeinsam vereinbarten Schlüssel als **Authentifizierungstyp**, Diffie-Hellman 1 oder 2 als Schlüssel-**Verteilungsalgorithmus** und 28800 Sekunden als **Lebensdauer**.
Dann ist das erste, was Sie tun müssen, **eine gültige Transformation zu finden**, damit der Server mit Ihnen kommuniziert. Hierfür können Sie das Tool **ike-scan** verwenden. Standardmäßig arbeitet Ike-scan im Hauptmodus und sendet ein Paket an das Gateway mit einem ISAKMP-Header und einem einzelnen Vorschlag mit **acht Transformationen darin**.
Wie Sie in der vorherigen Antwort sehen können, gibt es ein Feld namens **AUTH** mit dem Wert **PSK**. Dies bedeutet, dass das VPN mit einem vorab freigegebenen Schlüssel konfiguriert ist (und das ist wirklich gut für einen Pentester).\
**Der Wert der letzten Zeile ist ebenfalls sehr wichtig:**
* _**1 zurückgegebener Handshake; 0 zurückgegebene Benachrichtigung:**_ Dies bedeutet, dass das **Ziel für IPsec konfiguriert ist und bereit ist, IKE-Verhandlungen durchzuführen, und dass einer oder mehrere der von Ihnen vorgeschlagenen Transformationen akzeptabel sind** (eine gültige Transformation wird im Output angezeigt).
* _0 zurückgegebener Handshake; 1 zurückgegebene Benachrichtigung:_ VPN-Gateways antworten mit einer Benachrichtigung, wenn **keine der Transformationen akzeptabel ist** (obwohl einige Gateways dies nicht tun, in diesem Fall sollten weitere Analysen und ein überarbeiteter Vorschlag versucht werden).
Dann, in diesem Fall haben wir bereits eine gültige Transformation, aber wenn Sie im 3. Fall sind, müssen Sie **ein wenig Brute-Force anwenden, um eine gültige Transformation zu finden:**
Wenn das Brute-Force nicht funktioniert hat, antwortet der Server möglicherweise auch ohne Handshakes auf gültige Transformationen. In diesem Fall könnten Sie denselben Brute-Force-Vorgang im aggressiven Modus versuchen:
Cisco empfiehlt, die Verwendung der DH-Gruppen 1 und 2 zu vermeiden, da sie nicht stark genug sind. Experten glauben, dass **Länder mit vielen Ressourcen die Verschlüsselung** von Daten, die diese schwachen Gruppen verwenden, leicht brechen können. Dies geschieht durch Verwendung einer speziellen Methode, die sie darauf vorbereitet, die Codes schnell zu knacken. Obwohl es viel Geld kostet, diese Methode einzurichten, ermöglicht es diesen mächtigen Ländern, die verschlüsselten Daten in Echtzeit zu lesen, wenn sie eine Gruppe verwenden, die nicht stark ist (wie 1.024-Bit oder kleiner).
Dann können Sie ike-scan verwenden, um zu versuchen, den **Hersteller** des Geräts zu **entdecken**. Das Tool sendet einen ersten Vorschlag und hört auf, ihn zu wiederholen. Anschließend wird **der Zeitunterschied** zwischen den empfangenen **Nachrichten** vom Server und dem übereinstimmenden Antwortmuster analysiert, damit der Pentester erfolgreich den VPN-Gateway-Hersteller identifizieren kann. Darüber hinaus verwenden einige VPN-Server die optionale **Vendor ID (VID)-Nutzlast** mit IKE.
Um den Hash erfassen zu dürfen, benötigen Sie eine gültige Transformation, die den Aggressive-Modus unterstützt, sowie den richtigen ID (Gruppenname). Wahrscheinlich kennen Sie den gültigen Gruppennamen nicht, daher müssen Sie ihn per Brute-Force ermitteln.\
Wenn **kein Hash zurückgegeben wird**, wird wahrscheinlich diese Methode des Brute-Forcing funktionieren. **Wenn ein Hash zurückgegeben wird, bedeutet dies, dass ein gefälschter Hash für eine gefälschte ID zurückgesendet wird, daher wird diese Methode nicht zuverlässig sein**, um die ID per Brute-Force zu ermitteln. Zum Beispiel könnte ein gefälschter Hash zurückgegeben werden (das passiert in modernen Versionen):
Dieses Skript **wird versuchen, mögliche IDs per Brute-Force zu ermitteln** und wird die IDs zurückgeben, bei denen ein gültiger Handshake erfolgt (dies wird ein gültiger Gruppenname sein).
Wenn Sie eine spezifische Transformation entdeckt haben, fügen Sie sie dem ike-scan-Befehl hinzu. Und wenn Sie mehrere Transformationen entdeckt haben, können Sie gerne eine neue Schleife hinzufügen, um sie alle auszuprobieren (Sie sollten sie alle ausprobieren, bis eine davon ordnungsgemäß funktioniert).
Sie können das [Wörterbuch von ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) oder [das in seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) mit gängigen Gruppennamen verwenden, um sie per Brute-Force zu ermitteln:
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) verwendet auch **ike-scan**, um mögliche Gruppennamen zu bruteforcen. Es folgt seiner eigenen Methode, um **eine gültige ID basierend auf der Ausgabe von ike-scan zu finden**.
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) ist ein Tool, das auch zum **Brute-Forcen von IDs verwendet werden kann**. Dieses Tool wird **versuchen, verschiedene Schwachstellen auszunutzen**, die dazu verwendet werden könnten, **eine gültige von einer nicht gültigen ID zu unterscheiden** (es könnte falsche Positiv- und falsche Negativ-Ergebnisse geben, deshalb ziehe ich es vor, die ike-scan-Methode zu verwenden, wenn möglich).
* Die **erste Methode** besteht darin, die Gruppennamen durch **Suchen** nach Informationen über **Dead Peer Detection DPD** von Cisco-Systemen zu brute-forcen (diese Informationen werden nur vom Server wiedergegeben, wenn der Gruppenname korrekt ist).
* Die **zweite verfügbare Methode** besteht darin, **die Anzahl der Antworten zu überprüfen, die auf jeden Versuch gesendet werden**, da manchmal mehr Pakete gesendet werden, wenn die richtige ID verwendet wird.
* Schließlich, wenn der Server auf die Überprüfungen nicht antwortet, wird **ikeforce** versuchen, den Server zu brute-forcen und überprüfen, ob der Server bei Senden der richtigen ID mit einem Paket antwortet.\
Offensichtlich besteht das Ziel des Brute-Forcens der ID darin, den **PSK** zu erhalten, wenn Sie eine gültige ID haben. Dann müssen Sie mit der **ID** und dem **PSK** das XAUTH brute-forcen (falls es aktiviert ist).
Wenn Sie eine spezifische Transformation entdeckt haben, fügen Sie sie dem ikeforce-Befehl hinzu. Und wenn Sie mehrere Transformationen entdeckt haben, können Sie gerne eine neue Schleife hinzufügen, um sie alle auszuprobieren (Sie sollten sie alle ausprobieren, bis eine davon ordnungsgemäß funktioniert).
(Aus dem Buch **Netzwerksicherheitsbewertung: Kennen Sie Ihr Netzwerk**): Es ist auch möglich, gültige Benutzernamen zu erhalten, indem man die Verbindung zwischen dem VPN-Client und dem Server abhört, da das erste aggressive Modus-Paket, das die Client-ID enthält, im Klartext gesendet wird
Schließlich, wenn Sie eine **gültige Transformation** und den **Gruppennamen** gefunden haben und wenn der **aggressive Modus erlaubt ist**, können Sie den knackbaren Hash sehr einfach abgreifen:
Sie können **psk-crack**, **john** (unter Verwendung von [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py)) und **hashcat** verwenden, um den Hash zu **knacken**:
**Aggressive mode IKE** kombiniert mit einem **Pre-Shared Key (PSK)** wird häufig für **Gruppenauthentifizierungszwecke** eingesetzt. Diese Methode wird durch **XAuth (Extended Authentication)** ergänzt, die eine zusätzliche Schicht der **Benutzerauthentifizierung** einführt. Eine solche Authentifizierung nutzt in der Regel Dienste wie **Microsoft Active Directory**, **RADIUS** oder vergleichbare Systeme.
Bei der Umstellung auf **IKEv2** wird eine bemerkenswerte Verschiebung festgestellt, bei der **EAP (Extensible Authentication Protocol)** anstelle von **XAuth** zur Authentifizierung von Benutzern verwendet wird. Diese Änderung verdeutlicht eine Entwicklung in den Authentifizierungspraktiken innerhalb sicherer Kommunikationsprotokolle.
So können Sie die Daten des Logins mit _fiked_ erfassen und prüfen, ob ein Standardbenutzername vorhanden ist (Sie müssen den IKE-Verkehr zur `fiked` zur Überwachung umleiten, was mit Hilfe von ARP-Spoofing erfolgen kann, [weitere Informationen](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked wird als VPN-Endpunkt fungieren und die XAuth-Anmeldeinformationen erfassen:
Um einen MitM-Angriff durchzuführen und den gesamten Datenverkehr auf Port 500 zu blockieren, können Sie IPSec verwenden. Wenn der IPSec-Tunnel nicht hergestellt werden kann, wird der Datenverkehr möglicherweise im Klartext gesendet.
Um das **XAUTH**-Passwort (wenn Sie einen gültigen Gruppennamen **id** und den **psk** kennen) zu brute-forcen, können Sie einen Benutzernamen oder eine Liste von Benutzernamen sowie eine Liste von Passwörtern verwenden:
In Kali wird **VPNC** verwendet, um IPsec-Tunnel herzustellen. Die **Profile** müssen sich im Verzeichnis `/etc/vpnc/` befinden. Sie können diese Profile mit dem Befehl _**vpnc**_ initiieren.
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositorys einreichen.