Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
dumpguard_bof — Порт Beacon Object File (BOF) утилиты DumpGuard для извлечения хэшей NTLMv1 из сессий на современных системах Windows. | Kitploit
Инструменты/GitHubGitHub/0xedh/dumpguard_bof
Атаки на ПаролиЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеАутентификацияRed Teaming
GitHub0xedh/dumpguard_bof

dumpguard_bof

Порт Beacon Object File (BOF) утилиты DumpGuard для извлечения хэшей NTLMv1 из сессий на современных системах Windows.

Репозиторий
222247 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DumpGuard BOF

Порт DumpGuard в формате Beacon Object File (BOF) для извлечения хэшей NTLMv1 из сессий на современных системах Windows.

Demo

О проекте

Этот репозиторий содержит реализацию Beacon Object File (BOF) утилиты DumpGuard, портированную из оригинальной реализации на C#/.NET на чистый C для использования с Havoc и другими C2-фреймворками, поддерживающими выполнение BOF.

Это Proof of Concept (PoC) и учебное упражнение.

Этот порт BOF был создан в рамках моего личного пути к пониманию деталей протокола Remote Credential Guard, потоков аутентификации Kerberos и базовых механизмов безопасности Windows. Процесс портирования этого инструмента с C# на чистый C для выполнения BOF был в первую очередь образовательным начинанием.

Пожалуйста, имейте в виду:

  • Этот код может содержать ошибки, недостатки или неполные реализации.
  • Он не был extensively tested на всех версиях и конфигурациях Windows.
  • Некоторые пограничные случаи или нюансы протокола могут быть не обработаны должным образом.
  • Реализация может отличаться от оригинальной способами, влияющими на надежность.
  • Это не production-ready код. Используйте на свой страх и риск Ü.

Если вы обнаружите проблемы или у вас есть улучшения, вклад приветствуется. Для надежной и хорошо протестированной реализации обращайтесь к оригинальному инструменту DumpGuard.

Оригинальное исследование

Этот BOF основан на исследованиях и инструментарии @bytewreck из SpecterOps:

  • Оригинальный инструмент: github.com/bytewreck/DumpGuard
  • Пост в блоге: Catching Credential Guard Off Guard

Обзор

DumpGuard использует Windows Remote Credential Guard (RCG) для извлечения хэшей NTLMv1 от вошедших в систему пользователей без обращения к памяти LSASS и без необходимости прав администратора. Он работает даже при включенном Credential Guard.

Как это работает

  1. Локально имитировать сервер CredSSP/RDP. BOF выступает в роли поддельного RDP-сервера.
  2. Обмануть Windows SSPI, заставив выполнить полную аутентификацию Kerberos + CredSSP.
  3. Получить учетные данные пользователя, упакованные в TSRemoteGuardCreds.
  4. Вызвать пакет TSSSP LSA для вычисления ответа NTLMv1 с известным запросом.

Танцы с 4 раундами CredSSP

После раунда 4 у нас есть зашифрованный блоб учетных данных. Магия происходит, когда мы вызываем LsaCallAuthenticationPackage с пакетом TSSSP. LSA направляет наш запрос через RDPEAR -> TSRemoteGuard -> MSV1_0, который расшифровывает секреты и вычисляет для нас ответ NTLMv1.

Предыстория

Credential Guard изолирует секреты NTLM и Kerberos в защищенном пространстве VBS (LsaIso.exe), предотвращая атаки прямого доступа к памяти, такие как Mimikatz. Однако Credential Guard все равно должен использовать эти секреты для легитимной аутентификации. Это интерфейс, который эксплуатирует данная техника.

Для полного технического погружения смотрите: Catching Credential Guard Off Guard

Реализация

Этот порт BOF реализует только режим "Self" из оригинального инструмента DumpGuard. Режимы "All" не реализованы в этой версии.

Режим Self

Дамп хэша NTLMv1 текущего пользователя процесса через протокол Remote Credential Guard.

  • Требования к привилегиям: Нет (работает в контексте текущего пользователя)
  • Статус Credential Guard: Работает независимо от того, включен ли Credential Guard
  • Требования: Учетные данные для учетной записи с зарегистрированным SPN

Извлечение хэшей других пользователей

Хотя этот BOF реализует только режим "self", вы все равно можете извлекать хэши NTLMv1 других пользователей, например, внедряясь в процесс, работающий от имени этого пользователя. Например, если у вас есть права администратора, вы можете внедрить BOF в процесс, принадлежащий другому вошедшему в систему пользователю, чтобы получить его хэш.

Предварительные требования

Учетная запись с включенным SPN

Эта техника требует учетные данные для учетной записи, имеющей зарегистрированное имя субъекта-службы (SPN). Один из способов достичь этого — создать учетную запись компьютера и добавить ей SPN.

Шаг 1: Создайте учетную запись компьютера

Используя Impacket:

root@kitploit:~
python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>

Пример вывода:

root@kitploit:~
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

Шаг 2: Добавьте SPN к учетной записи компьютера

Используя krbrelayx addspn.py:

root@kitploit:~
python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>

Шаг 3: Проверьте SPN (если хотите)

Используя pywerview:

root@kitploit:~
python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$

Ищите serviceprincipalname: host/yourspn.domain.local в выводе.

Использование

Havoc C2

root@kitploit:~
inline-execute /path/to/dumpguard.x64.o x <domain> <username> <password> <spn>

Примечание: Параметр x — это заполнитель/фиктивный аргумент, требуемый перед доменом. Это может быть исправлено в будущих версиях (если они будут).

Пример:

root@kitploit:~
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

Пример вывода:

root@kitploit:~
[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788

Важно: Извлеченный хэш NTLMv1 принадлежит пользователю, запустившему процесс BOF, а не учетной записи компьютера, использованной для аутентификации (EVIL_COMPUTER$). Учетные данные учетной записи компьютера используются только для аутентификации на KDC и установления сеанса Remote Credential Guard.

Вывод в формате NTLMv1, совместимом с hashcat:

root@kitploit:~
DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE

Сборка

root@kitploit:~
make clean && make

Вывод: build/dumpguard.x64.o

Требования

  • Целью должна быть Windows-машина, присоединенная к домену
  • Требуются учетные данные для учетной записи с включенным SPN (см. Предварительные требования)
  • BOF выполняется в контексте текущего пользователя процесса

Ссылки

Документация Microsoft

  • Credential Guard Overview
  • Remote Credential Guard
  • AcquireCredentialsHandle
  • InitializeSecurityContext
  • AcceptSecurityContext
  • LsaRegisterLogonProcess
  • LsaConnectUntrusted
  • LsaCallAuthenticationPackage

Протоколы Microsoft

  • MS-RDPEAR - Протокол удаленного рабочего стола: протокол виртуального канала перенаправления аутентификации
  • MS-CSSP - Протокол поставщика поддержки безопасности учетных данных

Исследовательские работы и посты в блогах

  • Catching Credential Guard Off Guard - Valdemar Caroe, SpecterOps (2025)
  • Pass the Challenge: Defeating Windows Defender Credential Guard - Oliver Lyak (2022)
  • Windows Exploitation Tricks: Exploiting Arbitrary File Writes for Local Elevation of Privilege - James Forshaw, Project Zero (2018)
  • The LSA Whisperer Project - Evan McBroom, SpecterOps

Лицензия

Лицензия BSD 3-Clause

Оригинальный инструмент DumpGuard лицензирован по лицензии BSD 3-Clause, Copyright (c) 2025 Valdemar Carøe. Этот порт BOF сохраняет те же условия лицензии.


По вопросам, отчетам об ошибках или предложениям, пожалуйста, откройте issue на GitHub.

Скачать инструмент
РаундКлиент -> СерверСервер -> Клиент
1SPNEGO + TGT-REQTGT-REPLY (от реального KDC)
2AP-REQ (билет службы)AP-REP + MIC
3PubKeyAuth (хеш привязки)Хеш привязки сервера
4AuthInfo (TSRemoteGuardCreds)N/A