Group Policy Preferences (GPP) password retrieval

Understanding the Vulnerability

What Are Group Policy Preferences?

Group Policy Preferences (GPP) allowed administrators to configure domain-wide settings including local account passwords, scheduled tasks, and services. The critical flaw: GPP stored passwords in XML files on the SYSVOL share, encrypted with a published AES key.

The Problem:

  • Passwords stored as "cpassword" in XML files

  • Encryption key was published by Microsoft in MSDN documentation

  • Any domain user can read SYSVOL share

  • Result: Any domain user can decrypt stored passwords

Timeline:

  • 2008-2014: Vulnerability actively exploitable

  • May 2014: MS14-025 patched the issue

  • Present: Legacy environments may still contain old GPP files

Quick Identification

Finding GPP Files

Manual Search:

PowerShell Search:

Password Decryption

PowerSploit Method:

Metasploit Module:

CrackMapExec:

Common GPP File Locations

Typical SYSVOL Paths

Groups.xml (Local Users):

Services.xml (Service Accounts):

ScheduledTasks.xml (Task Accounts):

DataSources.xml (Database Connections):

Example GPP File Content

Groups.xml with Password:

Exploitation Scenarios

Scenario 1: Local Administrator Discovery

Find Local Admin Accounts:

Scenario 2: Service Account Credentials

Extract Service Passwords:

Scenario 3: Scheduled Task Accounts

Task Account Discovery:

Quick Exploitation Workflow

Step-by-Step Process

1. Domain Access Check:

2. Quick Search:

3. Extract and Decrypt:

4. Validate Credentials:

When to Check for GPP

Target Environments

  • Legacy Windows domains (2008-2014 era)

  • Domains with poor patch management

  • Air-gapped or isolated networks

  • Backup domain controllers from old snapshots

Indicators Worth Checking

  • Old SYSVOL timestamps (files from before 2014)

  • Legacy Group Policy Objects still in use

  • Administrative complaints about "old broken policies"

  • Domain functional level below 2016

Quick Assessment

Key Points

Limitations

  • Patched since 2014 - modern domains rarely vulnerable

  • Domain access required - need valid domain credentials

  • Legacy-specific - only affects older environments

  • No privilege escalation if passwords are for same-level accounts

Value When Found

  • Often high-privilege accounts (service accounts, backup admins)

  • Multiple credentials may be stored

  • Lateral movement opportunities across multiple systems

  • Persistence accounts that may not be monitored

Modern Alternatives

  • LAPS password extraction (if misconfigured)

  • Service account Kerberoasting (always worth checking)

  • ASREPRoasting for accounts without pre-auth

  • DCSync attacks if you find high-privilege credentials

This technique represents a classic example of how poor security practices can persist in domain environments long after patches are available, making it worth a quick check in any domain assessment.

Last updated

Was this helpful?