Windows rundll32 Process Creation With Uncommon DLL Extension in Command Line

Alerts on Windows rundll32 executions whose command lines lack common .cpl/.dll/.inf endings, indicating potential unusual invocation.

FreeReviewedSigma · Medium · v4
Product
windows
Category
process_creation
Author
Tim Shelton, Florian Roth (Nextron Systems), Yassine Oukessou (SigmaHQ), DRL 1.1
Published
2022-01-13
Updated
2026-10-18
title: Windows rundll32 Process Creation With Uncommon DLL Extension in Command Line
id: 42c7c0ec-a67b-41b6-9821-15ff7be10150
status: test
description: This rule flags Windows process creation events where rundll32.exe is launched and the command line does not contain common file extensions commonly passed to rundll32 (e.g., .cpl, .dll, .inf), excluding specific known installer and update scenarios. Attackers may abuse rundll32 to load non-standard DLL or related files, blending execution into legitimate Windows tooling while evading expectations about typical extension usage. The detection relies on process creation telemetry including Image, OriginalFileName, ParentImage, and CommandLine content.
references:
  - https://twitter.com/mrd0x/status/1481630810495139841?s=12
  - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_rundll32_uncommon_dll_extension.yml
author: Tim Shelton, Florian Roth (Nextron Systems), Yassine Oukessou, Huntrule Team
date: 2022-01-13
modified: 2026-10-13
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:
        - ".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_main_streamci:
    Image: C:\Windows\System32\rundll32.exe
    ParentImage: C:\Windows\System32\svchost.exe
    CommandLine|contains: " streamci,StreamingDeviceSetup {"
  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
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_rundll32_uncommon_dll_extension/info.yml
license: DRL-1.1
related:
  - id: c3a99af4-35a9-4668-879e-c09aeb4f2bdf
    type: derived