Detection rules › Sigma

HackTool - HandleKatz Duplicating LSASS Handle

Status
test
Severity
high
Log source
product windows, category process_access
Author
Bhabesh Raj (rule), @thefLinkk
Source
github.com/SigmaHQ/sigma

Detects HandleKatz opening LSASS to duplicate its handle to later dump the memory without opening any new handles

MITRE ATT&CK coverage

TacticTechniques
ExecutionT1106 Native API
Credential AccessT1003.001 OS Credential Dumping: LSASS Memory

Event coverage

ProviderEventTitle
SysmonEvent ID 10ProcessAccess

Rule body yaml

title: HackTool - HandleKatz Duplicating LSASS Handle
id: b1bd3a59-c1fd-4860-9f40-4dd161a7d1f5
status: test
description: Detects HandleKatz opening LSASS to duplicate its handle to later dump the memory without opening any new handles
references:
    - https://github.com/codewhitesec/HandleKatz
author: Bhabesh Raj (rule), @thefLinkk
date: 2022-06-27
modified: 2023-11-28
tags:
    - attack.execution
    - attack.t1106
    - attack.t1003.001
    - attack.credential-access
logsource:
    category: process_access
    product: windows
detection:
    selection:
        TargetImage|endswith: '\lsass.exe' # Theoretically, can be any benign process holding handle to LSASS
        GrantedAccess: '0x1440' # Only PROCESS_DUP_HANDLE, PROCESS_QUERY_LIMITED_INFORMATION, PROCESS_QUERY_INFORMATION
        # Example: C:\Windows\SYSTEM32\ntdll.dll+9d234\|UNKNOWN(00000000001C119B)
        CallTrace|startswith: 'C:\Windows\System32\ntdll.dll+'
        CallTrace|contains: '|UNKNOWN('
        CallTrace|endswith: ')'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetImage|endswith: '\lsass.exe'
    GrantedAccess: '0x1440'
    CallTrace|startswith: 'C:\Windows\System32\ntdll.dll+'
    CallTrace|contains: '|UNKNOWN('
    CallTrace|endswith: ')'

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
CallTraceends_with
  • )
CallTracematch
  • |UNKNOWN( corpus 2 (sigma 2)
CallTracestarts_with
  • C:\Windows\System32\ntdll.dll+
GrantedAccesseq
  • 0x1440
TargetImageends_with
  • \lsass.exe corpus 16 (sigma 16)