**gpoParser** — это инструмент, предназначенный для извлечения и анализа конфигураций, применяемых через объекты групповой политики (GPO) в среде Active Directory. Поскольку перечисление этих параметров может быть утомительным и трудоёмким, этот инструмент даёт более чёткое понимание применяемых политик и помогает выявлять опасные конфигурации, которые могут позволить латеральное перемещение или повышение привилегий. Инструмент был представлен на leHack 2025 и DEFCON 33.
Примечание: для пакета `gssapi` требуется зависимость `libkrb5-dev`; установите её с помощью `sudo apt install libkrb5-dev` (или через подходящий менеджер пакетов)
pipx install git+
usage: gpoParser [-h] {local,remote,display,query,enrich} ...
remote Parse GPOs via remote LDAP/SYSVOL
display Display parsed GPO contents
query Query GPO parser results in order to display affected computers
enrich Enrich BloodHound with new edges
-h, --help show this help message and exit
## Получение GPO в онлайн- или офлайн-режиме
**Онлайн** : подключение к каталогу LDAP для сбора информации о GPO и их атрибутах (флаги, gPLink, gPOptions и другие). Также выполняется подключение к общей папке SYSVOL для сбора файлов конфигурации GPO.
usage: gpoParser remote [-h] [-s SERVER] [-d DOMAIN] [-u USER] [-p PASSWORD] [-H HASH] [-k] [-o OUTPUT]
-h, --help show this help message and exit
-s, --server SERVER LDAP server IP or FQDN (ex: ldap://192.168.57.5 or ldaps://dc.corp.local)
-d, --domain DOMAIN Domain name tied to the user
-H, --hash HASH NTLM authentication, format is [LM:]NT
-k, --kerberos Use Kerberos authentication
-o, --output OUTPUT Output filename and location (default ./cache_gpoParser_ .json)
$ gpoParser remote -u bob -p password -d corp -s 192.168.57.5
Retrieving \CORP.LOCAL\Policies\{008B0634-C0B9-443A-A06A-E2BAD875E27F}\Machine/Microsoft/Windows NT/SecEdit/GptTmpl.inf
Retrieving \CORP.LOCAL\Policies\{008B0634-C0B9-443A-A06A-E2BAD875E27F}\Machine/Preferences/Groups/Groups.xml
Retrieving \CORP.LOCAL\Policies\{008B0634-C0B9-443A-A06A-E2BAD875E27F}\Machine/Preferences/Registry/Registry.xml
Information saved to cache, now use display / query features
**Офлайн** : требуется (частичная) копия каталога LDAP и содержимое папки Policies из общей папки SYSVOL. В настоящее время сбор каталога LDAP осуществляется с помощью:
* ADExplorerSnapshot — выходной формат `Objects` (NDJSON)
usage: gpoParser local [-h] [-f {ldeep,adexplorer}] [-o OUTPUT] sysvol_folder ldap_folder
sysvol_folder SYSVOL folder containing the policies
ldap_folder Folder with LDAP dump in ldeep format
-h, --help show this help message and exit
-f {ldeep,adexplorer}, --format {ldeep,adexplorer}
Output filename and location (default ./cache_gpoParser_ .json)
$ mkdir sysvol && cd sysvol && echo -e 'prompt\nrecurse\nmget *' | smbclient -W CORP -U bob%password //192.168.57.5/SYSVOL
$ mkdir ldap && ldeep ldap -u bob -p password -d corp.local -s 192.168.57.5 all ldap/corp
Information saved to cache, now use display / query features
Этот режим отображает все изменения конфигурации, применяемые GPO, в пределах поддерживаемых форматов и проанализированных данных. Результаты можно фильтровать по имени GPO или GUID.
usage: gpoParser display [-h] [-g GPO] [-c CACHE]
-h, --help show this help message and exit
-g GPO, --gpo GPO Filter by GPO name or GUID
Cache file location (default: ./cache_gpoParser_ .json)
{6F3821B3-89B2-496D-82A5-58092D3EA588}: AddAdmin
The following principals are added to BUILTIN\Administrators
{ADC96BD4-86D3-4516-BCF2-F7BDD5A76366}: AddRDP
The following principals are added to BUILTIN\Remote Desktop Users
{474D47E2-2B77-4E37-9744-A3CF6AB04449}: Workstation admins
The following principals are added to BUILTIN\Administrators
Этот режим показывает связи между GPO и компьютерами. Например, можно увидеть, к каким компьютерам применяется GPO или какие изменения применяются к одному или нескольким компьютерам.
usage: gpoParser query [-h] [-g GPO] [-C COMPUTER] [-c CACHE]
-h, --help show this help message and exit
-g GPO, --gpo GPO Filter by GPO name or GUID
Computer name or distinguishedName to filter on
Cache file location (default: ./cache_gpoParser_ .json)
{6F3821B3-89B2-496D-82A5-58092D3EA588}: AddAdmin
This GPO affects the following computers:
CN=SRV55,OU=PROD,OU=Servers,DC=CORP,DC=LOCAL
CN=SRV54,OU=PROD,OU=Servers,DC=CORP,DC=LOCAL
CN=SRV53,OU=PROD,OU=Servers,DC=CORP,DC=LOCAL
CN=SRV52,OU=PROD,OU=Servers,DC=CORP,DC=LOCAL
{6AC1786C-016F-11D2-945F-00C04FB984F9}: Default Domain Controllers Policy
This GPO affects the following computers:
CN=DC01,OU=Domain Controllers,DC=CORP,DC=LOCAL
{31B2F340-016D-11D2-945F-00C04FB984F9}: Default Domain Policy
This GPO affects the following computers:
CN=SRV51,OU=SUBSUB,OU=SUB,DC=CORP,DC=LOCAL
CN=SRV55,OU=PROD,OU=Servers,DC=CORP,DC=LOCAL
CN=WKS01,OU=ADMIN,OU=WORKSTATIONS,DC=CORP,DC=LOCAL
{31B2F340-016D-11D2-945F-00C04FB984F9}: Default Domain Policy
The following registry key changes have been made
Path: MACHINE\System\CurrentControlSet\Control\Lsa\NoLMHash
The following registry key changes have been made
Path: SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Анализирует информацию GPO для создания дополнительных рёбер, таких как **AdminTo** , **CanRDP** и **CanPSRemote** , выявляя возможности латерального перемещения, которые BloodHound может не обнаруживать встроенными средствами. Рёбра добавляются путём прямого подключения к базе данных Neo4j.
usage: gpoParser enrich [-h] [-u USER] [-p PASSWORD] [-s SERVER] [-c CACHE]
-h, --help show this help message and exit
-u USER, --user USER Username for neo4j authentication (default: neo4j)
Password for neo4j authentication (default: bloodhoundcommunityedition)
Neo4j server URI (default: bolt://localhost:7687)
Cache file location (default: ./cache_gpoParser_ .json)
Офлайн-обработка данных накладывает определённые ограничения: такие параметры, как статус наследования, статус конфигурации пользователей/компьютеров, фильтры безопасности, WMI-фильтры и таргетинг на уровне элементов, не всегда могут быть собраны или интерпретированы существующими инструментами (BloodHound, PowerView, GPOHound). **gpoParser** будет постепенно учитывать все эти параметры по мере развития проекта. По мере развития инструментария будут добавлены дополнительные сборщики данных.
The full story
This article is one source in a clustered incident — the cluster page carries the summary, timeline and every other outlet covering it.
