← Back to SOC feed Coverage →

Privileged Accounts Locked Out

kql MEDIUM Azure-Sentinel
T1078.004
IdentityInfoSigninLogs
backdoorhuntingmicrosoftofficial
This rule was pulled from an open-source repository and enriched with AI. Validate in a test environment before deploying to production.
View original rule at Azure-Sentinel →
Retrieved: 2026-06-03T11:00:00Z · Confidence: medium

Hunt Hypothesis

Privileged accounts being locked out may indicate adversarial attempts to brute-force access or escalate privileges. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify potential credential compromise or lateral movement tactics.

KQL Query

let admins = (IdentityInfo
| where AssignedRoles contains "Admin" or GroupMembership has "Admin"
| summarize by tolower(AccountUPN));
SigninLogs
| where ResultType == 50053
| extend AccountUPN = tolower(UserPrincipalName)
| extend AltUPN = tolower(AlternateSignInName)
| where AccountUPN in (admins) or AltUPN in (admins)
| extend AccountCustomEntity = AccountUPN, IPCustomEntity = IPAddress

Analytic Rule Definition

id: fc12c925-84ce-4371-bcff-e745cd937da6
name: Privileged Accounts Locked Out
description: |
  'Identifies privileged accounts that have been locked out. Verify these lockout are due to legitimate user activity and not due to threat actors attempting to access the accounts.
  Ref : https://docs.microsoft.com/azure/active-directory/fundamentals/security-operations-privileged-accounts#things-to-monitor'
requiredDataConnectors:
  - connectorId: AzureActiveDirectory
    dataTypes:
      - SigninLogs
  - connectorId: BehaviorAnalytics
    dataTypes:
      - IdentityInfo
tactics:
  - InitialAccess
relevantTechniques:
  - T1078.004
query: |
  let admins = (IdentityInfo
  | where AssignedRoles contains "Admin" or GroupMembership has "Admin"
  | summarize by tolower(AccountUPN));
  SigninLogs
  | where ResultType == 50053
  | extend AccountUPN = tolower(UserPrincipalName)
  | extend AltUPN = tolower(AlternateSignInName)
  | where AccountUPN in (admins) or AltUPN in (admins)
  | extend AccountCustomEntity = AccountUPN, IPCustomEntity = IPAddress
entityMappings:
  - entityType: Account
    fieldMappings:
      - identifier: FullName
        columnName: AccountCustomEntity
  - entityType: IP
    fieldMappings:
      - identifier: Address
        columnName: IPCustomEntity
version: 1.1.0

Required Data Sources

Sentinel TableNotes
IdentityInfoEnsure this data connector is enabled
SigninLogsEnsure this data connector is enabled

MITRE ATT&CK Context

References

False Positive Guidance

Original source: https://github.com/Azure/Azure-Sentinel/blob/main/Hunting Queries/MultipleDataSources/PrivilegedAccountsLockedOut.yaml