T1585

Establish Accounts

Resource Development Last updated:

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.

What is T1585 Establish Accounts?

Establish Accounts (T1585) maps to the Resource Development tactic — the adversary is trying to establish resources they can use to support operations in MITRE ATT&CK.

This page provides production-ready detection logic for Establish Accounts, covering the data sources and telemetry it touches: Microsoft Defender for Office 365. The queries below are rated medium severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Resource Development
Technique
T1585 Establish Accounts
Canonical reference
https://attack.mitre.org/techniques/T1585/
Microsoft Sentinel / Defender
kusto
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.

medium severity medium confidence

Data Sources

Microsoft Defender for Office 365

Required Tables

EmailEvents

False Positives

  • 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

Sigma rule & cross-platform mapping

The detection logic for Establish Accounts (T1585) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  product: azure

Browse the community-maintained Sigma rules for this technique:


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.

  1. 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

  2. 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

  3. 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.

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections