Назад к обновлениям
UpdatedJul 16, 2026

GPOHound — Updated!

Офензивный инструмент для извлечения и анализа GPO, который использует и обогащает данные BloodHound

Поделиться

GPOHound

GPOHound — это инструмент для дампа и анализа объектов групповой политики (GPO), извлечённых из общей папки SYSVOL.

Он предоставляет структурированный, формализованный формат для выявления неверных конфигураций, небезопасных настроек и путей повышения привилегий в средах Active Directory.

Инструмент интегрируется с базой данных Neo4j BloodHound, используя её как LDAP-подобный источник информации об Active Directory, а также обогащая её путём добавления новых связей (рёбер) и свойств узлов на основе анализа.

Возможности

Дамп

  • Выполняет дамп GPO в структурированном формате JSON или дерева

  • Работает с несколькими доменами

  • Разрешает имена GPO по GUID GPO

  • Фильтрует вывод по файлам GPO, GUID GPO и доменам

  • Выполняет поиск по парам ключ/значение с использованием регулярных выражений

Анализ

  • Группирует настройки по затронутому объекту (например, локальные группы, реестр)

  • Обнаруживает добавление участников в привилегированные локальные группы

  • Обнаруживает небезопасные настройки реестра, сохранённые учётные данные и привилегии

  • Поддерживает расшифровку учётных данных VNC и паролей GPP

  • Находит домены, контейнеры и OU, затронутые GPO

  • Получает GPO, применённые к конкретному пользователю, компьютеру, OU, контейнеру или домену

  • Обогащает данные BloodHound связями и свойствами

Установка

Установка с помощью pip

git clone "https://github.com/cogiceo/GPOHound"
cd GPOHound
pip install .

Установка с помощью pipx

pipx install "git+https://github.com/cogiceo/GPOHound"

Настройка APOC для Neo4j

Необходимо настроить Neo4j APOC для обогащения данных BloodHound:

  • Если вы используете стандартную установку Neo4j, вы можете включить APOC, скопировав JAR-файл APOC в папку плагинов и перезапустив Neo4j:

    cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/
    neo4j restart
    
  • Если вы устанавливаете Neo4j с помощью "Docker Compose", добавьте переменную окружения NEO4J_PLUGINS=["apoc"]:

    neo4j:
      image: neo4j:latest
      environment:
        - NEO4J_PLUGINS=["apoc"]
    

Для получения более подробной информации или альтернативных способов установки обратитесь к официальной документации APOC.

Добавление запросов BloodHound

Чтобы визуализировать связи и свойства, добавленные GPOHound, вы можете импортировать пользовательские запросы из файла customqueries.json в BloodHound. По умолчанию этот файл находится по пути ~/.config/bloodhound/customqueries.json.

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

Дамп SYSVOL

Начните с загрузки содержимого SYSVOL с контроллера домена.

  • Загрузка полного SYSVOL:

    gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD 
    
  • Загрузка только GPO:

    gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos
    
  • Загрузка с исключениями:

    gpohound sysvol --dc $DC_HOST -u $USER -p $PASSWORD --exclude '/Policydefinitions/','/scripts/' --max-size 100
    

Дамп LDAP

Получите все необходимые данные из LDAP:

gpohound ldap --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD

BloodHound

Для обогащения данных BloodHound необходимо собрать данные BloodHound с помощью такого сборщика, как bloodhound.py или SharpHound.exe, и импортировать собранные данные в интерфейс BloodHound.

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

Примеры файлов GPOHound доступны в example.zip. Распакуйте их с помощью unzip example.zip.

Инструкции по настройке значений по умолчанию и конфигурации см. в CONFIG.md.

gpohound --neo4j-user $USER --neo4j-pass $PASS dump
gpohound --neo4j-user $USER --neo4j-pass $PASS analysis

Разбор

gpohound parse "gpos/sysvols/$DOMAIN/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol"

Дамп

gpohound dump
gpohound dump --list
gpohound dump --guid 31B2F340-016D-11D2-945F-00C04FB984F9
gpohound dump --policies scripts psscripts
gpohound dump --search 'VNC.*Server' --show

Анализ

gpohound analysis
gpohound analysis --affected
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL'
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --list
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --dump
gpohound analysis --enrich
gpohound analysis --enrich-ce

Текущий анализ и обогащение

[!IMPORTANT]

  • Условия, такие как фильтры безопасности, WMI-фильтры и таргетинг на уровне элементов, не интерпретируются.
  • Конфликты GPO не моделируются, чтобы не пропустить корректные настройки.

Локальные группы

  • Обнаружение пользователей, назначенных в привилегированные локальные группы во время входа в систему

  • Обнаружение переименованных встроенных привилегированных локальных групп.

  • Обнаружение доверенных лиц, добавленных в привилегированные локальные группы с помощью "Переменных процесса предпочтений" (например, %ComputerName%, %DomainName%)

  • Обнаружение потенциально опасных доверенных лиц с использованием перехвата sAMAccountName

  • Обнаружение любых доверенных лиц, добавленных в привилегированные локальные группы:

    ГруппаРебро
    AdministratorsAdminTo
    Remote Desktop UsersCanRDP
    Distributed COM UsersExecuteDCOM
    Remote Management UsersCanPSRemote
    Backup OperatorsCanPrivEsc
    Print OperatorsCanPrivEsc
    Network Configuration OperatorsCanPrivEsc

Реестр

АнализСвойство
Группа "Все" включает "Анонимный вход"
Подпись сеанса сервера SMB не включенаsmbSigningEnabled: false
Подпись сеанса сервера SMB не требуетсяsmbSigningRequired: false
Поддерживается аутентификация NTLMv1NTLMv1Support: true
Пароль по умолчанию для автоматического входа Windows
Учётные данные VNC (Generic: RealVNC, TightVNC, TigerVNC и т.д.)*VNC*PASS* (различные)
Сохранённые пароли FileZilla
Прокси-пароль PuTTY
Сохранённые учётные данные TeamViewer
Сохранённые сеансы WinSCP
Сохранённый пароль Picasa

Привилегии

По умолчанию привилегированные доверенные лица, а также служебные учетные записи с SID, начинающимися с S-1-5-8, исключаются из анализа.

ПривилегияОписаниеРебро
SeDebugPrivilegeПозволяет пользователю отлаживать и взаимодействовать с любым процессомCanPrivEsc
SeBackupPrivilegeПредоставляет доступ к конфиденциальным файламCanPrivEsc
SeRestorePrivilegeОбходит разрешения объектов во время восстановленияCanPrivEsc
SeAssignPrimaryTokenPrivilegeВключает олицетворение токена для повышения до SYSTEMCanPrivEsc
SeImpersonatePrivilegeПозволяет создавать процесс в контексте другого пользователяCanPrivEsc
SeTakeOwnershipPrivilegeПозволяет пользователям забирать права собственности на системные объектыCanPrivEsc
SeTcbPrivilegeПредоставляет возможность действовать как часть ОСCanPrivEsc
SeCreateTokenPrivilegeРазрешает создание токенов аутентификацииCanPrivEsc
SeLoadDriverPrivilegeРазрешает загрузку/выгрузку драйверовCanPrivEsc
SeManageVolumePrivilegeПредоставляет привилегии управления томами или дискамиCanPrivEsc
SeEnableDelegationPrivilegeВключает возможность доверия делегированию для учётных записей компьютеров и пользователей

Улучшения

  • Улучшить журналирование
  • Интегрировать LDAP
  • Интегрировать SMB
  • Разобрать оставшиеся расширения
  • Веб-интерфейс
  • Подсветить возможные конфликты между GPO

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

SYSVOL и LDAP

  • [MS-GPAC] Расширение конфигурации аудита
  • [MS-GPCAP] Расширение протокола политик централизованного доступа
  • [MS-GPEF] Расширение шифрованной файловой системы
  • [MS-GPFAS] Структура данных брандмауэра и расширенной безопасности
  • [MS-GPFR] Расширение протокола перенаправления папок
  • [MS-GPIE] Расширение обслуживания Internet Explorer
  • [MS-GPNAP] Расширение защиты сетевого доступа (NAP)
  • [MS-GPNRPT] Расширение данных таблицы политики разрешения имён (NRPT)
  • [MS-GPOL] Базовый протокол
  • [MS-GPPREF] Структура данных расширения предпочтений
  • [MS-GPREG] Кодировка расширения реестра
  • [MS-GPSB] Расширение протокола безопасности
  • [MS-GPSCR] Кодировка расширения сценариев
  • [MS-GPSI] Расширение протокола установки программного обеспечения

Только LDAP

  • [MS-GPDPC] Расширение развёрнутых подключений принтеров
  • [MS-GPWL] Расширение протокола беспроводной/проводной сети

Категории