Cross-source coverage
T1087.004 / ATT&CK
Account Discovery: Cloud Account
From MITRE ATT&CK 19.2
Adversaries may attempt to get a listing of cloud accounts. Cloud accounts are those created and configured by an organization for use by users, remote support, services, or for administration of resources within a cloud service provider or SaaS application.
With authenticated access there are several tools that can be used to find accounts. The Get-MsolRoleMember PowerShell cmdlet can be used to obtain account names given a role or permissions group in Office 365. The Azure CLI (AZ CLI) also provides an interface to obtain user accounts with authenticated access to a domain. The command az ad user list will list all users within a domain.
The AWS command aws iam list-users may be used to obtain a list of users in the current account while aws iam list-roles can obtain IAM roles that have a specified path prefix. In GCP, gcloud iam service-accounts list and gcloud projects get-iam-policy may be used to obtain a listing of service accounts and users in a project.
- Tactics
- Discovery
- Platforms
- IaaS · Identity Provider · Office Suite · SaaS
- Telemetry
-
Microsoft Entra ID Audit Logsazure:signinlogsm365:defenderAWS:CloudTrailazure:activityWinEventLog:PowerShellMicrosoft Graph API LogsGoogle Admin Auditsaas:okta
How MITRE says to detect it DET0386
Cloud Account Enumeration via API, CLI, and Scripting Interfaces
Identity Provider Analytic 1087
Enumeration of identity roles and users via API calls such as `Get-MsolRoleMember`, `az ad user list`, or Graph API tokens from unauthorized users or automation accounts.
Microsoft Entra ID Audit LogsRoleManagement.Read.Directory or Directory.Read.Allazure:signinlogsInteractive/Non-Interactive Sign-Inm365:defenderActivity Log: Command Invocation
IaaS Analytic 1088
Use of AWS CLI (`aws iam list-users`, `list-roles`), Azure CLI (`az ad user list`), or GCP CLI (`gcloud iam service-accounts list`) from endpoints or cloud shells where such activity is unexpected.
AWS:CloudTrailAWS IAM: ListUsers, ListRolesazure:activityAzure CLI Operation: Microsoft.Graph/users/read
Office Suite Analytic 1089
Bulk enumeration of cloud user email identities through `Get-Recipient`, `Get-Mailbox`, `Get-User`, or Graph API directory listings by abnormal accounts or suspicious sessions.
WinEventLog:PowerShellCmdletName: Get-Recipient, Get-UserMicrosoft Graph API Logsusers.list, directoryObjects.getByIds
SaaS Analytic 1090
Access to organizational directories via Google Workspace Directory API, Slack SCIM, or Okta SCIM by apps or identities outside normal roles.
Google Admin Auditusers.list, groups.listsaas:oktaSystem API Call: user.read, group.read
elastic/detection-rules
13 rules| Detection | Severity | Format |
|---|---|---|
| Azure AD Graph Access with Suspicious User-Agent | High | Elastic TOML |
| Azure AD Graph Potential Enumeration (ROADrecon) | High | Elastic TOML |
| Entra ID OAuth Device Code Sign-in to Azure AD Graph Enumeration | High | Elastic TOML |
| Entra ID Sign-in BloodHound Suite User-Agent Detected | High | Elastic TOML |
| Entra ID Sign-in TeamFiltration User-Agent Detected | High | Elastic TOML |
| AWS EC2 Role GetCallerIdentity from New Source AS Organization | Medium | Elastic TOML |
| AWS IAM Principal Enumeration via UpdateAssumeRolePolicy | Medium | Elastic TOML |
| AWS STS GetCallerIdentity API Called for the First Time | Medium | Elastic TOML |
| Azure AD Graph Access with Unusual Client and User | Medium | Elastic TOML |
| Azure AD Graph High 4xx Error Ratio from User | Medium | Elastic TOML |
+ 3 more from elastic/detection-rules → showing the 10 highest-severity
Bert-JanP/Hunting-Queries-Detection-Rules
5 rules · 4 families| Detection | Severity | Format |
|---|---|---|
| AzureHound Detection 2 variants | Undefined | KQL |
| AzureHound Detection 2 variants | Undefined | KQL |
| Encoded Powershell Commands That Have Potentially Performed Recon Activities | Undefined | KQL |
| MITRE ATT&CK Mapping | Undefined | KQL |
| Operation download all users in Azure Active directory performed | Undefined | KQL |
splunk/security_content
4 rules| Detection | Severity | Format |
|---|---|---|
| Azure AD AzureHound UserAgent Detected | Undefined | SPL |
| Azure AD Service Principal Enumeration | Undefined | SPL |
| Okta IDP Lifecycle Modifications | Undefined | SPL |
| Okta Unauthorized Access to Application | Undefined | SPL |
SigmaHQ/sigma
3 rules| Detection | Severity | Format |
|---|---|---|
| Discovery Using AzureHound | High | Sigma |
| AWS STS GetCallerIdentity Enumeration Via TruffleHog | Medium | Sigma |
| RBAC Permission Enumeration Attempt | Low | Sigma |
panther-labs/panther-analysis
2 rules| Detection | Severity | Format |
|---|---|---|
| AWS STS GetCallerIdentity via TruffleHog | Medium | Panther Python |
| Azure Key Vault Key Accessed or Recovered | Medium | Panther Python |