Callback Phishing: AOL Senders with Suspicious HTML Template or PDF Attachment
Detects a specific behavioral pattern from AOL senders using consistent HTML templates and PDF attachment characteristics. The pattern includes particular Yahoo-style formatting with specific font families, and standardized PDF metadata when attachments are present.
Sublime rule (View on GitHub)
1name: "Callback Phishing: AOL Senders with Suspicious HTML Template or PDF Attachment"
2description: "Detects a specific behavioral pattern from AOL senders using consistent HTML templates and PDF attachment characteristics. The pattern includes particular Yahoo-style formatting with specific font families, and standardized PDF metadata when attachments are present."
3type: "rule"
4severity: "high"
5source: |
6 type.inbound
7 // sender is aol
8 and sender.email.domain.root_domain == "aol.com"
9
10 // with no restored/benign messages
11 and not profile.by_sender_email().any_messages_benign
12
13 // there is a single recipient
14 and length(recipients.to) == 1
15 and length(recipients.cc) == 0
16 and length(recipients.bcc) == 0
17
18 // is not a reply
19 and headers.in_reply_to is null
20
21 // this is another way to limit replies but need to account for
22 // a behavior where Yahoo/Aol seems to include it's own message ID as a reference
23 and length(headers.references) == 1
24
25 // all message-id values end in mail.yahoo.com, some benign messages use @aol.com
26 and strings.iends_with(headers.message_id, '@mail.yahoo.com>')
27
28 // All are using the legit Yahoo X-Mailer
29 // this removes AOL sent from iphones and other non AOL client
30 and strings.ends_with(headers.mailer, 'AolMailNorrin')
31
32 // exclude common recipients which interact with aol addresses that are commonly (but not always) benign
33 // recipeint exclusions are suggested for other recipients
34 and (
35 // no attachment
36 (
37 length(attachments) == 0
38 // if there are no attachments focus on the HTML template being observed
39 and (
40
41 // yahoo div followed by <br>
42 // // verdana, helvetica, sans-serif;
43 strings.icontains(body.html.raw,
44 "<div class=\"yahoo-style-wrap\" style=\"font-family:verdana, helvetica, sans-serif;font-size:18px;\">\r\n<div dir=\"ltr\" data-setdir=\"false\"><br>\r\n"
45 )
46 // // Helvetica Neue, Helvetica, Arial, sans-serif;
47 or strings.icontains(body.html.raw,
48 "<div class=\"yahoo-style-wrap\" style=\"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:18px;\">\r\n<div dir=\"ltr\" data-setdir=\"false\"><br>\r\n"
49 )
50 // yahoo div followed by doctype
51 // // verdana, helvetica, sans-serif;
52 or strings.icontains(body.html.raw,
53 "<div class=\"yahoo-style-wrap\" style=\"font-family:verdana, helvetica, sans-serif;font-size:18px;\">\r\n<div dir=\"ltr\" data-setdir=\"false\"><!DOCTYPE html>"
54 )
55 // // Helvetica Neue, Helvetica, Arial, sans-serif;
56 or strings.icontains(body.html.raw,
57 "<div class=\"yahoo-style-wrap\" style=\"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:18px;\">\r\n<div dir=\"ltr\" data-setdir=\"false\"><!DOCTYPE html>"
58 )
59 )
60 )
61 or (
62 // if there is an attachment, there can be only one
63 length(attachments) == 1
64 and all(attachments,
65 // it's a PDF,
66 .file_type == "pdf"
67 and (
68 // static content_id value for the attachments
69 .content_id == '<@yahoo.com>'
70 // created by observed static PDF details
71 or (
72
73 //
74 // This rule makes use of a beta feature and is subject to change without notice
75 // using the beta feature in custom rules is not suggested until it has been formally released
76 //
77
78 beta.parse_exif(.).creator == "wkhtmltopdf 0.12.6"
79 and beta.parse_exif(.).title is null
80 and beta.parse_exif(.).producer == 'Qt 4.8.7'
81 )
82 // filename contains a single
83 or regex.contains(.file_name,
84 '^(?:[A-Z][a-z]+)+_[A-Z0-9]{8,9}\.pdf$'
85 )
86 )
87 )
88 )
89 )
90
91attack_types:
92 - "Callback Phishing"
93tactics_and_techniques:
94 - "Free email provider"
95 - "Social engineering"
96detection_methods:
97 - "Content analysis"
98 - "Header analysis"
99 - "File analysis"
100 - "HTML analysis"
101 - "Exif analysis"
102 - "Sender analysis"
103id: "f6044eed-ec4b-5959-a4d6-60aa6a8ca76b"