Skip to content

Commit 65e63e4

Browse files
committed
Updating detections
1 parent a10332f commit 65e63e4

10 files changed

+97
-67
lines changed

detections/cloud/azure_ad_global_administrator_role_assigned.yml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Azure AD Global Administrator Role Assigned
22
id: 825fed20-309d-4fd1-8aaf-cd49c1bb093c
3-
version: 5
4-
date: '2024-05-29'
5-
author: Gowthamaraj Rajendran, Mauricio Velazco, Splunk
3+
version: 6
4+
date: '2024-07-02'
5+
author: Gowthamaraj Rajendran, Mauricio Velazco, Dean Luxton, Splunk
66
status: production
77
type: TTP
88
description: The following analytic detects the assignment of the Azure AD Global
@@ -15,11 +15,14 @@ description: The following analytic detects the assignment of the Azure AD Globa
1515
posing a severe security risk.
1616
data_source:
1717
- Azure Active Directory Add member to role
18-
search: '`azure_monitor_aad` operationName="Add member to role" properties.targetResources{}.modifiedProperties{}.newValue="\"Global
19-
Administrator\"" | rename properties.* as * | rename initiatedBy.user.userPrincipalName
20-
as initiatedBy | stats count min(_time) as firstTime max(_time) as lastTime values(user)
21-
as user by initiatedBy, result, operationName | `security_content_ctime(firstTime)`
22-
| `security_content_ctime(lastTime)` | `azure_ad_global_administrator_role_assigned_filter`'
18+
search: '`azure_monitor_aad` operationName="Add member to role" properties.targetResources{}.modifiedProperties{}.newValue="\"Global Administrator\""
19+
| rename properties.* as *, initiatedBy.user.userPrincipalName as userPrincipalName, targetResources{}.displayName as displayName
20+
| eval initiatedBy = coalesce(userPrincipalName,src_user)
21+
| eval user = coalesce(user,mvfilter(displayName!="null"))
22+
| stats count min(_time) as firstTime max(_time) as lastTime values(user) as user by initiatedBy, result, operationName
23+
| `security_content_ctime(firstTime)`
24+
| `security_content_ctime(lastTime)`
25+
| `azure_ad_global_administrator_role_assigned_filter`'
2326
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
2427
Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details).
2528
You must be ingesting Azure Active Directory events into your Splunk environment

detections/cloud/azure_ad_privileged_role_assigned.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Azure AD Privileged Role Assigned
22
id: a28f0bc3-3400-4a6e-a2da-89b9e95f0d2a
3-
version: 3
4-
date: '2024-05-29'
5-
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
3+
version: 4
4+
date: '2024-07-02'
5+
author: Mauricio Velazco, Gowthamaraj Rajendran, Dean Luxton, Splunk
66
status: production
77
type: TTP
88
description: The following analytic detects the assignment of privileged Azure Active
@@ -14,8 +14,10 @@ description: The following analytic detects the assignment of privileged Azure A
1414
over the Azure AD infrastructure.
1515
data_source:
1616
- Azure Active Directory Add member to role
17-
search: ' `azure_monitor_aad` "operationName"="Add member to role" | rename properties.* as *
18-
| rename initiatedBy.user.userPrincipalName as initiatedBy
17+
search: ' `azure_monitor_aad` "operationName"="Add member to role"
18+
| rename properties.* as *, initiatedBy.user.userPrincipalName as userPrincipalName, targetResources{}.displayName as displayName
19+
| eval initiatedBy = coalesce(userPrincipalName,src_user)
20+
| eval user = coalesce(user,mvfilter(displayName!="null"))
1921
| rename targetResources{}.modifiedProperties{}.newValue as roles
2022
| eval role=mvindex(roles,1)
2123
| stats count min(_time) as firstTime max(_time) as lastTime values(user) as user by initiatedBy, result, operationName, role

detections/cloud/azure_ad_service_principal_new_client_credentials.yml

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Azure AD Service Principal New Client Credentials
22
id: e3adc0d3-9e4b-4b5d-b662-12cec1adff2a
3-
version: 3
4-
date: '2024-05-11'
5-
author: Mauricio Velazco, Gowthamaraj Rajendran, Splunk
3+
version: 4
4+
date: '2024-07-02'
5+
author: Mauricio Velazco, Gowthamaraj Rajendran, Dean Luxton, Splunk
66
status: production
77
type: TTP
88
description: The following analytic detects the addition of new credentials to Service
@@ -15,11 +15,21 @@ description: The following analytic detects the addition of new credentials to S
1515
access and control over the Azure environment.
1616
data_source:
1717
- Azure Active Directory
18-
search: ' `azure_monitor_aad` category=AuditLogs operationName="Update application*Certificates
19-
and secrets management " | rename properties.* as * | rename targetResources{}.*
20-
as * | stats count min(_time) as firstTime max(_time) as lastTime values(displayName)
21-
as displayName by user, modifiedProperties{}.newValue, src_ip | `security_content_ctime(firstTime)`
22-
| `security_content_ctime(lastTime)` | `azure_ad_service_principal_new_client_credentials_filter`'
18+
search: ' `azure_monitor_aad` category=AuditLogs operationName="Update application*Certificates and secrets management*"
19+
| rename properties.* as *
20+
| rename targetResources{}.* as *
21+
| rename modifiedProperties{}.* as *
22+
| eval src_user=coalesce(user,identity), newValue=mvfilter(newValue!="\"KeyDescription\"")
23+
| stats count min(_time) as firstTime max(_time) as lastTime values(displayName) as displayName values(src_ip) as src_ip values(eval(mvfilter(oldValue!="null"))) as oldValue by src_user, object, newValue
24+
| spath input=oldValue output=oldValues path={}
25+
| spath input=newValue output=newValues path={}
26+
| mvexpand newValues
27+
| where NOT newValues IN (oldValues)
28+
| fields - newValue, oldValue, oldValues
29+
| rename newValues as newValue
30+
| `security_content_ctime(firstTime)`
31+
| `security_content_ctime(lastTime)`
32+
| `azure_ad_service_principal_new_client_credentials_filter`'
2333
how_to_implement: You must install the latest version of Splunk Add-on for Microsoft
2434
Cloud Services from Splunkbase (https://splunkbase.splunk.com/app/3110/#/details).
2535
You must be ingesting Azure Active Directory events into your Splunk environment.
@@ -42,12 +52,16 @@ tags:
4252
asset_type: Azure Active Directory
4353
confidence: 50
4454
impact: 70
45-
message: New credentials added for Service Principal by $user$
55+
message: New Service Principal credentials were added to $object$ by $src_user$
4656
mitre_attack_id:
4757
- T1098
4858
- T1098.001
4959
observable:
50-
- name: user
60+
- name: src_user
61+
type: User
62+
role:
63+
- Victim
64+
- name: object
5165
type: User
5266
role:
5367
- Victim

detections/endpoint/detect_new_local_admin_account.yml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Detect New Local Admin account
22
id: b25f6f62-0712-43c1-b203-083231ffd97d
3-
version: 4
4-
date: '2024-05-15'
3+
version: 5
4+
date: '2024-07-02'
55
author: David Dorsey, Splunk
66
status: production
77
type: TTP
@@ -10,10 +10,11 @@ description: |-
1010
data_source:
1111
- Windows Event Log Security 4732
1212
- Windows Event Log Security 4720
13-
search: '`wineventlog_security` EventCode=4720 OR (EventCode=4732 Group_Name=Administrators)
14-
| transaction src_user connected=false maxspan=180m | rename src_user as user |
15-
stats count min(_time) as firstTime max(_time) as lastTime by user dest | `security_content_ctime(firstTime)`
16-
| `security_content_ctime(lastTime)` | `detect_new_local_admin_account_filter`'
13+
search: '`wineventlog_security` (EventCode=4720) OR (EventCode=4732 Group_Name=Administrators)
14+
| stats dc(EventCode) as evCount min(_time) as _time range(_time) as duration values(src_user) as src_user values(src_user_category) as src_user_category values(dest_category) as dest_category by user dest
15+
| where evCount=2
16+
| fields - evCount, duration
17+
| `detect_new_local_admin_account_filter`'
1718
how_to_implement: You must be ingesting Windows event logs using the Splunk Windows
1819
TA and collecting event code 4720 and 4732
1920
known_false_positives: The activity may be legitimate. For this reason, it's best
@@ -39,6 +40,10 @@ tags:
3940
type: User
4041
role:
4142
- Victim
43+
- name: src_user
44+
type: User
45+
role:
46+
- Victim
4247
- name: dest
4348
type: Hostname
4449
role:

detections/endpoint/kerberos_pre_authentication_flag_disabled_in_useraccountcontrol.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Kerberos Pre-Authentication Flag Disabled in UserAccountControl
22
id: 0cb847ee-9423-11ec-b2df-acde48001122
3-
version: 2
4-
date: '2024-05-24'
5-
author: Mauricio Velazco, Splunk
3+
version: 3
4+
date: '2024-07-02'
5+
author: Mauricio Velazco, Dean Luxton, Splunk
66
status: production
77
type: TTP
88
description: The following analytic detects when the Kerberos Pre-Authentication flag
@@ -15,9 +15,10 @@ description: The following analytic detects when the Kerberos Pre-Authentication
1515
of sensitive information.
1616
data_source:
1717
- Windows Event Log Security 4738
18-
search: ' `wineventlog_security` EventCode=4738 MSADChangedAttributes="*Don''t Require
19-
Preauth'' - Enabled*" |rename Account_Name as user | table EventCode, user, dest,
20-
Security_ID, MSADChangedAttributes | `kerberos_pre_authentication_flag_disabled_in_useraccountcontrol_filter`'
18+
search: '`wineventlog_security` EventCode=4738 (UserAccountControl="%%2096" OR MSADChangedAttributes="*Don''t Require Preauth'' - Enabled*")
19+
| eval MSADChangedAttributes="''Don''t Require Preauth'' - Enabled"
20+
| table _time, source, EventCode, src_user, src_user_category, user, user_category, MSADChangedAttributes
21+
| `kerberos_pre_authentication_flag_disabled_in_useraccountcontrol_filter`'
2122
how_to_implement: To successfully implement this search, you need to be ingesting
2223
Domain Controller events. The Advanced Security Audit policy setting `User Account
2324
Management` within `Account Management` needs to be enabled.

detections/endpoint/windows_ad_replication_request_initiated_by_user_account.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ references:
4141
- https://adsecurity.org/?p=1729
4242
- https://www.linkedin.com/pulse/mimikatz-dcsync-event-log-detections-john-dwyer
4343
- https://github.com/SigmaHQ/sigma/blob/0.22-699-g29a5c6278/rules/windows/builtin/security/win_security_dcsync.yml
44+
- https://lantern.splunk.com/Security/Product_Tips/Enterprise_Security/Enabling_an_audit_trail_from_Active_Directory
4445
tags:
4546
analytic_story:
4647
- Sneaky Active Directory Persistence Tricks

detections/endpoint/windows_ad_replication_request_initiated_from_unsanctioned_location.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ references:
4545
- https://adsecurity.org/?p=1729
4646
- https://www.linkedin.com/pulse/mimikatz-dcsync-event-log-detections-john-dwyer
4747
- https://github.com/SigmaHQ/sigma/blob/0.22-699-g29a5c6278/rules/windows/builtin/security/win_security_dcsync.yml
48+
- https://lantern.splunk.com/Security/Product_Tips/Enterprise_Security/Enabling_an_audit_trail_from_Active_Directory
4849
tags:
4950
analytic_story:
5051
- Sneaky Active Directory Persistence Tricks

detections/endpoint/windows_admon_default_group_policy_object_modified.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Windows Admon Default Group Policy Object Modified
22
id: 83458004-db60-4170-857d-8572f16f070b
3-
version: 2
4-
date: '2024-05-28'
5-
author: Mauricio Velazco, Splunk
3+
version: 3
4+
date: '2024-07-02'
5+
author: Mauricio Velazco, Dean Luxton, Splunk
66
status: production
77
type: TTP
88
data_source:
@@ -15,10 +15,10 @@ description: The following analytic detects modifications to the default Group P
1515
persistence, or deploy malware across multiple hosts. If confirmed malicious, such
1616
modifications could lead to widespread policy enforcement changes, unauthorized
1717
access, and potential compromise of the entire domain environment.
18-
search: ' `admon` admonEventType=Update objectCategory="CN=Group-Policy-Container,CN=Schema,CN=Configuration,DC=*"
19-
(displayName="Default Domain Policy" OR displayName="Default Domain Controllers
20-
Policy") | stats min(_time) as firstTime max(_time) as lastTime values(gPCFileSysPath)
21-
by dcName, displayName | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
18+
search: ' `admon` admonEventType=Update objectCategory="CN=Group-Policy-Container,CN=Schema,CN=Configuration,DC=*" (displayName="Default Domain Policy" OR displayName="Default Domain Controllers Policy")
19+
| appendpipe [
20+
| map search="search `wineventlog_security` EventCode=5136 AttributeSyntaxOID=2.5.5.12 AttributeValue=$displayName$" | rename AttributeValue as displayName]
21+
| stats min(_time) as _time values(displayName) as gp_name, values(gPCFileSysPath) as gPCFileSysPath, values(src_user) as src_user, values(dest) as dest, values(dest_category) as dest_category, values(src_user_category) as src_user_category by displayName
2222
| `windows_admon_default_group_policy_object_modified_filter`'
2323
how_to_implement: To successfully implement this search, you need to be monitoring
2424
Active Directory logs using Admon. Details can be found here

detections/endpoint/windows_admon_group_policy_object_created.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Windows Admon Group Policy Object Created
22
id: 69201633-30d9-48ef-b1b6-e680805f0582
3-
version: 2
4-
date: '2024-05-20'
5-
author: Mauricio Velazco, Splunk
3+
version: 3
4+
date: '2024-07-02'
5+
author: Mauricio Velazco, Dean Luxton, Splunk
66
status: production
77
type: TTP
88
data_source:
@@ -14,10 +14,11 @@ description: The following analytic detects the creation of a new Group Policy O
1414
across an Active Directory network. If confirmed malicious, this activity could
1515
allow attackers to control system configurations, deploy ransomware, or propagate
1616
malware, significantly compromising the network's security.
17-
search: ' `admon` admonEventType=Update objectCategory="CN=Group-Policy-Container,CN=Schema,CN=Configuration,DC=*"
18-
versionNumber=0 displayName!="New Group Policy Object" | stats min(_time) as firstTime
19-
max(_time) as lastTime values(gPCFileSysPath) by dcName, displayName | `security_content_ctime(firstTime)`
20-
| `security_content_ctime(lastTime)` | `windows_admon_group_policy_object_created_filter`'
17+
search: ' `admon` admonEventType=Update objectCategory="CN=Group-Policy-Container,CN=Schema,CN=Configuration,DC=*" versionNumber=0 displayName!="New Group Policy Object"
18+
| appendpipe [
19+
| map search="search `wineventlog_security` EventCode=5136 AttributeSyntaxOID=2.5.5.12 AttributeValue=$displayName$" | rename AttributeValue as displayName]
20+
| stats min(_time) as _time values(displayName) as gp_name, values(gPCFileSysPath) as gPCFileSysPath, values(src_user) as src_user, values(dest) as dest, values(dest_category) as dest_category, values(src_user_category) as src_user_category by displayName
21+
| `windows_admon_group_policy_object_created_filter`'
2122
how_to_implement: To successfully implement this search, you need to be monitoring
2223
Active Directory logs using Admon. Details can be found here
2324
https://docs.splunk.com/Documentation/SplunkCloud/8.1.2101/Data/MonitorActiveDirectory

lookups/privileged_azure_ad_roles.csv

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
11
"azureadrole","isprvilegedadrole","description"
2+
"""Application Administrator""","True","Can create and manage all aspects of app registrations and enterprise apps."
3+
"""Application Developer""","True","Can create application registrations independent of the 'Users can register applications' setting."
24
"""Authentication Administrator""","True","Can access to view, set and reset authentication method information for any non-admin user."
3-
"""Authentication Policy Administrator""","True","Can create and manage the authentication methods policy, tenant-wide MFA settings, password protection policy, and verifiable credentials."
4-
"""Azure AD Joined Device Local Administrator""","True","Users assigned to this role are added to the local administrators group on Azure AD-joined devices."
5-
"""Azure DevOps Administrator""","True","Can manage Azure DevOps policies and settings."
6-
"""Azure Information Protection Administrator""","True","Can manage all aspects of the Azure Information Protection product."
5+
"""Authentication Extensibility Administrator""","True","Customize sign in and sign up experiences for users by creating and managing custom authentication extensions."
6+
"""B2C IEF Keyset Administrator""","True","Can manage secrets for federation and encryption in the Identity Experience Framework (IEF)."
77
"""Cloud Application Administrator""","True","Can create and manage all aspects of app registrations and enterprise apps except App Proxy."
8-
"""Cloud Device Administrator""","True","Limited access to manage devices in Azure AD."
9-
"""Compliance Administrator""","True","Can read and manage compliance configuration and reports in Azure AD and Microsoft 365."
8+
"""Cloud Device Administrator""","True","Limited access to manage devices in Microsoft Entra ID."
109
"""Conditional Access Administrator""","True","Can manage Conditional Access capabilities."
11-
"""Exchange Administrator""","True","Can manage all aspects of the Exchange product."
10+
"""Directory Synchronization Accounts""","True","Only used by Microsoft Entra Connect and Microsoft Entra Cloud Sync services."
11+
"""Directory Writers""","True","Can read and write basic directory information. For granting access to applications, not intended for users."
12+
"""Domain Name Administrator""","True","Can manage domain names in cloud and on-premises."
1213
"""External Identity Provider Administrator""","True","Can configure identity providers for use in direct federation."
13-
"""Groups Administrator""","True","Members of this role can create/manage groups, create/manage groups settings like naming and expiration policies, and view groups activity and audit reports."
14+
"""Global Administrator""","True","Can manage all aspects of Microsoft Entra ID and Microsoft services that use Microsoft Entra identities."
15+
"""Global Reader""","True","Can read everything that a Global Administrator can, but not update anything."
1416
"""Helpdesk Administrator""","True","Can reset passwords for non-administrators and Helpdesk Administrators."
15-
"""Hybrid Identity Administrator""","True","Can manage AD to Azure AD cloud provisioning, Azure AD Connect, Pass-through Authentication (PTA), Password hash synchronization (PHS), Seamless Single sign-on (Seamless SSO), and federation settings."
17+
"""Hybrid Identity Administrator""","True","Manage Active Directory to Microsoft Entra cloud provisioning, Microsoft Entra Connect, pass-through authentication (PTA), password hash synchronization (PHS), seamless single sign-on (seamless SSO), and federation settings. Does not have access to manage Microsoft Entra Connect Health."
1618
"""Intune Administrator""","True","Can manage all aspects of the Intune product."
17-
"""License Administrator""","True","Can manage product licenses on users and groups."
18-
"""Network Administrator""","True","Can manage network locations and review enterprise network design insights for Microsoft 365 Software as a Service applications."
19+
"""Lifecycle Workflows Administrator""","True","Create and manage all aspects of workflows and tasks associated with Lifecycle Workflows in Microsoft Entra ID."
20+
"""Partner Tier1 Support""","True","Do not use - not intended for general use."
21+
"""Partner Tier2 Support""","True","Do not use - not intended for general use."
1922
"""Password Administrator""","True","Can reset passwords for non-administrators and Password Administrators."
20-
"""Privileged Role Administrator""","True","Can manage role assignments in Azure AD, and all aspects of Privileged Identity Management."
21-
"""Security Administrator""","True","Can read security information and reports, and manage configuration in Azure AD and Office 365."
22-
"""SharePoint Administrator""","True","Can manage all aspects of the SharePoint service."
23-
"""Teams Administrator""","True","Can manage the Microsoft Teams service."
24-
"""User Administrator""","True","Can manage all aspects of users and groups, including resetting passwords for limited admins."
25-
"""Windows 365 Administrator""","True","Can provision and manage all aspects of Cloud PCs."
26-
23+
"""Privileged Authentication Administrator""","True","Can access to view, set and reset authentication method information for any user (admin or non-admin)."
24+
"""Privileged Role Administrator""","True","Can manage role assignments in Microsoft Entra ID, and all aspects of Privileged Identity Management."
25+
"""Security Administrator""","True","Can read security information and reports, and manage configuration in Microsoft Entra ID and Office 365."
26+
"""Security Operator""","True","Creates and manages security events."
27+
"""Security Reader""","True","Can read security information and reports in Microsoft Entra ID and Office 365."
28+
"""User Administrator""","True","Can manage all aspects of users and groups, including resetting passwords for limited admins."

0 commit comments

Comments
 (0)