Detection rules › Sublime MQL

PhaaS: Impact Solutions (Impact Vector Suite)

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

Identifies the use of the Impact Solutions PhaaS. Impact Vector Suite is a full-spectrum payload delivery platform, engineered for stealth-optimized execution across all major deployment vectors.

Threat classification

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

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesEvasion

Event coverage

Rule body MQL

type.inbound
and (
  // attached html/svg
  any(filter(attachments, .file_type in ("html", "svg")),
      regex.count(file.parse_text(.).text,
                  'const (?:urlParts|fakeEvent|progressBar|progressInterval|segments|statusText|statusText|securityNotice|statusMessages|challengeForm|challengeRunning|challengeSuccess|successText|verifyingText|encodedTarget|baseDomain|newDynamicParam|statusElement)\s*='
      ) >= 3
      or (
        strings.icontains(file.parse_text(.).text, 'const baseDomain')
        and strings.icontains(file.parse_text(.).text, 'const port')
        and strings.icontains(file.parse_text(.).text, 'const path')
      )
      or strings.icontains(file.parse_text(.).text, 'impact?')
      or regex.contains(file.parse_text(.).text, '\d/impact')
  )

  // attached EMLs with html/svg attachments
  or any(filter(attachments,
                .content_type == "message/rfc822" or .file_extension == "eml"
         ),
         any(filter(file.parse_eml(.).attachments,
                    .file_type in ("html", "svg")
             ),
             regex.count(file.parse_text(.).text,
                         'const (?:urlParts|fakeEvent|progressBar|progressInterval|segments|statusText|statusText|securityNotice|statusMessages|challengeForm|challengeRunning|challengeSuccess|successText|verifyingText|encodedTarget|baseDomain|newDynamicParam|statusElement)\s*='
             ) >= 3
             or (
               strings.icontains(file.parse_text(.).text, 'const baseDomain')
               and strings.icontains(file.parse_text(.).text, 'const port')
               and strings.icontains(file.parse_text(.).text, 'const path')
             )
             or strings.icontains(file.parse_text(.).text, 'impact?')
             or regex.contains(file.parse_text(.).text, '\d/impact')
         )
  )

  // direct body links
  or any(body.links,
         (
           strings.icontains(.href_url.url, "impact?session_")
           or strings.icontains(.href_url.url, "/impact")
         )
         and (
           strings.icontains(.href_url.url, ":8443")
           or strings.icontains(.href_url.url, ":2087")
         )
  )
)

Detection logic

Scope: inbound message.

Identifies the use of the Impact Solutions PhaaS. Impact Vector Suite is a full-spectrum payload delivery platform, engineered for stealth-optimized execution across all major deployment vectors.

  1. inbound message
  2. any of:
    • any of filter(attachments) where any holds:
      • regex.count(file.parse_text(.).text, 'const (?:urlParts|fakeEvent|progressBar|progressInterval|segments|statusText|statusText|securityNotice|statusMessages|challengeForm|challengeRunning|challengeSuccess|successText|verifyingText|encodedTarget|baseDomain|newDynamicParam|statusElement)\\s*=') ≥ 3
      • all of:
        • file.parse_text(.).text contains 'const baseDomain'
        • file.parse_text(.).text contains 'const port'
        • file.parse_text(.).text contains 'const path'
      • file.parse_text(.).text contains 'impact?'
      • file.parse_text(.).text matches '\\d/impact'
    • any of filter(attachments) where:
      • any of filter(...) where any holds:
        • regex.count(file.parse_text(.).text, 'const (?:urlParts|fakeEvent|progressBar|progressInterval|segments|statusText|statusText|securityNotice|statusMessages|challengeForm|challengeRunning|challengeSuccess|successText|verifyingText|encodedTarget|baseDomain|newDynamicParam|statusElement)\\s*=') ≥ 3
        • all of:
          • file.parse_text(.).text contains 'const baseDomain'
          • file.parse_text(.).text contains 'const port'
          • file.parse_text(.).text contains 'const path'
        • file.parse_text(.).text contains 'impact?'
        • file.parse_text(.).text matches '\\d/impact'
    • any of body.links where all hold:
      • any of:
        • .href_url.url contains 'impact?session_'
        • .href_url.url contains '/impact'
      • any of:
        • .href_url.url contains ':8443'
        • .href_url.url contains ':2087'

Inspects: attachments[].content_type, attachments[].file_extension, attachments[].file_type, body.links, body.links[].href_url.url, type.inbound. Sensors: file.parse_eml, file.parse_text, regex.contains, regex.count, strings.icontains.

Indicators matched (16)

FieldMatchValue
attachments[].file_typememberhtml
attachments[].file_typemembersvg
regex.countregexconst (?:urlParts|fakeEvent|progressBar|progressInterval|segments|statusText|statusText|securityNotice|statusMessages|challengeForm|challengeRunning|challengeSuccess|successText|verifyingText|encodedTarget|baseDomain|newDynamicParam|statusElement)\s*=
strings.icontainssubstringconst baseDomain
strings.icontainssubstringconst port
strings.icontainssubstringconst path
strings.icontainssubstringimpact?
regex.containsregex\d/impact
attachments[].content_typeequalsmessage/rfc822
attachments[].file_extensionequalseml
file.parse_eml(filter(attachments)[]).attachments[].file_typememberhtml
file.parse_eml(filter(attachments)[]).attachments[].file_typemembersvg
4 more
strings.icontainssubstringimpact?session_
strings.icontainssubstring/impact
strings.icontainssubstring:8443
strings.icontainssubstring:2087