SpnManager Kerberos SPN auditing and repair for Active Directory

Get-EncryptionTypeAudit

Business Value

Business Value

The Get-EncryptionTypeAudit command is used to identify accounts with potential Kerberos encryption-type mismatch risks. This can help organizations ensure their Active Directory (AD) environment is secure and compliant.

Who Uses This

System administrators and security teams use this command to monitor and report on the encryption posture of AD accounts.

Risks

If left unchecked, encryption-type mismatches can lead to Kerberos authentication failures, compromising system security.

When a Manager Cares

A manager cares when:

  • System security is compromised due to unaddressed encryption-type issues.
  • Compliance requirements are not met due to inadequate encryption configurations.
  • IT operations are impacted by frequent authentication failures.

Day-to-Day Use

  1. Run the command with no parameters: Get-EncryptionTypeAudit
    • This will output a list of accounts with potential Kerberos encryption-type mismatch risks.
  2. Filter the results by specifying an account name or group: Get-EncryptionTypeAudit -Identity 'AccountName' or Get-EncryptionTypeAudit -Group 'GroupDistinguishedName'

Code Examples

# Get a list of all accounts with potential Kerberos encryption-type mismatch risks
$auditResults = Get-EncryptionTypeAudit

# Filter the results to show only accounts in a specific group
$filteredResults = $auditResults | Where-Object {$_.Group -eq 'GroupDistinguishedName'}

# Output the filtered results to CSV
$filteredResults | Export-Csv -Path 'C:\AuditResults.csv' -NoTypeInformation

Watchpoints

  • Be cautious when filtering large result sets, as it may impact performance.
  • Use this command in conjunction with other AD auditing tools for comprehensive security monitoring.

What This Does

The Get-EncryptionTypeAudit command reads various attributes from AD accounts to identify potential Kerberos encryption-type mismatch risks. It checks for:

  • msDS-SupportedEncryptionTypes
  • userAccountControl
  • pwdLastSet
  • Protected Users membership

Step-by-Step Recipe

  1. Run the command with no parameters: Get-EncryptionTypeAudit
  2. Review the output to identify accounts with potential Kerberos encryption-type mismatch risks.
  3. Use the output to guide remediation efforts and ensure AD security compliance.
Field Value
Vendor Detent Point LLC
Product SpnManager 0.4.0
Licence Proprietary - licensed, not sold. See LICENSE.
Operational impact Read-only. Queries Active Directory and reports findings; changes nothing.
Rights required Directory read access.
Providers covered Audit.EncryptionTypes
Approval recommendation Approve for general operational use. It cannot alter directory state.

Licence terms are proprietary and are supplied with the purchase, subscription or evaluation agreement. No open-source licence is granted.

What Why
Windows PowerShell 5.1 or later Declared by the module manifest.
ActiveDirectory 1.0.0.0 Required module. Ships with RSAT; install the Active Directory PowerShell feature.
A reachable domain controller Every provider reads from Active Directory.
An account with directory read access Needed to enumerate accounts and their SPNs.

Data Handling

  • The command only reads data from AD, without modifying any attributes.
  • All output is generated based on existing AD data.

Transit

  • Data is transmitted over the network using standard AD protocols (LDAP).

At Rest

  • Data is stored in memory during execution; no storage of sensitive data at rest.

Audit Trail

  • The command does not log or store any audit trail information.

Compliance Requirements

  • This command is designed to aid compliance with various security and authentication standards, including Kerberos best practices.

This is the sense step. It reads the current state and produces a candidate; nothing is changed. Providers: Audit.EncryptionTypes.

Example 1

Get-EncryptionTypeAudit -Identity 'svc-sql-prod'

Example 2

Get-EncryptionTypeAudit -Identity 'svc-sql-prod','SQLSRV01$'

Example 3

Get-EncryptionTypeAudit -Identity 'svc-sql-prod' | Where-Object Rc4Only

Example 4

Get-EncryptionTypeAudit

Domain-wide: audits every non-computer account that has an SPN.