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
Platforms: Windows
Version: 1.1
Created: 11 February 2020
Last Modified: 15 August 2024

Procedure Examples

ID Name Description
G0064 APT33

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

S0194 PowerSploit

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

S0692 SILENTTRINITY

SILENTTRINITY has a module that can extract cached GPP passwords.[8]

G0102 Wizard Spider

Wizard Spider has used PowerShell cmdlets Get-GPPPassword and Find-GPOPassword to find unsecured credentials in a compromised network group policy.[9]

Mitigations

ID Mitigation Description
M1015 Active Directory Configuration

Remove vulnerable Group Policy Preferences.[10]

M1047 Audit

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

M1051 Update Software

Apply patch KB2962486 which prevents credentials from being stored in GPPs.[11][12]

Detection

ID Data Source Data Component Detects
DS0017 Command Command Execution

Monitor executed commands and arguments that may search for SYSVOL data and/or GPP XML files, especially on compromised domain controllers.

Analytic 1 - Commands indicating searches for GPP XML files.

(index=security sourcetype="Powershell" EventCode=4104 CommandLine="dir /s .xml*")

DS0022 File File Access

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

Analytic 1 - Unauthorized access to SYSVOL XML files.

index=security sourcetype="WinEventLog:Security" EventCode=4663 ObjectName="SYSVOL" ObjectName="*.xml"| eval AccessType=case( AccessMask="0x1", "Read", AccessMask="0x2", "Write", AccessMask="0x3", "Read/Write", AccessMask="0x4", "Delete", true(), "Unknown")

References