Detection rules › Sublime MQL

Open redirect: tkqlhce.com

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

Message contains use of the tkqlhce.com redirect. This has been exploited in the wild for phishing.

Threat classification

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

CategoryValues
Attack typesCredential Phishing, Malware/Ransomware
Tactics and techniquesOpen redirect

Event coverage

Rule body MQL

type.inbound
and length(body.links) < 10
and any(body.links,
        .href_url.domain.root_domain == "tkqlhce.com"
        and (
          (
            strings.icontains(.href_url.query_params, 'url=')
            and not regex.icontains(.href_url.query_params,
                                    'url=(?:https?(?:%3a|:))?(?:%2f|\/){2}[^&]*tkqlhce\.com(?:\&|\/|$|%2f)'
            )
          )
          or (
            strings.icontains(.href_url.path, '/links/')
            and strings.icontains(.href_url.path, '/type/dlg/')
            and regex.icontains(.href_url.path, 'https?://')
            and not regex.icontains(.href_url.path,
                                    '/links/[^/]+/type/dlg/(?:https?(?:%3a|:))?(?:%2f|\/){2}[^&]*tkqlhce\.com(?:\&|\/|$|%2f)'
            )
          )
        )
)
and not sender.email.domain.root_domain == "tkqlhce.com"

// negate highly trusted sender domains unless they fail DMARC authentication
and (
  (
    sender.email.domain.root_domain in $high_trust_sender_root_domains
    and not headers.auth_summary.dmarc.pass
  )
  or sender.email.domain.root_domain not in $high_trust_sender_root_domains
)

Detection logic

Scope: inbound message.

Message contains use of the tkqlhce.com redirect. This has been exploited in the wild for phishing.

  1. inbound message
  2. length(body.links) < 10
  3. any of body.links where all hold:
    • .href_url.domain.root_domain is 'tkqlhce.com'
    • any of:
      • all of:
        • .href_url.query_params contains 'url='
        • not:
          • .href_url.query_params matches 'url=(?:https?(?:%3a|:))?(?:%2f|\\/){2}[^&]*tkqlhce\\.com(?:\\&|\\/|$|%2f)'
      • all of:
        • .href_url.path contains '/links/'
        • .href_url.path contains '/type/dlg/'
        • .href_url.path matches 'https?://'
        • not:
          • .href_url.path matches '/links/[^/]+/type/dlg/(?:https?(?:%3a|:))?(?:%2f|\\/){2}[^&]*tkqlhce\\.com(?:\\&|\\/|$|%2f)'
  4. not:
    • sender.email.domain.root_domain is 'tkqlhce.com'
  5. any of:
    • all of:
      • sender.email.domain.root_domain in $high_trust_sender_root_domains
      • not:
        • headers.auth_summary.dmarc.pass
    • sender.email.domain.root_domain not in $high_trust_sender_root_domains

Inspects: body.links, body.links[].href_url.domain.root_domain, body.links[].href_url.path, body.links[].href_url.query_params, headers.auth_summary.dmarc.pass, sender.email.domain.root_domain, type.inbound. Sensors: regex.icontains, strings.icontains. Reference lists: $high_trust_sender_root_domains.

Indicators matched (8)

FieldMatchValue
body.links[].href_url.domain.root_domainequalstkqlhce.com
strings.icontainssubstringurl=
regex.icontainsregexurl=(?:https?(?:%3a|:))?(?:%2f|\/){2}[^&]*tkqlhce\.com(?:\&|\/|$|%2f)
strings.icontainssubstring/links/
strings.icontainssubstring/type/dlg/
regex.icontainsregexhttps?://
regex.icontainsregex/links/[^/]+/type/dlg/(?:https?(?:%3a|:))?(?:%2f|\/){2}[^&]*tkqlhce\.com(?:\&|\/|$|%2f)
sender.email.domain.root_domainequalstkqlhce.com