📕 Немного теории
🔺LSASS (Local Security Authority Subsystem Service) — системный сервис в Windows, который отвечает за проверку пользователей при входе, хранение и выдачу токенов, управление политиками безопасности и т. п.
Соответственно, в случае создания дампа LSASS, злоумышленники получают хэши паролей пользователей или даже пароли в открытом виде, токены и сессионные ключи, которые можно использовать для перехвата сессий;
🔺Дескриптор — ссылка или ключ, который операционная система даёт процессу, чтобы тот мог работать с каким-то объектом: файлом, сокетом, процессом, памятью. Дескриптор к процессу позволяет читать/писать его память, запускать действия от его имени.
Злоумышленники часто пытаются получить или скопировать дескриптор, который имеет нужные привилегии к LSASS, чтобы затем получить доступ к его памяти — без того чтобы напрямую запрашивать у системы высокие права.
Функции инструмента
1️⃣Разветвление процесса
Чтобы избежать открытия дескриптора LSASS с доступом PROCESS_VM_READ, можно использовать параметр --fork. В таком случае nanodump создаст дескриптор LSASS с доступом PROCESS_CREATE_PROCESS, а затем клонирует процесс. Далее у нового процесса будет снят дамп.
2️⃣Снимок процесса
Аналогично опции --fork, можно использовать --snapshot для создания снимка процесса LSASS с дескриптором доступа PROCESS_CREATE_PROCESS, затем будет создан снимок процесса с помощью PssNtCaptureSnapshot. Снимок будет автоматически освобождён после завершения.
3️⃣Дублирование дескриптора
Поскольку открытие дескриптора LSASS может быть обнаружено, nanodump может вместо этого искать существующие дескрипторы LSASS. Если такой дескриптор найден, он будет скопирован и использован для создания минидампа.
4️⃣Повышение привилегий дескриптора
Можно получить дескриптор LSASS с правами PROCESS_QUERY_LIMITED_INFORMATION, которые, скорее всего, будут в белом списке, и затем повысить привилегии этого дескриптора путём его дублирования.
5️⃣Дублирование дескриптора через Seclogon
Можно обмануть процесс seclogon, заставив его открыть дескриптор LSASS и дублировать его до закрытия с помощью блокировок файлов. Для доступа к этой функциональности используйте флаг --seclogon-duplicate.
Выше перечислены лишь некоторые функции утилиты, более подробно с остальными возможностями можно ознакомиться здесь.
🔺Примеры использования
nanodump --fork --write C:\lsass.dmp
nanodump --seclogon-leak-remote C:\Windows\notepad.exe --fork --valid
nanodump --seclogon-leak-local --fork --valid --write C:\Windows\Temp\lsass.dmp
