Detection rules › Sublime MQL

Sublime MQL rules: gophish

Credential theft: Gophish abuse with hidden tracking image

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

Detects messages containing hidden tracking images with display:none style and tracking parameters in the source URL, commonly used for user tracking and engagement monitoring.

Threat classification

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

CategoryValues
Attack typesSpam
Tactics and techniquesEvasion, Image as content

Telemetry coverage

PlatformRecord / event type
SublimeInbound email message

Message attributes

  • body
  • body.html
  • type

Rule body

type.inbound
and (
  strings.icontains(body.html.raw,
                    '<img alt='''' style=''display: none'' src='''
  )
  or strings.icontains(body.html.raw, 'img alt="" style="display: none" src="')
)
and strings.icontains(body.html.raw, '/track?rid=')

Detection logic

Scope: inbound message.

Detects messages containing hidden tracking images with display:none style and tracking parameters in the source URL, commonly used for user tracking and engagement monitoring.

  1. inbound message
  2. any of:
    • body.html.raw contains "<img alt='' style='display: none' src='"
    • body.html.raw contains 'img alt="" style="display: none" src="'
  3. body.html.raw contains '/track?rid='

Inspects: body.html.raw, type.inbound. Sensors: strings.icontains.

Indicators matched (3)

FieldMatchValue
strings.icontainssubstring<img alt='' style='display: none' src='
strings.icontainssubstringimg alt="" style="display: none" src="
strings.icontainssubstring/track?rid=

Stages and Predicates

Stage 1: mql_rule

and
  or
    body.html.raw contains "<img alt='' style='display: none' src='"
    body.html.raw contains "img alt=\"\" style=\"display: none\" src=\""
  body.html.raw contains "/track?rid="
  type.inbound eq "true"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
body.html.rawcontains
  • /track?rid=
  • <img alt='' style='display: none' src='
  • img alt="" style="display: none" src="
field:"body.html.raw" kind:contains
type.inboundeq
  • true transforms: boolean
field:"type.inbound" kind:eq value:"true"