Detection rules › Sigma

Suspicious Double Extension File Execution

Status
stable
Severity
high
Log source
product windows, category process_creation
Author
Florian Roth (Nextron Systems), @blu3_team (idea), Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects suspicious use of an .exe extension after a non-executable file extension like .pdf.exe, a set of spaces or underlines to cloak the executable file in spear phishing campaigns

MITRE ATT&CK coverage

TacticTechniques
Initial AccessT1566.001 Phishing: Spearphishing Attachment

Event coverage

Rule body yaml

title: Suspicious Double Extension File Execution
id: 1cdd9a09-06c9-4769-99ff-626e2b3991b8
related:
    - id: 5e6a80c8-2d45-4633-9ef4-fa2671a39c5c # ParentImage/ParentCommandLine
      type: similar
status: stable
description: Detects suspicious use of an .exe extension after a non-executable file extension like .pdf.exe, a set of spaces or underlines to cloak the executable file in spear phishing campaigns
references:
    - https://blu3-team.blogspot.com/2019/06/misleading-extensions-xlsexe-docexe.html
    - https://twitter.com/blackorbird/status/1140519090961825792
    - https://cloud.google.com/blog/topics/threat-intelligence/cybercriminals-weaponize-fake-ai-websites
author: Florian Roth (Nextron Systems), @blu3_team (idea), Nasreddine Bencherchali (Nextron Systems)
date: 2019-06-26
modified: 2025-05-30
tags:
    - attack.initial-access
    - attack.t1566.001
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith:
            - '      .exe'
            - '______.exe'
            - '.doc.exe'
            - '.doc.js'
            - '.docx.exe'
            - '.docx.js'
            - '.gif.exe'
            - '.jpeg.exe'
            - '.jpg.exe'
            - '.mkv.exe'
            - '.mov.exe'
            - '.mp3.exe'
            - '.mp4.exe'
            - '.pdf.exe'
            - '.pdf.js'
            - '.png.exe'
            - '.ppt.exe'
            - '.ppt.js'
            - '.pptx.exe'
            - '.pptx.js'
            - '.rtf.exe'
            - '.rtf.js'
            - '.svg.exe'
            - '.txt.exe'
            - '.txt.js'
            - '.xls.exe'
            - '.xls.js'
            - '.xlsx.exe'
            - '.xlsx.js'
            - '⠀⠀⠀⠀⠀⠀.exe' # Unicode Space Character: Braille Pattern Blank (Unicode: U+2800)
        CommandLine|contains:
            - '      .exe'
            - '______.exe'
            - '.doc.exe'
            - '.doc.js'
            - '.docx.exe'
            - '.docx.js'
            - '.gif.exe'
            - '.jpeg.exe'
            - '.jpg.exe'
            - '.mkv.exe'
            - '.mov.exe'
            - '.mp3.exe'
            - '.mp4.exe'
            - '.pdf.exe'
            - '.pdf.js'
            - '.png.exe'
            - '.ppt.exe'
            - '.ppt.js'
            - '.pptx.exe'
            - '.pptx.js'
            - '.rtf.exe'
            - '.rtf.js'
            - '.svg.exe'
            - '.txt.exe'
            - '.txt.js'
            - '.xls.exe'
            - '.xls.js'
            - '.xlsx.exe'
            - '.xlsx.js'
            - '⠀⠀⠀⠀⠀⠀.exe' # Unicode Space Character: Braille Pattern Blank (Unicode: U+2800)
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|endswith:
        - '      .exe'
        - '______.exe'
        - '.doc.exe'
        - '.doc.js'
        - '.docx.exe'
        - '.docx.js'
        - '.gif.exe'
        - '.jpeg.exe'
        - '.jpg.exe'
        - '.mkv.exe'
        - '.mov.exe'
        - '.mp3.exe'
        - '.mp4.exe'
        - '.pdf.exe'
        - '.pdf.js'
        - '.png.exe'
        - '.ppt.exe'
        - '.ppt.js'
        - '.pptx.exe'
        - '.pptx.js'
        - '.rtf.exe'
        - '.rtf.js'
        - '.svg.exe'
        - '.txt.exe'
        - '.txt.js'
        - '.xls.exe'
        - '.xls.js'
        - '.xlsx.exe'
        - '.xlsx.js'
        - '⠀⠀⠀⠀⠀⠀.exe'
    CommandLine|contains:
        - '      .exe'
        - '______.exe'
        - '.doc.exe'
        - '.doc.js'
        - '.docx.exe'
        - '.docx.js'
        - '.gif.exe'
        - '.jpeg.exe'
        - '.jpg.exe'
        - '.mkv.exe'
        - '.mov.exe'
        - '.mp3.exe'
        - '.mp4.exe'
        - '.pdf.exe'
        - '.pdf.js'
        - '.png.exe'
        - '.ppt.exe'
        - '.ppt.js'
        - '.pptx.exe'
        - '.pptx.js'
        - '.rtf.exe'
        - '.rtf.js'
        - '.svg.exe'
        - '.txt.exe'
        - '.txt.js'
        - '.xls.exe'
        - '.xls.js'
        - '.xlsx.exe'
        - '.xlsx.js'
        - '⠀⠀⠀⠀⠀⠀.exe'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
CommandLinematch
  • .exe
  • .doc.exe
  • .doc.js
  • .docx.exe
  • .docx.js
  • .gif.exe
  • .jpeg.exe
  • .jpg.exe
  • .mkv.exe
  • .mov.exe
  • .mp3.exe
  • .mp4.exe
  • .pdf.exe
  • .pdf.js
  • .png.exe
  • .ppt.exe
  • .ppt.js
  • .pptx.exe
  • .pptx.js
  • .rtf.exe
  • .rtf.js
  • .svg.exe
  • .txt.exe
  • .txt.js
  • .xls.exe
  • .xls.js
  • .xlsx.exe
  • .xlsx.js
  • ______.exe
  • ⠀⠀⠀⠀⠀⠀.exe
Imageends_with
  • .exe
  • .doc.exe
  • .doc.js
  • .docx.exe
  • .docx.js
  • .gif.exe
  • .jpeg.exe
  • .jpg.exe
  • .mkv.exe
  • .mov.exe
  • .mp3.exe
  • .mp4.exe
  • .pdf.exe
  • .pdf.js
  • .png.exe
  • .ppt.exe
  • .ppt.js
  • .pptx.exe
  • .pptx.js
  • .rtf.exe
  • .rtf.js
  • .svg.exe
  • .txt.exe
  • .txt.js
  • .xls.exe
  • .xls.js
  • .xlsx.exe
  • .xlsx.js
  • ______.exe
  • ⠀⠀⠀⠀⠀⠀.exe