Detection rules › Sublime MQL
Service Abuse: GoDaddy infrastructure
Detects messages from legitimate GoDaddy domains with suspicious indicators. Observed abused for call back phishing and extortion campaigns.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Callback Phishing, Extortion |
| Tactics and techniques | Evasion |
Event coverage
Rule body MQL
type.inbound
and length(attachments) == 0
// legitimate GoDaddy sending infrastructure
and (
sender.email.domain.root_domain == "godaddy.com"
and headers.auth_summary.dmarc.pass
)
and any(body.links, .display_text in~ ("Pay Now", "Accept Access"))
and (
(
any(ml.nlu_classifier(body.current_thread.text).intents,
.name in~ ("callback_scam", "cred_theft", "extortion")
and .confidence == "high"
)
)
// manual extortion indicators
or (
regex.icontains(sender.display_name,
'big(\s|[[:punct:]])?brother|seeing(\s|[[:punct:]])?eye'
)
or regex.icontains(body.current_thread.text,
'((I|you).{0,25}(leak|compromise|hack|see|record|expose))|(dirty|little) secret'
)
)
// manual callback phishing indicators
or (
// phone number in display name or subject
any([sender.display_name, subject.base],
regex.icontains(.,
'\b\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}\b'
)
)
// references commonly impersonated brands in body
or strings.ilike(strings.replace_confusables(body.current_thread.text),
"*Pay?Pal*",
"*Best?Buy*",
"*Geek?Squad*",
)
)
// emojis in link display text
or any(body.links,
regex.contains(.display_text,
'[\x{1F300}-\x{1F5FF}\x{1F600}-\x{1F64F}\x{1F680}-\x{1F6FF}\x{1F700}-\x{1F77F}\x{1F780}-\x{1F7FF}\x{1F900}-\x{1F9FF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}\x{2300}-\x{23FF}]'
)
)
// links leading to cloudflare R2 or edge services
or any(body.links,
.href_url.domain.root_domain in~ ("r2.dev", "pages.dev", "workers.dev")
)
)
Detection logic
Scope: inbound message.
Detects messages from legitimate GoDaddy domains with suspicious indicators. Observed abused for call back phishing and extortion campaigns.
- inbound message
- length(attachments) is 0
all of:
- sender.email.domain.root_domain is 'godaddy.com'
- headers.auth_summary.dmarc.pass
any of
body.linkswhere:- .display_text in ('Pay Now', 'Accept Access')
any of:
any of
ml.nlu_classifier(body.current_thread.text).intentswhere all hold:- .name in ('callback_scam', 'cred_theft', 'extortion')
- .confidence is 'high'
any of:
- sender.display_name matches 'big(\\s|[[:punct:]])?brother|seeing(\\s|[[:punct:]])?eye'
- body.current_thread.text matches '((I|you).{0,25}(leak|compromise|hack|see|record|expose))|(dirty|little) secret'
any of:
any of
[sender.display_name, subject.base]where:- . matches '\\b\\+?([ilo0-9]{1}.)?\\(?[ilo0-9]{3}?\\)?.[ilo0-9]{3}.?[ilo0-9]{4}\\b'
strings.replace_confusables(body.current_thread.text) matches any of 3 patterns
*Pay?Pal**Best?Buy**Geek?Squad*
any of
body.linkswhere:- .display_text matches '[\\x{1F300}-\\x{1F5FF}\\x{1F600}-\\x{1F64F}\\x{1F680}-\\x{1F6FF}\\x{1F700}-\\x{1F77F}\\x{1F780}-\\x{1F7FF}\\x{1F900}-\\x{1F9FF}\\x{2600}-\\x{26FF}\\x{2700}-\\x{27BF}\\x{2300}-\\x{23FF}]'
any of
body.linkswhere:- .href_url.domain.root_domain in ('r2.dev', 'pages.dev', 'workers.dev')
Inspects: body.current_thread.text, body.links, body.links[].display_text, body.links[].href_url.domain.root_domain, headers.auth_summary.dmarc.pass, sender.display_name, sender.email.domain.root_domain, subject.base, type.inbound. Sensors: ml.nlu_classifier, regex.contains, regex.icontains, strings.ilike, strings.replace_confusables.
Indicators matched (17)
| Field | Match | Value |
|---|---|---|
sender.email.domain.root_domain | equals | godaddy.com |
body.links[].display_text | member | Pay Now |
body.links[].display_text | member | Accept Access |
ml.nlu_classifier(body.current_thread.text).intents[].name | member | callback_scam |
ml.nlu_classifier(body.current_thread.text).intents[].name | member | cred_theft |
ml.nlu_classifier(body.current_thread.text).intents[].name | member | extortion |
ml.nlu_classifier(body.current_thread.text).intents[].confidence | equals | high |
regex.icontains | regex | big(\s|[[:punct:]])?brother|seeing(\s|[[:punct:]])?eye |
regex.icontains | regex | ((I|you).{0,25}(leak|compromise|hack|see|record|expose))|(dirty|little) secret |
regex.icontains | regex | \b\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}\b |
strings.ilike | substring | *Pay?Pal* |
strings.ilike | substring | *Best?Buy* |
5 more
strings.ilike | substring | *Geek?Squad* |
regex.contains | regex | [\x{1F300}-\x{1F5FF}\x{1F600}-\x{1F64F}\x{1F680}-\x{1F6FF}\x{1F700}-\x{1F77F}\x{1F780}-\x{1F7FF}\x{1F900}-\x{1F9FF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}\x{2300}-\x{23FF}] |
body.links[].href_url.domain.root_domain | member | r2.dev |
body.links[].href_url.domain.root_domain | member | pages.dev |
body.links[].href_url.domain.root_domain | member | workers.dev |