Mimikatz ist ein Open-Source-Windows-Dienstprogramm, das auf GitHub zum Download bereitsteht. Mimikatz wurde erstmals 2007 entwickelt, um eine praktische Ausnutzung des Microsoft Windows Local Security Authority Subsystem Service (LSASS) zu demonstrieren, und ist in der Lage, Anmeldeinformationen von Konten, einschließlich im Systemspeicher gespeicherter Klartextpasswörter, auszulesen.
Mimikatz – französisch für „süße Katze“ – ist ein Post-Exploitation-Tool, das Angreifern – egal ob Black-Hat-Hackern, Red-Team-Hackern oder Penetrationstestern – dabei helfen soll, Login-IDs, Passwörter und Authentifizierungs-Tokens aus gehackten Systemen zu extrahieren, um ihre Privilegien zu erhöhen und mehr Zugriff auf Systeme in einem angegriffenen Netzwerk zu erhalten.
Dieses Mimikatz-Tutorial bietet eine Einführung in das Credential-Hacking-Tool, die Funktionsweise von Mimikatz und die Verwendung von Mimikatz zum Extrahieren von Anmeldekennwörtern von einem Zielsystem.
Hacker verwenden Mimikatz, um ihre Präsenz in Opfernetzwerken auszuweiten, indem sie Schlüssel extrahieren und verwenden, die möglicherweise auf anderen Systemen wiederverwendet wurden, oder indem sie Schlüssel von Konten mit erhöhten Privilegien extrahieren, wie z. B. die von Administratoren verwendeten.
Benjamin Delpy, der französische Informationssicherheitsforscher, der Mimikatz entwickelt hat, schrieb auf der GitHub-Seite von Mimikatz, dass die Software verwendet werden kann, um „Klartext-Passwörter, Hash, PIN-Code und Kerberos-Tickets aus dem Speicher zu extrahieren“ oder um „Pass-the-Hash, Pass-the-Ticket oder Goldene Tickets zu erstellen.“ Mimikatz-Angriffe nutzen Standard-Windows-Authentifizierungsschemata sowie die Kerberos-Authentifizierung aus.
Diese Fähigkeiten machen Mimikatz zu einem unverzichtbaren Werkzeug für Angreifer: Das Mitre ATT&CK-Framework identifiziert mindestens 20 verschiedene Advanced Persistent Threat Groups, die mit Mimikatz entdeckt wurden. Mimikatz ist jedoch auch ein wichtiges Werkzeug für Verteidiger, insbesondere für diejenigen, die Penetrationstests oder Red-Team-Übungen durchführen, um zu demonstrieren, wie gut – oder wie schlecht – eine Organisation in der Lage ist, sich gegen solche Angriffe zu verteidigen.
Einführen: Wie man Mimikatz herunterlädt und zum Laufen bringt
Der beste Ort, um Mimikatz zu bekommen, ist die Mimikatz-GitHub-Projektseite, wo man den Mimikatz-Quellcode herunterladen kann. Vorkompilierte Binärdateien für Windows sind ebenfalls auf der Mimikatz-GitHub-Seite verfügbar.
Wenn Sie sich für den Download des Mimikatz-Quellcodes entscheiden, müssen Sie den Code mit Microsoft Visual Studio kompilieren. Das Herunterladen einer beliebigen Version von Mimikatz, entweder des Quellcodes oder der vorkompilierten Binärdateien, kann eine Herausforderung darstellen, da moderne Browser und Betriebssysteme Mimikatz als gefährlich einstufen und das Herunterladen blockieren. Viele Sicherheitsprodukte für Endgeräte – einschließlich Microsofts Windows Defender – blockieren Mimikatz, da die Software häufig für Angriffe verwendet wird.
Eine Möglichkeit, die Blockierung durch Antimalware zu umgehen, ist die Verwendung des PowerShell-Moduls Invoke-Mimikatz, mit dem ein Angreifer, der PowerShell, das Aufgabenautomatisierungs-Framework von Microsoft, ausführt, Mimikatz aus der Ferne laden und ausführen kann, ohne die ausführbare Datei auf die Festplatte des Zielsystems schreiben zu müssen.
Für was ist Mimikatz gut?
Mimikatz kann eine Menge, und seine modulare Struktur bedeutet, dass der Plattform relativ einfach neue Features und Funktionen hinzugefügt werden können. Wie bereits erwähnt, wird Mimikatz durch die Ausführung als PowerShell-Modul zu einer noch effektiveren Angriffstechnik.
Die wichtigsten Funktionen, die Mimikatz ermöglicht, sind:
- Extrahieren von Kennwörtern aus dem Speicher. Wenn Mimikatz mit Admin- oder Systemprivilegien ausgeführt wird, können Angreifer Klartext-Authentifizierungstoken – beispielsweise Passwörter und PINs – aus dem im Systemspeicher laufenden LSASS-Prozess extrahieren.
- Extrahieren von Kerberos-Tickets. Mit einem Kerberos-Modul kann Mimikatz auf die Kerberos-API zugreifen und so eine Reihe verschiedener Kerberos-Exploits ermöglichen, die Kerberos-Tickets verwenden, die aus dem Systemspeicher extrahiert wurden.
- Extrahieren von Zertifikaten und deren privaten Schlüsseln. Ein Windows CryptoAPI-Modul ermöglicht es Mimikatz, Zertifikate – und die mit ihnen verbundenen privaten Schlüssel – zu extrahieren, die auf dem Opfersystem gespeichert sind.
Mimikatz wird noch leistungsfähiger, wenn es mit anderen Angriffsplattformen wie dem Microsoft PowerShell-Dienstprogramm, der Metasploit-Plattform oder anderen Tools kombiniert wird, die es Hackern ermöglichen, die Anmeldeinformationen auszunutzen, die Mimikatz aus den Opfersystemen extrahiert.
Hands-On-Tutorial: Mimikatz-Setup und Befehle
Ob Sie Mimikatz von einer auf einem Opfersystem ausgeführten Datei aus ausführen oder ein Dienstprogramm wie PowerShell aus der Ferne ausführen, können Befehle manuell über eine Konsolenbefehlszeile oder durch Ausführen eines Skripts zur automatischen Ausführung ausgeführt werden.
Das Standardformat für die Eingabe von Befehlen ist die Eingabe des Befehlsmoduls gefolgt von zwei Doppelpunkten und dem Befehlsnamen. Sie können mehrere Befehle gleichzeitig eingeben, aber alle Befehle, die Leerzeichen enthalten, müssen durch Anführungszeichen abgetrennt werden.
Die Befehlssitzung beginnt nach der Ausführung von Mimikatz wie folgt:
mimikatz #
Um Mimikatz zu beenden, geben Sie den Befehl exit ein.
Der Prozess des Extrahierens von Klartextpasswörtern beginnt mit dem Aufruf des Debug-Befehls aus dem Berechtigungsmodul. Dieser Befehl erhöht die Berechtigungen für Mimikatz, um auf die Debug-Privilegstufe zu gelangen, und sieht wie folgt aus:
mimikatz # privilege::debug
Privileg ’20‘ OK
Um ein Protokoll der Mimikatz-Interaktionen und -Ergebnisse aufzuzeichnen, geben Sie ein:
mimikatz # log
Verwendung von ‚mimikatz.log‘ für Logdatei: OK
Die Standard-Logdatei ist mimikatz.log, aber Sie können einen anderen Logdateinamen mit einem Befehl angeben. Zum Beispiel:
mimikatz # log customlogfilename.log
Wenn die Protokollierung eingeschaltet ist, wird der Rest der Sitzung zu Exfiltrations- oder Analysezwecken aufgezeichnet.
Der vielleicht einfachste und produktivste Befehl ist der, der Klartext-Passwörter extrahiert, sie auf dem Konsolenbildschirm auflistet und sie in die Protokolldatei schreibt.
mimikatz # sekurlsa::logonpasswords
Der Befehl logonpasswords extrahiert die Benutzer-ID und das Passwort für aktuell angemeldete und kürzlich angemeldete Benutzer des Zielsystems.
Das sekurlsa-Modul enthält weitere Befehle zum Extrahieren von Kerberos-Anmeldeinformationen und Verschlüsselungsschlüsseln und kann sogar einen Pass-the-Hash-Angriff mit den von Mimikatz extrahierten Anmeldeinformationen durchführen.
Dieses Mimikatz-Tutorial ist als Einführung in das Hacking-Tool gedacht. Es ist wissenswert, wie Mimikatz in der Praxis funktioniert und wie einfach es System-Exploits auch für unbedarfte Angreifer macht.