NTLM
NTLM
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.
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.
Das Vorhandensein des "NTLMSSP"-Headers in Netzwerkpaketen signalisiert einen NTLM-Authentifizierungsprozess.
Die Unterstützung der Authentifizierungsprotokolle - LM, NTLMv1 und NTLMv2 - wird durch eine spezifische DLL erleichtert, die sich unter %windir%\Windows\System32\msv1\_0.dll
befindet.
Hauptpunkte:
LM-Hashes sind anfällig und ein leerer LM-Hash (
AAD3B435B51404EEAAD3B435B51404EE
) zeigt an, dass er nicht verwendet wird.Kerberos ist die Standardauthentifizierungsmethode, wobei NTLM nur unter bestimmten Bedingungen verwendet wird.
NTLM-Authentifizierungspakete sind am "NTLMSSP"-Header erkennbar.
Die Protokolle LM, NTLMv1 und NTLMv2 werden von der Systemdatei
msv1\_0.dll
unterstützt.
LM, NTLMv1 und NTLMv2
Sie können überprüfen und konfigurieren, welches Protokoll verwendet wird:
GUI
Führen Sie secpol.msc aus -> Lokale Richtlinien -> Sicherheitsoptionen -> Netzwerksicherheit: LAN-Manager-Authentifizierungsstufe. Es gibt 6 Stufen (von 0 bis 5).
Registrierung
Dies wird die Stufe 5 setzen:
Mögliche Werte:
Grundlegendes NTLM-Domänenauthentifizierungsschema
Der Benutzer gibt seine Anmeldeinformationen ein.
Die Client-Maschine sendet eine Authentifizierungsanforderung, indem sie den Domänennamen und den Benutzernamen sendet.
Der Server sendet die Herausforderung.
Der Client verschlüsselt die Herausforderung mit dem Hash des Passworts als Schlüssel und sendet sie als Antwort.
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.
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).
Lokales NTLM-Authentifizierungsschema
Die Authentifizierung erfolgt wie zuvor erwähnt, aber der Server kennt den Hash des Benutzers, der versucht, sich im SAM-Datei zu authentifizieren. Anstatt den Domänencontroller zu fragen, überprüft der Server selbst, ob der Benutzer sich authentifizieren kann.
NTLMv1-Herausforderung
Die Herausforderungslänge beträgt 8 Bytes 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.
Probleme:
Mangel an Zufälligkeit
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.
NTLMv1-Angriff
Heutzutage ist es immer seltener, Umgebungen mit konfigurierter Unconstrained Delegation zu finden, aber das bedeutet nicht, dass Sie nicht einen Druckwarteschlangendienst missbrauchen können, der konfiguriert ist.
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.
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), also können Sie mit speziellen Diensten zum Knacken von DES den Hash knacken (Sie könnten z.B. https://crack.sh/ verwenden).
NTLMv1-Angriff mit hashcat
NTLMv1 kann auch mit dem NTLMv1 Multi Tool https://github.com/evilmog/ntlmv1-multi gebrochen werden, das NTLMv1-Nachrichten in einem Format formatiert, das mit hashcat geknackt werden kann.
Der Befehl
NTLM Relay Attack
Overview
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.
Angriffsdetails
Der Angreifer fängt den NTLM-Authentifizierungsverkehr des Opfers ab.
Der Angreifer leitet die Authentifizierung an einen anderen Server weiter.
Der Server akzeptiert die Weiterleitung und authentifiziert den Angreifer.
Der Angreifer erhält Zugriff auf Ressourcen des Opfers.
Gegenmaßnahmen
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.
NTLM Relay Attack
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.
How it works
The attacker intercepts the NTLM authentication request from the client.
The attacker relays the request to another server within the network.
The server processes the authentication request, believing it is coming from the original client.
If successful, the attacker gains unauthorized access to the server using the intercepted 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.
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.
Führen Sie hashcat aus (am besten verteilt über ein Tool wie hashtopolis), da dies ansonsten mehrere Tage dauern wird.
In diesem Fall wissen wir, dass das Passwort dazu "password" ist, also werden wir für Demonstrationszwecke betrügen:
Wir müssen nun die Hashcat-Utilities verwenden, um die geknackten DES-Schlüssel in Teile des NTLM-Hashes umzuwandeln:
Abschließend
Hier ist der letzte Teil:
Windows Hardening: NTLM
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.
Mitigations
To mitigate Pass-the-Hash attacks, consider implementing the following measures:
Use NTLMv2: NTLMv2 is more secure than NTLM and is resistant to Pass-the-Hash attacks.
Enforce SMB Signing: Enabling SMB signing can prevent attackers from relaying NTLM authentication attempts.
Restrict NTLM: Limit the use of NTLM within your network and prioritize more secure authentication protocols like Kerberos.
By following these mitigations, you can reduce the risk of Pass-the-Hash attacks and enhance the overall security of your Windows environment.
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 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 zweite Antwort wird unter Verwendung von mehreren Werten erstellt (eine neue Client-Challenge, ein Zeitstempel zur Vermeidung von Wiederholungsangriffen...).
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/
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.
Bitte denken Sie daran, dass Sie Pass-the-Hash-Angriffe auch unter Verwendung von Computerkonten durchführen können.
Mimikatz
Muss als Administrator ausgeführt werden
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).
Pass-the-Hash von Linux aus
Sie können Codeausführung in Windows-Maschinen unter Verwendung von Pass-the-Hash von Linux aus erlangen. Hier erfahren Sie, wie es geht.
Impacket Windows kompilierte Tools
Sie können Impacket-Binärdateien für Windows hier herunterladen.
psexec_windows.exe
C:\AD\MyTools\psexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.my.domain.local
wmiexec.exe
wmiexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local
atexec.exe (In diesem Fall müssen Sie einen Befehl angeben, cmd.exe und powershell.exe sind nicht gültig, um eine interaktive Shell zu erhalten)
C:\AD\MyTools\atexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local 'whoami'
Es gibt noch mehr Impacket-Binärdateien...
Invoke-TheHash
Sie können die Powershell-Skripte von hier erhalten: https://github.com/Kevin-Robertson/Invoke-TheHash
Invoke-SMBExec
Invoke-WMIExec
Aufrufen von WMIExec
Invoke-SMBClient
Aufrufen von SMBClient
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.
Invoke-TheHash
Diese Funktion ist eine Mischung aus allen anderen. Sie können mehrere Hosts übergeben, einige ausschließen und die Option auswählen, die Sie verwenden möchten (SMBExec, WMIExec, SMBClient, SMBEnum). Wenn Sie SMBExec und WMIExec auswählen, aber keinen Befehls-Parameter angeben, wird nur überprüft, ob Sie ausreichende Berechtigungen haben.
Windows-Anmeldeinformations-Editor (WCE)
Muss als Administrator ausgeführt werden
Dieses Tool wird dasselbe wie mimikatz tun (LSASS-Speicher modifizieren).
Manuelle Windows-Remoteausführung mit Benutzername und Passwort
pageLateral MovementExtrahieren von Anmeldeinformationen von einem Windows-Host
Für weitere Informationen darüber, wie Sie Anmeldeinformationen von einem Windows-Host erhalten können, sollten Sie diese Seite lesen:
how to obtain credentials from a Windows host you should read this page
NTLM-Relay und Responder
Lesen Sie hier eine ausführlichere Anleitung, wie Sie diese Angriffe durchführen können:
pageSpoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay AttacksAnalysieren von NTLM-Herausforderungen aus einem Netzwerkcapture
Sie können https://github.com/mlgualtieri/NTLMRawUnHide verwenden
Last updated