Sploitus

Exploit for gpoParser

kitploit Β· 2026-09-04

Exploit Code

MARKDOWN220 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SYNACKTIV-GPOPARSER
# gpoParser

**gpoParser** β€” это инструмСнт, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для извлСчСния ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, примСняСмых Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ (GPO) Π² срСдС Active Directory. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСчислСниС этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠΈΠΌ, этот инструмСнт Π΄Π°Ρ‘Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ примСняСмых ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ опасныС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π»Π°Ρ‚Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π» прСдставлСн Π½Π° leHack 2025 ΠΈ DEFCON 33.

# Установка

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: для ΠΏΠ°ΠΊΠ΅Ρ‚Π° `gssapi` трСбуСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ `libkrb5-dev`; установитС Π΅Ρ‘ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `sudo apt install libkrb5-dev` (ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· подходящий ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²)

root@kitploit:~
    
    
    pipx install git+https://github.com/synacktiv/gpoParser
    

# ВозмоТности

root@kitploit:~
    
    
    $ gpoParser -h
    usage: gpoParser [-h] {local,remote,display,query,enrich} ...
    
    GPO Analysis Tool
    
    positional arguments:
      {local,remote,display,query,enrich}
                            Choose mode
        local               Parse GPOs locally
        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
    
    options:
      -h, --help            show this help message and exit
    

## ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ GPO Π² ΠΎΠ½Π»Π°ΠΉΠ½- ΠΈΠ»ΠΈ ΠΎΡ„Π»Π°ΠΉΠ½-Ρ€Π΅ΠΆΠΈΠΌΠ΅

**Онлайн** : ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ LDAP для сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ GPO ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… (Ρ„Π»Π°Π³ΠΈ, gPLink, gPOptions ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅). Π’Π°ΠΊΠΆΠ΅ выполняСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ SYSVOL для сбора Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ GPO.

root@kitploit:~
    
    
    $ gpoParser remote -h
    usage: gpoParser remote [-h] [-s SERVER] [-d DOMAIN] [-u USER] [-p PASSWORD] [-H HASH] [-k] [-o OUTPUT]
    
    options:
      -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
      -u, --user USER       Username
      -p, --password PASSWORD
                            Password
      -H, --hash HASH       NTLM authentication, format is [LM:]NT
      -k, --kerberos        Use Kerberos authentication
      -o, --output OUTPUT   Output filename and location (default ./cache_gpoParser_<timestamp>.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 осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

  * ldeep
  * ADExplorerSnapshot β€” Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ `Objects` (NDJSON)



root@kitploit:~
    
    
    $ gpoParser local -h
    usage: gpoParser local [-h] [-f {ldeep,adexplorer}] [-o OUTPUT] sysvol_folder ldap_folder
    
    positional arguments:
      sysvol_folder         SYSVOL folder containing the policies
      ldap_folder           Folder with LDAP dump in ldeep format
    
    options:
      -h, --help            show this help message and exit
      -f {ldeep,adexplorer}, --format {ldeep,adexplorer}
                            JSON files input format (default ldeep)
      -o OUTPUT, --output OUTPUT
                            Output filename and location (default ./cache_gpoParser_<timestamp>.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
    
    $ gpoParser local sysvol/ ldap/
    Information saved to cache, now use display / query features
    

## ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, примСняСмыС GPO, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ GPO ΠΈΠ»ΠΈ GUID.

root@kitploit:~
    
    
    $ gpoParser display -h
    usage: gpoParser display [-h] [-g GPO] [-c CACHE]
    
    options:
      -h, --help            show this help message and exit
      -g GPO, --gpo GPO     Filter by GPO name or GUID
      -c CACHE, --cache CACHE
                            Cache file location (default: ./cache_gpoParser_<timestamp>.json)
    
    $ gpoParser display
    Cache file found, using it
    {6F3821B3-89B2-496D-82A5-58092D3EA588}: AddAdmin
    Computer configuration
       Groups
          The following principals are added to BUILTIN\Administrators
             CORP\admin
    {ADC96BD4-86D3-4516-BCF2-F7BDD5A76366}: AddRDP
    Computer configuration
       Groups
          The following principals are added to BUILTIN\Remote Desktop Users
             CORP\bob
    [...]
    
    $ gpoParser display -g work
    Cache file found, using it
    {474D47E2-2B77-4E37-9744-A3CF6AB04449}: Workstation admins
    Computer configuration
       Groups
          The following principals are added to BUILTIN\Administrators
             CORP\Admin - All Workstations
    

## Запрос

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ связи ΠΌΠ΅ΠΆΠ΄Ρƒ GPO ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ примСняСтся GPO ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ.

root@kitploit:~
    
    
    $ gpoParser query -h
    usage: gpoParser query [-h] [-g GPO] [-C COMPUTER] [-c CACHE]
    
    options:
      -h, --help            show this help message and exit
      -g GPO, --gpo GPO     Filter by GPO name or GUID
      -C COMPUTER, --computer COMPUTER
                            Computer name or distinguishedName to filter on
      -c CACHE, --cache CACHE
                            Cache file location (default: ./cache_gpoParser_<timestamp>.json)
    
    $ gpoParser query
    Cache file found, using it
    {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=SRV49,OU=SUB,DC=CORP,DC=LOCAL
    CN=SRV50,OU=SUB,DC=CORP,DC=LOCAL
    CN=SRV55,OU=PROD,OU=Servers,DC=CORP,DC=LOCAL
    [...]
    
    
    $ gpoParser query -C wks
    Cache file found, using it
    CN=WKS01,OU=ADMIN,OU=WORKSTATIONS,DC=CORP,DC=LOCAL
    {31B2F340-016D-11D2-945F-00C04FB984F9}: Default Domain Policy
    Computer configuration
       Registry
          The following registry key changes have been made
          Action: Create
          Path: MACHINE\System\CurrentControlSet\Control\Lsa\NoLMHash
          Value: 4,1
          The following registry key changes have been made
          Action: Update
          Hive: HKEY_LOCAL_MACHINE
          Path: SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
          Name: EnableMDNS
          Value: 00000000
    

## ΠžΠ±ΠΎΠ³Π°Ρ‰Π΅Π½ΠΈΠ΅ BloodHound

АнализируСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ GPO для создания Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Ρ‘Π±Π΅Ρ€, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ **AdminTo** , **CanRDP** ΠΈ **CanPSRemote** , выявляя возмоТности Π»Π°Ρ‚Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ пСрСмСщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ BloodHound ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ встроСнными срСдствами. Π Ρ‘Π±Ρ€Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Ρ‘ΠΌ прямого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Neo4j.

root@kitploit:~
    
    
    $ gpoParser enrich -h
    usage: gpoParser enrich [-h] [-u USER] [-p PASSWORD] [-s SERVER] [-c CACHE]
    
    options:
      -h, --help            show this help message and exit
      -u USER, --user USER  Username for neo4j authentication (default: neo4j)
      -p PASSWORD, --password PASSWORD
                            Password for neo4j authentication (default: bloodhoundcommunityedition)
      -s SERVER, --server SERVER
                            Neo4j server URI (default: bolt://localhost:7687)
      -c CACHE, --cache CACHE
                            Cache file location (default: ./cache_gpoParser_<timestamp>.json)
    

## ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ

ΠžΡ„Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ограничСния: Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠ°ΠΊ статус наслСдования, статус ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ/ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ бСзопасности, WMI-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈ Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ элСмСнтов, Π½Π΅ всСгда ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ собраны ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ инструмСнтами (BloodHound, PowerView, GPOHound). **gpoParser** Π±ΡƒΠ΄Π΅Ρ‚ постСпСнно ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ всС эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. По ΠΌΠ΅Ρ€Π΅ развития инструмСнтария Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сборщики Π΄Π°Π½Π½Ρ‹Ρ….