Try in Splunk Security Cloud


The following analytic identifies the addition of a new custom domain within an Azure Active Directory tenant. Adding a custom domain is a step required to set up the Azure Active Directory identity federation backdoor technique discovered by security researcher Nestori Syynimaa. Similar to Active Directory, Azure AD uses the concept of domains to manage directories of identities. A new Azure AD tenant will initially contain a single domain that is commonly called the cloud-only domain. Organizations can also add their registered custom domains to Azure AD for email addresses to match the organizations domain name. If the organization intends to use a third-party identity provider such as ADFS for authentication, the added custom domains can be configured as federated. An adversary who has obtained privileged access to an Azure AD tenant may leverage this technique to establish persistence and be able to authenticate to Azure AD impersonating any user and bypassing the requirement to have a valid password and/or perform MFA.

  • Type: TTP
  • Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud

  • Last Updated: 2022-09-02
  • Author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
  • ID: 30c47f45-dd6a-4720-9963-0bca6c8686ef




ID Technique Tactic
T1484 Domain Policy Modification Defense Evasion, Privilege Escalation
T1484.002 Domain Trust Modification Defense Evasion, Privilege Escalation
Kill Chain Phase
  • Exploitation
  • DE.CM
  • CIS 10
 `azuread` operationName="Add unverified domain" "properties.result"=success 
| rename properties.* as * 
| rename callerIpAddress as callerIpAddress 
| rename initiatedBy.user.userPrincipalName as initiatedBy 
| rename targetResources{}.displayName as domain 
| stats values(domain) by _time, initiatedBy, result, operationName, callerIpAddress 
| `azure_ad_new_custom_domain_added_filter`


The SPL above uses the following Macros:

:information_source: azure_ad_new_custom_domain_added_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.

Required fields

List of fields required to use this analytic.

  • _time
  • operationName
  • properties.result
  • callerIpAddress
  • properties.targetResources{}.displayName
  • properties.initiatedBy.user.userPrincipalName

How To Implement

You must install the latest version of Splunk Add-on for Microsoft Cloud Services from Splunkbase ( You must be ingesting Azure Active Directory events into your Splunk environment. Specifically, this analytic leverages the AuditLogs log category.

Known False Positives

In most organizations, new customm domains will be updated infrequently. Filter as needed.

Associated Analytic Story


Risk Score Impact Confidence Message
54.0 60 90 A new custom domain, $domain$ , was added by $initiatedBy$

:information_source: The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.


Test Dataset

Replay any dataset to Splunk Enterprise by using our tool or the UI. Alternatively you can replay a dataset into a Splunk Attack Range

source | version: 1