Detection rules › Sublime MQL
Attachment: PowerShell content
Recursively scans files and archives to detect PowerShell content. While scripts are often blocked by mail filtering, alternative file formats and archived content may be employed to bypass such controls.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Malware/Ransomware |
| Tactics and techniques | Scripting |
Event coverage
| Message attribute |
|---|
| attachments (collection) |
| type |
Rule body MQL
type.inbound
and any(attachments,
(
.file_extension in~ (
// PowerShell related file extensions
"ps1",
"ps1xml",
"psm1",
"psd1",
"pssc",
"psrc",
"cdxml",
"ps2",
"ps2xml",
"psc2",
)
or .file_extension in~ $file_extensions_common_archives
)
and any(file.explode(.),
.file_extension in~ (
"ps1",
"ps1xml",
"psm1",
"psd1",
"pssc",
"psrc",
"cdxml",
"ps2",
"ps2xml",
"psc2",
)
)
)
Detection logic
Scope: inbound message.
Recursively scans files and archives to detect PowerShell content. While scripts are often blocked by mail filtering, alternative file formats and archived content may be employed to bypass such controls.
- inbound message
any of
attachmentswhere all hold:any of:
- .file_extension in ('ps1', 'ps1xml', 'psm1', 'psd1', 'pssc', 'psrc', 'cdxml', 'ps2', 'ps2xml', 'psc2')
- .file_extension in $file_extensions_common_archives
any of
file.explode(.)where:- .file_extension in ('ps1', 'ps1xml', 'psm1', 'psd1', 'pssc', 'psrc', 'cdxml', 'ps2', 'ps2xml', 'psc2')
Inspects: attachments[].file_extension, type.inbound. Sensors: file.explode. Reference lists: $file_extensions_common_archives.
Indicators matched (20)
| Field | Match | Value |
|---|---|---|
attachments[].file_extension | member | ps1 |
attachments[].file_extension | member | ps1xml |
attachments[].file_extension | member | psm1 |
attachments[].file_extension | member | psd1 |
attachments[].file_extension | member | pssc |
attachments[].file_extension | member | psrc |
attachments[].file_extension | member | cdxml |
attachments[].file_extension | member | ps2 |
attachments[].file_extension | member | ps2xml |
attachments[].file_extension | member | psc2 |
file.explode(attachments[])[].file_extension | member | ps1 |
file.explode(attachments[])[].file_extension | member | ps1xml |
8 more
file.explode(attachments[])[].file_extension | member | psm1 |
file.explode(attachments[])[].file_extension | member | psd1 |
file.explode(attachments[])[].file_extension | member | pssc |
file.explode(attachments[])[].file_extension | member | psrc |
file.explode(attachments[])[].file_extension | member | cdxml |
file.explode(attachments[])[].file_extension | member | ps2 |
file.explode(attachments[])[].file_extension | member | ps2xml |
file.explode(attachments[])[].file_extension | member | psc2 |