Unsecured Credentials: Group Policy Preferences

Adversaries may attempt to find unsecured credentials in Group Policy Preferences (GPP). GPP are tools that allow administrators to create domain policies with embedded credentials. These policies allow administrators to set local accounts.[1]

These group policies are stored in SYSVOL on a domain controller. This means that any domain user can view the SYSVOL share and decrypt the password (using the AES key that has been made public).[2]

The following tools and scripts can be used to gather and decrypt the password file from Group Policy Preference XML files:

  • Metasploit’s post exploitation module: post/windows/gather/credentials/gpp
  • Get-GPPPassword[3]
  • gpprefdecrypt.py

On the SYSVOL share, adversaries may use the following command to enumerate potential GPP XML files: dir /s * .xml

ID: T1552.006
Sub-technique of:  T1552
Tactic: Credential Access
Platforms: Windows
Permissions Required: User
Data Sources: Process command-line parameters, Windows event logs
Version: 1.0
Created: 11 February 2020
Last Modified: 17 June 2020

Procedure Examples

Name Description
APT33

APT33 has used a variety of publicly available tools like Gpppassword to gather credentials.[4][5]

PowerSploit

PowerSploit contains a collection of Exfiltration modules that can harvest credentials from Group Policy Preferences.[6][7]

Mitigations

Mitigation Description
Active Directory Configuration

Remove vulnerable Group Policy Preferences.[8]

Audit

Search SYSVOL for any existing GGPs that may contain credentials and remove them.[9]

Update Software

Apply patch KB2962486 which prevents credentials from being stored in GPPs.[9][10]

Detection

Monitor for attempts to access SYSVOL that involve searching for XML files.

Deploy a new XML file with permissions set to Everyone:Deny and monitor for Access Denied errors.[9]

References