Detection rules › Sigma

Potential Initial Access via DLL Search Order Hijacking

Status
test
Severity
medium
Log source
category file_event, product windows
Author
Tim Rauch (rule), Elastic (idea)
Source
github.com/SigmaHQ/sigma

Detects attempts to create a DLL file to a known desktop application dependencies folder such as Slack, Teams or OneDrive and by an unusual process. This may indicate an attempt to load a malicious module via DLL search order hijacking.

MITRE ATT&CK coverage

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule body

title: Potential Initial Access via DLL Search Order Hijacking
id: dbbd9f66-2ed3-4ca2-98a4-6ea985dd1a1c
status: test
description: Detects attempts to create a DLL file to a known desktop application dependencies folder such as Slack, Teams or OneDrive and by an unusual process. This may indicate an attempt to load a malicious module via DLL search order hijacking.
references:
    - https://github.com/elastic/protections-artifacts/commit/746086721fd385d9f5c6647cada1788db4aea95f#diff-5d46dd4ac6866b4337ec126be8cee0e115467b3e8703794ba6f6df6432c806bc
    - https://posts.specterops.io/automating-dll-hijack-discovery-81c4295904b0
author: Tim Rauch (rule), Elastic (idea)
date: 2022-10-21
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.execution
    - attack.stealth
    - attack.t1566
    - attack.t1566.001
    - attack.initial-access
    - attack.t1574
    - attack.t1574.001
logsource:
    product: windows
    category: file_event
detection:
    selection:
        Image|endswith:
            # add more processes when you find them
            - '\winword.exe'
            - '\excel.exe'
            - '\powerpnt.exe'
            - '\MSACCESS.EXE'
            - '\MSPUB.EXE'
            - '\fltldr.exe'
            - '\cmd.exe'
            - '\certutil.exe'
            - '\mshta.exe'
            - '\cscript.exe'
            - '\wscript.exe'
            - '\curl.exe'
            - '\powershell.exe'
            - '\pwsh.exe'
        TargetFilename|endswith: '.dll'
        TargetFilename|contains|all:
            - '\Users\'
            - '\AppData\'
        TargetFilename|contains:
            # add more suspicious paths when you find them
            - '\Microsoft\OneDrive\'
            - '\Microsoft OneDrive\'
            - '\Microsoft\Teams\'
            - '\Local\slack\app-'
            - '\Local\Programs\Microsoft VS Code\'
    filter:
        Image|endswith: '\cmd.exe'
        TargetFilename|contains|all:
            - '\Users\'
            - '\AppData\'
            - '\Microsoft\OneDrive\'
            - '\api-ms-win-core-'
    condition: selection and not filter
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    Image|endswith:
        - '\winword.exe'
        - '\excel.exe'
        - '\powerpnt.exe'
        - '\MSACCESS.EXE'
        - '\MSPUB.EXE'
        - '\fltldr.exe'
        - '\cmd.exe'
        - '\certutil.exe'
        - '\mshta.exe'
        - '\cscript.exe'
        - '\wscript.exe'
        - '\curl.exe'
        - '\powershell.exe'
        - '\pwsh.exe'
    TargetFilename|endswith: '.dll'
    TargetFilename|contains|all:
        - '\Users\'
        - '\AppData\'
    TargetFilename|contains:
        - '\Microsoft\OneDrive\'
        - '\Microsoft OneDrive\'
        - '\Microsoft\Teams\'
        - '\Local\slack\app-'
        - '\Local\Programs\Microsoft VS Code\'

Stage 2: not filter

filter:
    Image|endswith: '\cmd.exe'
    TargetFilename|contains|all:
        - '\Users\'
        - '\AppData\'
        - '\Microsoft\OneDrive\'
        - '\api-ms-win-core-'

Exclusions

The rule actively suppresses these predicates.

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \MSACCESS.EXE corpus 4 (sigma 4)
  • \MSPUB.EXE corpus 10 (sigma 10)
  • \certutil.exe corpus 44 (sigma 43, kusto 1)
  • \cmd.exe corpus 130 (sigma 130)
  • \cscript.exe corpus 72 (sigma 72)
  • \curl.exe corpus 31 (sigma 31)
  • \excel.exe corpus 16 (sigma 16)
  • \fltldr.exe
  • \mshta.exe corpus 66 (sigma 66)
  • \powerpnt.exe corpus 14 (sigma 14)
  • \powershell.exe corpus 179 (sigma 178, kusto 1)
  • \pwsh.exe corpus 165 (sigma 164, kusto 1)
  • \winword.exe corpus 17 (sigma 17)
  • \wscript.exe corpus 74 (sigma 74)
field:"Image" kind:ends_with
TargetFilenameends_with
  • .dll corpus 24 (sigma 24)
field:"TargetFilename" kind:ends_with value:".dll"
TargetFilenamematch
  • \AppData\ corpus 4 (sigma 4)
  • \Local\Programs\Microsoft VS Code\
  • \Local\slack\app-
  • \Microsoft OneDrive\
  • \Microsoft\OneDrive\
  • \Microsoft\Teams\
  • \Users\ corpus 2 (sigma 2)
field:"TargetFilename" kind:match