Attachment: Callback phishing solicitation via image file
A fraudulent invoice/receipt found in an image attachment. Callback Phishing is an attempt by an attacker to solicit the victim (recipient) to call a phone number. The resulting interaction could lead to a multitude of attacks ranging from Financial theft, Remote Access Trojan (RAT) Installation or Ransomware Deployment.
Sublime rule (View on GitHub)
1name: "Attachment: Callback phishing solicitation via image file"
2description: |
3 A fraudulent invoice/receipt found in an image attachment.
4 Callback Phishing is an attempt by an attacker to solicit the victim (recipient) to call a phone number.
5 The resulting interaction could lead to a multitude of attacks ranging from Financial theft, Remote Access Trojan (RAT) Installation or Ransomware Deployment.
6type: "rule"
7authors:
8 - twitter: "vector_sec"
9severity: "high"
10source: |
11 type.inbound
12 and (
13 not profile.by_sender().solicited
14 or (
15 profile.by_sender().any_messages_malicious_or_spam
16 and not profile.by_sender().any_messages_benign
17 )
18 )
19 and not (
20 subject.is_reply
21 and headers.in_reply_to is not null
22 )
23 and not profile.by_sender_email().prevalence == "common"
24 and (
25 sender.email.domain.root_domain in $free_email_providers
26 or sender.email.domain.root_domain in ("onmicrosoft.com")
27 or (
28 (
29 length(recipients.to) == 0
30 or all(recipients.to, .display_name == "Undisclosed recipients")
31 )
32 and length(recipients.cc) == 0
33 and length(recipients.bcc) == 0
34 )
35 )
36 and any(attachments,
37 // exclude images taken with mobile cameras and screenshots from android
38 .file_type in $file_types_images
39 and (
40 any(file.explode(.),
41 not any(.scan.exiftool.fields,
42 .key == "Model"
43 or (
44 .key == "Software"
45 and strings.starts_with(.value, "Android")
46 )
47 )
48 // exclude images taken with mobile cameras and screenshots from Apple
49 and not any(.scan.exiftool.fields,
50 .key == "DeviceManufacturer"
51 and .value == "Apple Computer Inc."
52 )
53 and not any(.scan.exiftool.fields,
54 .key == "UserComment" and .value == "Screenshot"
55 )
56 // 4 of the following strings are found
57 and 4 of (
58 // this section is synced with attachment_callback_phish_with_pdf.yml and body_callback_phishing_no_attachment.yml
59 strings.icontains(.scan.ocr.raw, "purchase"),
60 strings.icontains(.scan.ocr.raw, "payment"),
61 strings.icontains(.scan.ocr.raw, "transaction"),
62 strings.icontains(.scan.ocr.raw, "subscription"),
63 strings.icontains(.scan.ocr.raw, "antivirus"),
64 strings.icontains(.scan.ocr.raw, "order"),
65 strings.icontains(.scan.ocr.raw, "support"),
66 strings.icontains(.scan.ocr.raw, "help line"),
67 strings.icontains(.scan.ocr.raw, "receipt"),
68 strings.icontains(.scan.ocr.raw, "invoice"),
69 strings.icontains(.scan.ocr.raw, "call"),
70 strings.icontains(.scan.ocr.raw, "helpdesk"),
71 strings.icontains(.scan.ocr.raw, "cancel"),
72 strings.icontains(.scan.ocr.raw, "renew"),
73 strings.icontains(.scan.ocr.raw, "refund"),
74 regex.icontains(.scan.ocr.raw, "(?:reach|contact) us at"),
75 strings.icontains(.scan.ocr.raw, "+1"),
76 strings.icontains(.scan.ocr.raw, "amount"),
77 strings.icontains(.scan.ocr.raw, "charged"),
78 strings.icontains(.scan.ocr.raw, "crypto"),
79 strings.icontains(.scan.ocr.raw, "wallet address"),
80 regex.icontains(.scan.ocr.raw, '\$\d{3}\.\d{2}\b'),
81 regex.icontains(.scan.ocr.raw,
82 '\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}',
83 '\+?([ilo0-9]{1,2})?\s?\(?\d{3}\)?[\s\.\-⋅]{0,5}[ilo0-9]{3}[\s\.\-⋅]{0,5}[ilo0-9]{4}'
84 ),
85 )
86 // this section is synced with attachment_callback_phish_with_pdf.yml and body_callback_phishing_no_attachment.yml
87 and regex.icontains(.scan.ocr.raw,
88 '(p.{0,3}a.{0,3}y.{0,3}p.{0,3}a.{0,3}l|ma?c.?fee|n[o0]rt[o0]n|geek.{0,5}squad|ebay|symantec|best buy|lifel[o0]c|secure anywhere|starz|utilities premium|pc security|at&t)'
89 )
90 )
91 // this section is synced with attachment_callback_phish_with_pdf.yml and body_callback_phishing_no_attachment.yml
92 or any(ml.logo_detect(.).brands,
93 .name in (
94 "PayPal",
95 "Norton",
96 "GeekSquad",
97 "Ebay",
98 "McAfee",
99 "AT&T"
100 )
101 )
102 )
103 )
104attack_types:
105 - "Callback Phishing"
106tactics_and_techniques:
107 - "Evasion"
108 - "Free email provider"
109 - "Out of band pivot"
110 - "Social engineering"
111 - "Image as content"
112detection_methods:
113 - "Content analysis"
114 - "Optical Character Recognition"
115 - "Sender analysis"
116 - "URL analysis"
117 - "Computer Vision"
118id: "60acbb36-8ed1-562e-8027-260c2fdf0f04"