Detect Establish Accounts in Microsoft Sentinel
This detection identifies observable indicators of adversary account establishment activity within the target environment — specifically inbound communications from newly created or privacy-focused email accounts targeting multiple employees, suspicious authentication attempts from externally established personas, and endpoint connections to account creation infrastructure. Since T1585 is a PRE-ATT&CK technique occurring outside the victim network, detections focus on the downstream effects: spearphishing precursor activity from zero-history email accounts, bulk contact campaigns from free/disposable email providers, and network telemetry showing corporate endpoints researching persona-associated platforms. Coverage spans all three sub-techniques: social media (T1585.001), email (T1585.002), and cloud account (T1585.003) establishment.
MITRE ATT&CK
- Tactic
- Resource Development
- Technique
- T1585 Establish Accounts
- Canonical reference
- https://attack.mitre.org/techniques/T1585/
KQL Detection Query
let PrivacyEmailDomains = dynamic([
"protonmail.com", "proton.me", "tutanota.com", "tutamail.com",
"cock.li", "disroot.org", "riseup.net", "mailfence.com",
"guerrillamail.com", "temp-mail.org", "mailinator.com",
"10minutemail.com", "throwam.com", "yopmail.com"
]);
let SuspiciousFreeProviders = dynamic([
"gmail.com", "yahoo.com", "hotmail.com", "outlook.com",
"live.com", "icloud.com", "aol.com"
]);
let LookbackDays = 14d;
EmailEvents
| where TimeGenerated > ago(LookbackDays)
| where DeliveryAction in ("Delivered", "Junked", "Blocked")
| where EmailDirection == "Inbound"
| extend SenderDomain = tolower(tostring(split(SenderFromAddress, "@")[1]))
| where SenderDomain in~ (PrivacyEmailDomains) or SenderDomain in~ (SuspiciousFreeProviders)
| summarize
EmailCount = count(),
TargetedUsers = dcount(RecipientEmailAddress),
TargetedRecipients = make_set(RecipientEmailAddress, 10),
AttachmentEmails = countif(AttachmentCount > 0),
LinkEmails = countif(UrlCount > 0),
DeliveredCount = countif(DeliveryAction == "Delivered"),
JunkedCount = countif(DeliveryAction == "Junked"),
SampleSubjects = make_set(Subject, 5),
FirstContact = min(TimeGenerated),
LastContact = max(TimeGenerated)
by SenderFromAddress, SenderDomain
| extend
CampaignDurationHours = datetime_diff("hour", LastContact, FirstContact),
IsPrivacyProvider = SenderDomain in~ (PrivacyEmailDomains),
IsFreeProvider = SenderDomain in~ (SuspiciousFreeProviders)
| extend RiskScore =
// Multi-target contact is a strong signal
case(TargetedUsers >= 10, 40, TargetedUsers >= 5, 25, TargetedUsers >= 2, 10, 0)
// Privacy/anonymous providers weighted higher
+ case(IsPrivacyProvider, 25, IsFreeProvider and TargetedUsers >= 3, 15, 0)
// Attachment-bearing emails increase risk
+ case(AttachmentEmails >= 3, 20, AttachmentEmails >= 1, 10, 0)
// Link-only campaigns (credential harvest setup)
+ case(LinkEmails >= 5 and AttachmentEmails == 0, 15, LinkEmails >= 2, 8, 0)
// Burst pattern within short window
+ case(EmailCount >= 5 and CampaignDurationHours <= 2, 15, 0)
| where RiskScore >= 25
| project
TimeGenerated = FirstContact,
SenderFromAddress,
SenderDomain,
IsPrivacyProvider,
EmailCount,
TargetedUsers,
TargetedRecipients,
AttachmentEmails,
LinkEmails,
DeliveredCount,
JunkedCount,
CampaignDurationHours,
SampleSubjects,
RiskScore,
LastContact
| order by RiskScore desc Detects inbound email campaigns from privacy-focused or free email providers targeting multiple employees, a behavioral signature of adversary persona-based spearphishing precursor activity. Scores risk based on provider type, number of targeted users, presence of attachments or links, and burst timing patterns consistent with automated persona-driven contact campaigns.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate mass newsletters or marketing emails from Gmail/Yahoo senders — filter by adding known sender domains to allowlist
- Corporate recruitment contacts from candidates using personal email accounts targeting HR or hiring managers
- External security researchers or vendors using ProtonMail for legitimate privacy reasons contacting security teams
- Conference or event organizers using free email providers sending bulk invitations to multiple employees
Other platforms for T1585
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Simulate Persona-Based Inbound Email Campaign from Privacy Provider
Expected signal: EmailEvents table in Microsoft Defender for Office 365 should show matching records; Message Trace output confirms telemetry is flowing for privacy-provider senders
- Test 2Test Network Detection for Social Media Account Registration Activity
Expected signal: Sysmon Event ID 22 (DNS Query) for registration domains; DeviceNetworkEvents ConnectionSuccess/ConnectionAttempted events for HTTPS connections to signup paths
- Test 3Simulate Cloud Account Creation for Persona Infrastructure (Azure CLI)
Expected signal: AuditLogs in Azure AD / Microsoft Sentinel: Operation=Add application or Invite external user, Category=ApplicationManagement or UserManagement. CloudAppEvents table should show account creation activity.
References (8)
- https://attack.mitre.org/techniques/T1585/
- https://attack.mitre.org/techniques/T1585/001/
- https://attack.mitre.org/techniques/T1585/002/
- https://attack.mitre.org/techniques/T1585/003/
- https://www.mandiant.com/resources/apt1-exposing-one-of-chinas-cyber-espionage-units
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-249a
- https://www.trendmicro.com/en_us/research/14/e/newscaster-an-iranian-threat-within-social-networks.html
- https://www.youtube.com/watch?v=G0rKrTCZ_Ek
Unlock Pro Content
Get the full detection package for T1585 including response playbook, investigation guide, and atomic red team tests.