Back
Id763fc00b-4971-43c2-9cd1-f12b58a542bd
RulenamePROD (TM016.1) - GROUP - Added to Well-Known or Tier Model Group
DescriptionWell-Known Groups are classified as Tier 0, and Tier Model groups that provide permission over Tier Model objects.
SeverityHigh
TacticsPrivilegeEscalation
TechniquesT1078.002
Required data connectorsSecurityEvents
WindowsSecurityEvents
KindScheduled
Query frequency5m
Query period5m
Trigger threshold0
Trigger operatorgt
Source Urihttps://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Microsoft%20Active%20Directory%20Tier%20Model/Analytic%20Rules/TM016_GROUPAddedToWellKnownOrTierModelGroup.yaml
Version1.0.0
Arm template763fc00b-4971-43c2-9cd1-f12b58a542bd.json
Deploy To Azure
let adminGroups = dynamic([
    "CN=Domain Admins,CN=Users",
    "CN=Enterprise Admins,CN=Users",
    "CN=Administrators,CN=Builtin",
    "CN=Cert Publishers,CN=Users",
    "CN=Cloneable Domain Controllers,CN=Users",
    "CN=Denied RODC Password Replication Group,CN=Users",
    "CN=DnsAdmins,CN=Users",
    "CN=DnsUpdateProxy,CN=Users",
    "CN=Domain Controllers,CN=Users",
    "CN=Domain Guests,CN=Users",
    "CN=Enterprise Key Admins,CN=Users",
    "CN=Enterprise Read-only Domain Controllers,CN=Users",
    "CN=External Trust Accounts,CN=Users",
    "CN=Forest Trust Accounts,CN=Users",
    "CN=Group Policy Creator Owners,CN=Users",
    "CN=Key Admins,CN=Users",
    "CN=RAS and IAS Servers,CN=Users",
    "CN=Read-only Domain Controllers,CN=Users",
    "CN=Schema Admins,CN=Users",
    "CN=Access Control Assistance Operators,CN=Builtin",
    "CN=Account Operators,CN=Builtin",
    "CN=Backup Operators,CN=Builtin",
    "CN=Certificate Service DCOM Access,CN=Builtin",
    "CN=Cryptographic Operators,CN=Builtin",
    "CN=Distributed COM Users,CN=Builtin",
    "CN=Event Log Readers,CN=Builtin",
    "CN=Guests,CN=Builtin",
    "CN=Hyper-V Administrators,CN=Builtin",
    "CN=IIS_IUSRS,CN=Builtin",
    "CN=Incoming Forest Trust Builders,CN=Builtin",
    "CN=Network Configuration Operators,CN=Builtin",
    "CN=OpenSSH Users,CN=Builtin",
    "CN=Performance Log Users,CN=Builtin",
    "CN=Performance Monitor Users,CN=Builtin",
    "CN=Pre-Windows 2000 Compatible Access,CN=Builtin",
    "CN=Print Operators,CN=Builtin",
    "CN=RDS Endpoint Servers,CN=Builtin",
    "CN=RDS Management Servers,CN=Builtin",
    "CN=RDS Remote Access Servers,CN=Builtin",
    "CN=Remote Desktop Users,CN=Builtin",
    "CN=Remote Management Users,CN=Builtin",
    "CN=Replicator,CN=Builtin",
    "CN=Server Operators,CN=Builtin",
    "CN=Storage Replica Administrators,CN=Builtin",
    "CN=Terminal Server License Servers,CN=Builtin",
    "CN=Users,CN=Builtin",
    "CN=Windows Authorization Access Group,CN=Builtin",
    "CN=Tier 0 Admins,OU=Tier 0 Groups,OU=Tier 0,OU=Tier Model Administration",
    "CN=Tier 0 Server Operators,OU=Tier 0 Groups,OU=Tier 0,OU=Tier Model Administration",
    "CN=Tier 1 Admins,OU=Tier 1 Groups,OU=Tier 1,OU=Tier Model Administration",
    "CN=Tier 1 Server Operators,OU=Tier 1 Groups,OU=Tier 1,OU=Tier Model Administration",
    "CN=Tier 2 Admins,OU=Tier 2 Groups,OU=Tier 2,OU=Tier Model Administration"
]);
SecurityEvent
| where EventID == 5136
| extend EventData = tostring(EventData)
| where EventData has_any(adminGroups)
    and EventData has '"AttributeLDAPDisplayName">member'
    and EventData has 'OperationType">%%14674'
| extend GroupName_e = extract("<Data Name=\"ObjectDN\">([^<]+)</Data>", 1, EventData)
| extend GroupName = extract("(?i)CN=([^,]+)", 1, GroupName_e)
| extend GroupTier = case(
    GroupName has "Tier 0", "Tier 0",
    GroupName has "Tier 1", "Tier 1",
    GroupName has "Tier 2", "Tier 2",
    "Tier 0")
| extend ObjectName_e = extract("<Data Name=\"AttributeValue\">([^<]+)</Data>", 1, EventData)
| extend ObjectName = extract("(?i)CN=([^,]+)", 1, ObjectName_e)
| extend ObjectTier = case(
    ObjectName_e has "Tier 0", "Tier 0",
    ObjectName_e has "Tier 1", "Tier 1",
    ObjectName_e has "Tier 2", "Tier 2",
    "Outside Tier Model")
| extend Domain = extract("([^.]+\\.[^.]+)$", 1, Computer)
| extend ActivityType = extract("([a-zA-Z]+)\\.$", 1, Activity)
| extend SubjectUserName = extract("<Data Name=\"SubjectUserName\">([^<]+)</Data>", 1, EventData)
| extend SubjectDomainName = extract("<Data Name=\"SubjectDomainName\">([^<]+)</Data>", 1, EventData)
| extend Account = strcat(SubjectDomainName, "\\", SubjectUserName)
| extend OperationType = iff(EventData has 'OperationType">%%14674', "Added", tostring(OperationType))
| project TimeGenerated 
        , ObjectName
        , ObjectTier
        , ObjectType = AccountType
        , GroupName
        , GroupTier
        , ActivityType
        , OperationType
        , Account
        , Domain
        , Computer
        , Channel
        , EventID
        , EventData
relevantTechniques:
- T1078.002
triggerThreshold: 0
id: 763fc00b-4971-43c2-9cd1-f12b58a542bd
eventGroupingSettings:
  aggregationKind: AlertPerResult
alertDetailsOverride:
  alertDisplayNameFormat: (TM016.1) A member was added to {{GroupName}} which is a Well-Known or Tier Model Group
  alertDescriptionFormat: The following object {{ObjectName}} was added to a {{ObjectTier}}  Well-Known or Tier Model high privilege group.
queryPeriod: 5m
triggerOperator: gt
incidentConfiguration:
  createIncident: true
  groupingConfiguration:
    matchingMethod: AllEntities
    enabled: false
    reopenClosedIncident: false
    lookbackDuration: PT5H
status: Available
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Microsoft%20Active%20Directory%20Tier%20Model/Analytic%20Rules/TM016_GROUPAddedToWellKnownOrTierModelGroup.yaml
queryFrequency: 5m
requiredDataConnectors:
- dataTypes:
  - SecurityEvent
  connectorId: SecurityEvents
- dataTypes:
  - SecurityEvent
  connectorId: WindowsSecurityEvents
version: 1.0.0
tactics:
- PrivilegeEscalation
query: |
  let adminGroups = dynamic([
      "CN=Domain Admins,CN=Users",
      "CN=Enterprise Admins,CN=Users",
      "CN=Administrators,CN=Builtin",
      "CN=Cert Publishers,CN=Users",
      "CN=Cloneable Domain Controllers,CN=Users",
      "CN=Denied RODC Password Replication Group,CN=Users",
      "CN=DnsAdmins,CN=Users",
      "CN=DnsUpdateProxy,CN=Users",
      "CN=Domain Controllers,CN=Users",
      "CN=Domain Guests,CN=Users",
      "CN=Enterprise Key Admins,CN=Users",
      "CN=Enterprise Read-only Domain Controllers,CN=Users",
      "CN=External Trust Accounts,CN=Users",
      "CN=Forest Trust Accounts,CN=Users",
      "CN=Group Policy Creator Owners,CN=Users",
      "CN=Key Admins,CN=Users",
      "CN=RAS and IAS Servers,CN=Users",
      "CN=Read-only Domain Controllers,CN=Users",
      "CN=Schema Admins,CN=Users",
      "CN=Access Control Assistance Operators,CN=Builtin",
      "CN=Account Operators,CN=Builtin",
      "CN=Backup Operators,CN=Builtin",
      "CN=Certificate Service DCOM Access,CN=Builtin",
      "CN=Cryptographic Operators,CN=Builtin",
      "CN=Distributed COM Users,CN=Builtin",
      "CN=Event Log Readers,CN=Builtin",
      "CN=Guests,CN=Builtin",
      "CN=Hyper-V Administrators,CN=Builtin",
      "CN=IIS_IUSRS,CN=Builtin",
      "CN=Incoming Forest Trust Builders,CN=Builtin",
      "CN=Network Configuration Operators,CN=Builtin",
      "CN=OpenSSH Users,CN=Builtin",
      "CN=Performance Log Users,CN=Builtin",
      "CN=Performance Monitor Users,CN=Builtin",
      "CN=Pre-Windows 2000 Compatible Access,CN=Builtin",
      "CN=Print Operators,CN=Builtin",
      "CN=RDS Endpoint Servers,CN=Builtin",
      "CN=RDS Management Servers,CN=Builtin",
      "CN=RDS Remote Access Servers,CN=Builtin",
      "CN=Remote Desktop Users,CN=Builtin",
      "CN=Remote Management Users,CN=Builtin",
      "CN=Replicator,CN=Builtin",
      "CN=Server Operators,CN=Builtin",
      "CN=Storage Replica Administrators,CN=Builtin",
      "CN=Terminal Server License Servers,CN=Builtin",
      "CN=Users,CN=Builtin",
      "CN=Windows Authorization Access Group,CN=Builtin",
      "CN=Tier 0 Admins,OU=Tier 0 Groups,OU=Tier 0,OU=Tier Model Administration",
      "CN=Tier 0 Server Operators,OU=Tier 0 Groups,OU=Tier 0,OU=Tier Model Administration",
      "CN=Tier 1 Admins,OU=Tier 1 Groups,OU=Tier 1,OU=Tier Model Administration",
      "CN=Tier 1 Server Operators,OU=Tier 1 Groups,OU=Tier 1,OU=Tier Model Administration",
      "CN=Tier 2 Admins,OU=Tier 2 Groups,OU=Tier 2,OU=Tier Model Administration"
  ]);
  SecurityEvent
  | where EventID == 5136
  | extend EventData = tostring(EventData)
  | where EventData has_any(adminGroups)
      and EventData has '"AttributeLDAPDisplayName">member'
      and EventData has 'OperationType">%%14674'
  | extend GroupName_e = extract("<Data Name=\"ObjectDN\">([^<]+)</Data>", 1, EventData)
  | extend GroupName = extract("(?i)CN=([^,]+)", 1, GroupName_e)
  | extend GroupTier = case(
      GroupName has "Tier 0", "Tier 0",
      GroupName has "Tier 1", "Tier 1",
      GroupName has "Tier 2", "Tier 2",
      "Tier 0")
  | extend ObjectName_e = extract("<Data Name=\"AttributeValue\">([^<]+)</Data>", 1, EventData)
  | extend ObjectName = extract("(?i)CN=([^,]+)", 1, ObjectName_e)
  | extend ObjectTier = case(
      ObjectName_e has "Tier 0", "Tier 0",
      ObjectName_e has "Tier 1", "Tier 1",
      ObjectName_e has "Tier 2", "Tier 2",
      "Outside Tier Model")
  | extend Domain = extract("([^.]+\\.[^.]+)$", 1, Computer)
  | extend ActivityType = extract("([a-zA-Z]+)\\.$", 1, Activity)
  | extend SubjectUserName = extract("<Data Name=\"SubjectUserName\">([^<]+)</Data>", 1, EventData)
  | extend SubjectDomainName = extract("<Data Name=\"SubjectDomainName\">([^<]+)</Data>", 1, EventData)
  | extend Account = strcat(SubjectDomainName, "\\", SubjectUserName)
  | extend OperationType = iff(EventData has 'OperationType">%%14674', "Added", tostring(OperationType))
  | project TimeGenerated 
          , ObjectName
          , ObjectTier
          , ObjectType = AccountType
          , GroupName
          , GroupTier
          , ActivityType
          , OperationType
          , Account
          , Domain
          , Computer
          , Channel
          , EventID
          , EventData
name: PROD (TM016.1) - GROUP - Added to Well-Known or Tier Model Group
severity: High
entityMappings:
- entityType: Account
  fieldMappings:
  - identifier: FullName
    columnName: ObjectName
- entityType: Host
  fieldMappings:
  - identifier: HostName
    columnName: Computer
- entityType: Account
  fieldMappings:
  - identifier: FullName
    columnName: Account
customDetails:
  Domain: Domain
  ActivityType: ActivityType
  OperationType: OperationType
  ObjectTier: ObjectTier
  Computer: Computer
  EventID: EventID
  ObjectType: ObjectType
  ObjectName: ObjectName
  GroupName: GroupName
  Account: Account
  Channel: Channel
  EventData: EventData
  GroupTier: GroupTier
description: |
  Well-Known Groups are classified as Tier 0, and Tier Model groups that provide permission over Tier Model objects.
kind: Scheduled
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspace": {
      "type": "String"
    }
  },
  "resources": [
    {
      "apiVersion": "2024-01-01-preview",
      "id": "[concat(resourceId('Microsoft.OperationalInsights/workspaces/providers', parameters('workspace'), 'Microsoft.SecurityInsights'),'/alertRules/763fc00b-4971-43c2-9cd1-f12b58a542bd')]",
      "kind": "Scheduled",
      "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/763fc00b-4971-43c2-9cd1-f12b58a542bd')]",
      "properties": {
        "alertDetailsOverride": {
          "alertDescriptionFormat": "The following object {{ObjectName}} was added to a {{ObjectTier}}  Well-Known or Tier Model high privilege group.",
          "alertDisplayNameFormat": "(TM016.1) A member was added to {{GroupName}} which is a Well-Known or Tier Model Group"
        },
        "alertRuleTemplateName": "763fc00b-4971-43c2-9cd1-f12b58a542bd",
        "customDetails": {
          "Account": "Account",
          "ActivityType": "ActivityType",
          "Channel": "Channel",
          "Computer": "Computer",
          "Domain": "Domain",
          "EventData": "EventData",
          "EventID": "EventID",
          "GroupName": "GroupName",
          "GroupTier": "GroupTier",
          "ObjectName": "ObjectName",
          "ObjectTier": "ObjectTier",
          "ObjectType": "ObjectType",
          "OperationType": "OperationType"
        },
        "description": "Well-Known Groups are classified as Tier 0, and Tier Model groups that provide permission over Tier Model objects.\n",
        "displayName": "PROD (TM016.1) - GROUP - Added to Well-Known or Tier Model Group",
        "enabled": true,
        "entityMappings": [
          {
            "entityType": "Account",
            "fieldMappings": [
              {
                "columnName": "ObjectName",
                "identifier": "FullName"
              }
            ]
          },
          {
            "entityType": "Host",
            "fieldMappings": [
              {
                "columnName": "Computer",
                "identifier": "HostName"
              }
            ]
          },
          {
            "entityType": "Account",
            "fieldMappings": [
              {
                "columnName": "Account",
                "identifier": "FullName"
              }
            ]
          }
        ],
        "eventGroupingSettings": {
          "aggregationKind": "AlertPerResult"
        },
        "incidentConfiguration": {
          "createIncident": true,
          "groupingConfiguration": {
            "enabled": false,
            "lookbackDuration": "PT5H",
            "matchingMethod": "AllEntities",
            "reopenClosedIncident": false
          }
        },
        "OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Microsoft%20Active%20Directory%20Tier%20Model/Analytic%20Rules/TM016_GROUPAddedToWellKnownOrTierModelGroup.yaml",
        "query": "let adminGroups = dynamic([\n    \"CN=Domain Admins,CN=Users\",\n    \"CN=Enterprise Admins,CN=Users\",\n    \"CN=Administrators,CN=Builtin\",\n    \"CN=Cert Publishers,CN=Users\",\n    \"CN=Cloneable Domain Controllers,CN=Users\",\n    \"CN=Denied RODC Password Replication Group,CN=Users\",\n    \"CN=DnsAdmins,CN=Users\",\n    \"CN=DnsUpdateProxy,CN=Users\",\n    \"CN=Domain Controllers,CN=Users\",\n    \"CN=Domain Guests,CN=Users\",\n    \"CN=Enterprise Key Admins,CN=Users\",\n    \"CN=Enterprise Read-only Domain Controllers,CN=Users\",\n    \"CN=External Trust Accounts,CN=Users\",\n    \"CN=Forest Trust Accounts,CN=Users\",\n    \"CN=Group Policy Creator Owners,CN=Users\",\n    \"CN=Key Admins,CN=Users\",\n    \"CN=RAS and IAS Servers,CN=Users\",\n    \"CN=Read-only Domain Controllers,CN=Users\",\n    \"CN=Schema Admins,CN=Users\",\n    \"CN=Access Control Assistance Operators,CN=Builtin\",\n    \"CN=Account Operators,CN=Builtin\",\n    \"CN=Backup Operators,CN=Builtin\",\n    \"CN=Certificate Service DCOM Access,CN=Builtin\",\n    \"CN=Cryptographic Operators,CN=Builtin\",\n    \"CN=Distributed COM Users,CN=Builtin\",\n    \"CN=Event Log Readers,CN=Builtin\",\n    \"CN=Guests,CN=Builtin\",\n    \"CN=Hyper-V Administrators,CN=Builtin\",\n    \"CN=IIS_IUSRS,CN=Builtin\",\n    \"CN=Incoming Forest Trust Builders,CN=Builtin\",\n    \"CN=Network Configuration Operators,CN=Builtin\",\n    \"CN=OpenSSH Users,CN=Builtin\",\n    \"CN=Performance Log Users,CN=Builtin\",\n    \"CN=Performance Monitor Users,CN=Builtin\",\n    \"CN=Pre-Windows 2000 Compatible Access,CN=Builtin\",\n    \"CN=Print Operators,CN=Builtin\",\n    \"CN=RDS Endpoint Servers,CN=Builtin\",\n    \"CN=RDS Management Servers,CN=Builtin\",\n    \"CN=RDS Remote Access Servers,CN=Builtin\",\n    \"CN=Remote Desktop Users,CN=Builtin\",\n    \"CN=Remote Management Users,CN=Builtin\",\n    \"CN=Replicator,CN=Builtin\",\n    \"CN=Server Operators,CN=Builtin\",\n    \"CN=Storage Replica Administrators,CN=Builtin\",\n    \"CN=Terminal Server License Servers,CN=Builtin\",\n    \"CN=Users,CN=Builtin\",\n    \"CN=Windows Authorization Access Group,CN=Builtin\",\n    \"CN=Tier 0 Admins,OU=Tier 0 Groups,OU=Tier 0,OU=Tier Model Administration\",\n    \"CN=Tier 0 Server Operators,OU=Tier 0 Groups,OU=Tier 0,OU=Tier Model Administration\",\n    \"CN=Tier 1 Admins,OU=Tier 1 Groups,OU=Tier 1,OU=Tier Model Administration\",\n    \"CN=Tier 1 Server Operators,OU=Tier 1 Groups,OU=Tier 1,OU=Tier Model Administration\",\n    \"CN=Tier 2 Admins,OU=Tier 2 Groups,OU=Tier 2,OU=Tier Model Administration\"\n]);\nSecurityEvent\n| where EventID == 5136\n| extend EventData = tostring(EventData)\n| where EventData has_any(adminGroups)\n    and EventData has '\"AttributeLDAPDisplayName\">member'\n    and EventData has 'OperationType\">14674', \"Added\", tostring(OperationType))\n| project TimeGenerated \n        , ObjectName\n        , ObjectTier\n        , ObjectType = AccountType\n        , GroupName\n        , GroupTier\n        , ActivityType\n        , OperationType\n        , Account\n        , Domain\n        , Computer\n        , Channel\n        , EventID\n        , EventData\n",
        "queryFrequency": "PT5M",
        "queryPeriod": "PT5M",
        "severity": "High",
        "status": "Available",
        "subTechniques": [
          "T1078.002"
        ],
        "suppressionDuration": "PT1H",
        "suppressionEnabled": false,
        "tactics": [
          "PrivilegeEscalation"
        ],
        "techniques": [
          "T1078"
        ],
        "templateVersion": "1.0.0",
        "triggerOperator": "GreaterThan",
        "triggerThreshold": 0
      },
      "type": "Microsoft.OperationalInsights/workspaces/providers/alertRules"
    }
  ]
}