Sigma Rule Library

Rundll32 Execution With Uncommon DLL Extension

Detects the execution of rundll32 with a command line that doesn't contain a common extension

View on GitHubOpen raw file

Detection logic

selection

- Image|endswith: \rundll32.exe
- OriginalFileName: RUNDLL32.EXE

filter_main_null

CommandLine: null

filter_main_empty

CommandLine: ""

filter_main_known_extension

- CommandLine|contains:
    - ".cpl "
    - .cpl,
    - .cpl"
    - .cpl'
    - ".dll "
    - .dll,
    - .dll"
    - .dll'
    - ".inf "
    - .inf,
    - .inf"
    - .inf'
- CommandLine|endswith:
    - .cpl
    - .dll
    - ".inf"

filter_main_localserver

CommandLine|contains: " -localserver "

filter_main_zzzzInvokeManagedCustomActionOutOfProc

ParentImage|endswith: \msiexec.exe
CommandLine|contains|all:
  - :\Windows\Installer\
  - .tmp
  - zzzzInvokeManagedCustomActionOutOfProc

filter_optional_EdgeUpdate

ParentCommandLine|contains|all:
  - :\Users\
  - \AppData\Local\Microsoft\EdgeUpdate\Install\{
  - \EDGEMITMP_
  - .tmp\setup.exe
  - --install-archive=
  - --previous-version=
  - --msedgewebview --verbose-logging --do-not-launch-msedge --user-level

Condition

selection and not 1 of filter_main_* and not 1 of filter_optional_*

Raw YAML

title: Rundll32 Execution With Uncommon DLL Extension
id: c3a99af4-35a9-4668-879e-c09aeb4f2bdf
status: test
description: Detects the execution of rundll32 with a command line that doesn't contain a common extension
references:
    - https://twitter.com/mrd0x/status/1481630810495139841?s=12
author: Tim Shelton, Florian Roth (Nextron Systems), Yassine Oukessou
date: 2022-01-13
modified: 2024-04-04
tags:
    - attack.stealth
    - attack.t1218.011
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        - Image|endswith: '\rundll32.exe'
        - OriginalFileName: 'RUNDLL32.EXE'
    filter_main_null:
        CommandLine: null
    filter_main_empty:
        CommandLine: ''
    filter_main_known_extension:
        - CommandLine|contains:
              # Note: This aims to cover: single and double quotes in addition to spaces and comma "," usage.
              - '.cpl '
              - '.cpl,'
              - '.cpl"'
              - ".cpl'"
              - '.dll '
              - '.dll,'
              - '.dll"'
              - ".dll'"
              - '.inf '
              - '.inf,'
              - '.inf"'
              - ".inf'"
        - CommandLine|endswith:
              # Note: This aims to cover: single and double quotes in addition to spaces and comma "," usage.
              - '.cpl'
              - '.dll'
              - '.inf'
    filter_main_localserver:
        CommandLine|contains: ' -localserver '
    filter_main_zzzzInvokeManagedCustomActionOutOfProc:
        ParentImage|endswith: '\msiexec.exe'
        CommandLine|contains|all:
            - ':\Windows\Installer\'
            - '.tmp'
            - 'zzzzInvokeManagedCustomActionOutOfProc'
    filter_optional_EdgeUpdate:
        ParentCommandLine|contains|all:
            - ':\Users\'
            - '\AppData\Local\Microsoft\EdgeUpdate\Install\{'
            - '\EDGEMITMP_'
            - '.tmp\setup.exe'
            - '--install-archive='
            - '--previous-version='
            - '--msedgewebview --verbose-logging --do-not-launch-msedge --user-level'
    condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Unknown
level: medium

False positives

  • Unknown

References

Similar rules