The following analytic identifies the addition of a Service Principal Name to a domain account. While this event may be part of a legitimate action part of certain administrative operations, it may also be evidence of a persistence attack. Domain accounts with Servce Principal Names are vulnerable to a technique called Kerberoasting that enables attackers to potentially obtain the cleartext password of the account by performing offline cracking. An adversary who has obtained privileged access to a domain environment may add an SPN to a privileged account to then leverage the Kerberoasting technique and attempt to obtain its clertext password.
- Type: TTP
Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud
- Last Updated: 2022-11-17
- Author: Mauricio Velazco, Splunk
- ID: 8a1259cb-0ea7-409c-8bfe-74bad89259f9
Kill Chain Phase
- CIS 10
1 2 3 `wineventlog_security` EventCode=5136 AttributeLDAPDisplayName=servicePrincipalName OperationType="%%14674" | stats values(ObjectDN) by _time, Computer, SubjectUserName, AttributeValue | `windows_ad_serviceprincipalname_added_to_domain_account_filter`
The SPL above uses the following Macros:
windows_ad_serviceprincipalname_added_to_domain_account_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
List of fields required to use this analytic.
How To Implement
To successfully implement this search, you ned to be ingesting eventcode
5136. The Advanced Security Audit policy setting
Audit Directory Services Changes within
DS Access needs to be enabled. Additionally, a SACL needs to be created for AD objects in order to ingest attribute modifications.
Known False Positives
A Service Principal Name should only be added to an account when an application requires it. While infrequent, this detection may trigger on legitimate actions. Filter as needed.
Associated Analytic Story
|30.0||60||50||A Servince Principal Name for $ObjectDN$ was set by $SubjectUserName$|
The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.
source | version: 1