Detection rules › Sublime MQL

Credential phishing: Financial lure via ActiveCampaign infrastructure

Severity
medium
Type
rule
Source
github.com/sublime-security/sublime-rules

Detects inbound phishing messages sent via ActiveCampaign using identifiable infrastructure fingerprints and hidden boilerplate text. Covers a wide range of lure themes including credit cards, loans, deposits, account updates, and vague document or verification prompts. Requires NLU Financial Communications topic classification.

Threat classification

Sublime's own taxonomy (not MITRE ATT&CK).

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesSocial engineering

Event coverage

Rule body MQL

type.inbound
and strings.contains(headers.mailer, "ActiveCampaign")
and (
  strings.ilike(body.current_thread.text,
                "*Piratini*",
                "*45.405.898/0001-16*",
                "*Cancelar inscri*",
                "*Matem?tica Genial*"
  )
  or strings.ilike(body.html.raw,
                   "*belonging to Spun*",
                   "*affiliated with Spun*"
  )
)
and (
  length(html.xpath(body.html,
                    '//*[contains(@style, "background") and contains(@style, "padding")] | //a[contains(@class, "es-button")]'
         ).nodes
  ) > 0
  or length(html.xpath(body.html, '//a/img').nodes) > 0
)
and ml.nlu_classifier(body.current_thread.text).language == "english"
and not any(ml.nlu_classifier(body.current_thread.text).topics,
            .name in ("Health and Wellness", "Entertainment and Sports")
            and .confidence == "high"
)
and not (
  sender.email.domain.root_domain in $high_trust_sender_root_domains
  and coalesce(headers.auth_summary.dmarc.pass, false)
)

Detection logic

Scope: inbound message.

Detects inbound phishing messages sent via ActiveCampaign using identifiable infrastructure fingerprints and hidden boilerplate text. Covers a wide range of lure themes including credit cards, loans, deposits, account updates, and vague document or verification prompts. Requires NLU Financial Communications topic classification.

  1. inbound message
  2. headers.mailer contains 'ActiveCampaign'
  3. any of:
    • body.current_thread.text matches any of 4 patterns
      • *Piratini*
      • *45.405.898/0001-16*
      • *Cancelar inscri*
      • *Matem?tica Genial*
    • body.html.raw matches any of 2 patterns
      • *belonging to Spun*
      • *affiliated with Spun*
  4. any of:
    • length(html.xpath(body.html, '//*[contains(@style, "background") and contains(@style, "padding")] | //a[contains(@class, "es-button")]').nodes) > 0
    • length(html.xpath(body.html, '//a/img').nodes) > 0
  5. ml.nlu_classifier(body.current_thread.text).language is 'english'
  6. not:
    • any of ml.nlu_classifier(body.current_thread.text).topics where all hold:
      • .name in ('Health and Wellness', 'Entertainment and Sports')
      • .confidence is 'high'
  7. not:
    • all of:
      • sender.email.domain.root_domain in $high_trust_sender_root_domains
      • coalesce(headers.auth_summary.dmarc.pass)

Inspects: body.current_thread.text, body.html, body.html.raw, headers.auth_summary.dmarc.pass, headers.mailer, sender.email.domain.root_domain, type.inbound. Sensors: html.xpath, ml.nlu_classifier, strings.contains, strings.ilike. Reference lists: $high_trust_sender_root_domains.

Indicators matched (10)

FieldMatchValue
strings.containssubstringActiveCampaign
strings.ilikesubstring*Piratini*
strings.ilikesubstring*45.405.898/0001-16*
strings.ilikesubstring*Cancelar inscri*
strings.ilikesubstring*Matem?tica Genial*
strings.ilikesubstring*belonging to Spun*
strings.ilikesubstring*affiliated with Spun*
ml.nlu_classifier(body.current_thread.text).topics[].namememberHealth and Wellness
ml.nlu_classifier(body.current_thread.text).topics[].namememberEntertainment and Sports
ml.nlu_classifier(body.current_thread.text).topics[].confidenceequalshigh