Callback phishing via Microsoft comment
Detects callback scam messages originating from legitimate Microsoft infrastructure but containing fraudulent content designed to trick recipients into calling scammer phone numbers. The message includes typical callback phishing language around purchases, payments, subscriptions, or support services along with embedded phone numbers, while passing Microsoft's authentication checks.
Sublime rule (View on GitHub)
1name: "Callback phishing via Microsoft comment"
2description: "Detects callback scam messages originating from legitimate Microsoft infrastructure but containing fraudulent content designed to trick recipients into calling scammer phone numbers. The message includes typical callback phishing language around purchases, payments, subscriptions, or support services along with embedded phone numbers, while passing Microsoft's authentication checks."
3type: "rule"
4severity: "medium"
5source: |
6 type.inbound
7 and length(attachments) == 0
8
9 // Legitimate MicrosoftOnline sending infratructure
10 // or invites@microsoft.com abuse
11 and (
12 (
13 sender.email.domain.root_domain in ('microsoftonline.com')
14 or sender.email.email == "invites@microsoft.com"
15 )
16 and (headers.auth_summary.spf.pass or headers.auth_summary.dmarc.pass)
17
18 // Callback Phishing
19 and (
20 any(ml.nlu_classifier(body.current_thread.text).intents,
21 .name in ("callback_scam")
22 and .confidence in ("medium", "high")
23 and length(body.current_thread.text) < 1750
24 )
25 or 3 of (
26 strings.ilike(body.current_thread.text, '*purchase*'),
27 strings.ilike(body.current_thread.text, '*payment*'),
28 strings.ilike(body.current_thread.text, '*transaction*'),
29 strings.ilike(body.current_thread.text, '*subscription*'),
30 strings.ilike(body.current_thread.text, '*antivirus*'),
31 strings.ilike(body.current_thread.text, '*order*'),
32 strings.ilike(body.current_thread.text, '*support*'),
33 strings.ilike(body.current_thread.text, '*help line*'),
34 strings.ilike(body.current_thread.text, '*receipt*'),
35 strings.ilike(body.current_thread.text, '*invoice*'),
36 strings.ilike(body.current_thread.text, '*call*'),
37 strings.ilike(body.current_thread.text, '*cancel*'),
38 strings.ilike(body.current_thread.text, '*renew*'),
39 strings.ilike(body.current_thread.text, '*refund*')
40 )
41 )
42 // phone number regex
43 and any([body.current_thread.text, subject.subject],
44 regex.icontains(.,
45 '\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}',
46 '\+?([ilo0-9]{1,2})?\s?\(?\d{3}\)?[\s\.\-⋅]{0,5}[ilo0-9]{3}[\s\.\-⋅]{0,5}[ilo0-9]{4}'
47 )
48 )
49 )
50
51attack_types:
52 - "Callback Phishing"
53tactics_and_techniques:
54 - "Impersonation: Brand"
55 - "Out of band pivot"
56 - "Social engineering"
57detection_methods:
58 - "Content analysis"
59 - "Header analysis"
60 - "Natural Language Understanding"
61 - "Sender analysis"
62id: "8346c7b9-1b46-50e7-b04e-b32969db8737"