Detection rules › Sublime MQL

Open redirect: weblinkconnect.com

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

Message contains use of the weblinkconnect.com open redirect, but the sender is not weblinkconnect.com. This has been exploited in the wild.

Threat classification

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

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesEvasion, Open redirect

Event coverage

Rule body MQL

type.inbound
and length(filter(body.links,
                  .href_url.domain.root_domain == 'weblinkconnect.com'
           )
) < 10
and any(body.links,
        .href_url.domain.domain == 'api-internal.weblinkconnect.com'
        and strings.icontains(.href_url.path, "/click")
        and strings.icontains(.href_url.query_params, "url=")
)
and sender.email.domain.root_domain != 'weblinkconnect.com'
and not any(headers.domains, .root_domain == "weblinkinternational.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 weblinkconnect.com open redirect, but the sender is not weblinkconnect.com. This has been exploited in the wild.

  1. inbound message
  2. length(filter(body.links, .href_url.domain.root_domain == 'weblinkconnect.com')) < 10
  3. any of body.links where all hold:
    • .href_url.domain.domain is 'api-internal.weblinkconnect.com'
    • .href_url.path contains '/click'
    • .href_url.query_params contains 'url='
  4. sender.email.domain.root_domain is not 'weblinkconnect.com'
  5. not:
    • any of headers.domains where:
      • .root_domain is 'weblinkinternational.com'
  6. 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.domain, body.links[].href_url.domain.root_domain, body.links[].href_url.path, body.links[].href_url.query_params, headers.auth_summary.dmarc.pass, headers.domains, headers.domains[].root_domain, sender.email.domain.root_domain, type.inbound. Sensors: strings.icontains. Reference lists: $high_trust_sender_root_domains.

Indicators matched (5)

FieldMatchValue
body.links[].href_url.domain.root_domainequalsweblinkconnect.com
body.links[].href_url.domain.domainequalsapi-internal.weblinkconnect.com
strings.icontainssubstring/click
strings.icontainssubstringurl=
headers.domains[].root_domainequalsweblinkinternational.com