T1585.003

Cloud Accounts

Adversaries may create accounts with cloud providers to support operations, including leveraging cloud storage (Dropbox, MEGA, OneDrive, AWS S3) for exfiltration or tool hosting, and using cloud infrastructure for C2. Cloud accounts may be created to impersonate legitimate services — Storm-1811 is documented creating Microsoft Teams accounts spoofing IT helpdesk personas to conduct vishing attacks. Detection must focus on observable usage of adversary-controlled cloud accounts within the victim environment, since the account creation itself occurs externally.

Microsoft Sentinel / Defender
kusto
// Detection 1: External Microsoft Teams accounts with IT/helpdesk impersonation names (Storm-1811 TTP)
let HelpDeskKeywords = dynamic(["helpdesk", "help desk", "it support", "itsupport", "servicedesk", "service desk", "techsupport", "tech support", "itadmin", "sysadmin", "microsoftsupport", "microsoft support", "o365support", "m365support"]);
let ExternalTeamsMessages = OfficeActivity
| where TimeGenerated > ago(7d)
| where RecordType == "MicrosoftTeams"
| where Operation in ("MessageSent", "ChatCreated", "MeetingInvited")
| where CommunicationType == "OneOnOne" or CommunicationType == "GroupChat"
| extend SenderDomain = tostring(split(UserId, "@")[1])
| where SenderDomain !endswith ".onmicrosoft.com"
| extend SenderNameLower = tolower(tostring(UserId))
| where SenderNameLower has_any (HelpDeskKeywords)
| project TimeGenerated, UserId, SenderDomain, Operation, ClientIP, CommunicationType;
// Detection 2: Suspicious OAuth grants to cloud storage applications from new/unknown accounts
let SuspiciousCloudApps = dynamic(["Dropbox", "MEGA", "Box", "Google Drive", "pCloud", "Sync.com", "MediaFire"]);
let OAuthGrants = AuditLogs
| where TimeGenerated > ago(7d)
| where OperationName == "Consent to application"
| extend AppName = tostring(TargetResources[0].displayName)
| extend UserPrincipalName = tostring(InitiatedBy.user.userPrincipalName)
| extend IPAddress = tostring(InitiatedBy.user.ipAddress)
| where AppName has_any (SuspiciousCloudApps)
| project TimeGenerated, UserPrincipalName, AppName, IPAddress, OperationName;
// Detection 3: New external accounts accessing organizational SharePoint/OneDrive from unusual IPs
let NewExternalSignins = AADSignInLogs
| where TimeGenerated > ago(7d)
| where UserType == "Guest"
| where AppDisplayName in ("Microsoft Teams", "SharePoint Online", "OneDrive", "Office 365")
| where RiskLevelDuringSignIn in ("high", "medium")
| where NetworkLocationDetails !contains "corpnet"
| extend CountryCode = tostring(LocationDetails.countryOrRegion)
| extend City = tostring(LocationDetails.city)
| project TimeGenerated, UserPrincipalName, UserDisplayName, AppDisplayName, IPAddress, CountryCode, City, RiskLevelDuringSignIn, ConditionalAccessStatus;
// Union all detections
union ExternalTeamsMessages, OAuthGrants, NewExternalSignins
| sort by TimeGenerated desc
high severity medium confidence

Data Sources

Application Log: Application Log Content User Account: User Account Authentication Network Traffic: Network Traffic Content Microsoft Teams Audit Logs Azure Active Directory Sign-in Logs Azure Active Directory Audit Logs

Required Tables

OfficeActivity AuditLogs AADSignInLogs

False Positives

  • Legitimate third-party IT support vendors or MSPs contacting employees via Teams with support-themed display names
  • Employees voluntarily consenting to approved cloud storage integrations (Dropbox for Business, Box enterprise) for productivity purposes
  • Guest contractors or partners signing in from international locations for legitimate business collaboration
  • Security awareness training vendors simulating vishing via Teams with IT impersonation personas

Unlock Pro Content

Get the full detection package for T1585.003 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections