Potential Credential Access via LSASS Memory Dump

edit

Potential Credential Access via LSASS Memory Dump

edit

Identifies suspicious access to LSASS handle from a call trace pointing to DBGHelp.dll or DBGCore.dll, which both export the MiniDumpWriteDump method that can be used to dump LSASS memory content in preparation for credential access.

Rule type: eql

Rule indices:

  • winlogbeat-*
  • logs-windows.*

Severity: high

Risk score: 73

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • Windows
  • Threat Detection
  • Credential Access

Version: 4 (version history)

Added (Elastic Stack release): 8.0.0

Last modified (Elastic Stack release): 8.2.0

Rule authors: Elastic

Rule license: Elastic License v2

Investigation guide

edit
## Config

If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.

Rule query

edit
process where event.code == "10" and winlog.event_data.TargetImage :
"?:\\WINDOWS\\system32\\lsass.exe" and /* DLLs exporting
MiniDumpWriteDump API to create an lsass mdmp*/
winlog.event_data.CallTrace : ("*dbghelp*", "*dbgcore*") and /*
case of lsass crashing */ not process.executable :
("?:\\Windows\\System32\\WerFault.exe",
"?:\\Windows\\System32\\WerFaultSecure.exe")

Threat mapping

edit

Framework: MITRE ATT&CKTM

Rule version history

edit
Version 4 (8.2.0 release)
  • Formatting only
Version 3 (8.1.0 release)
  • Updated query, changed from:

    process where event.code == "10" and winlog.event_data.TargetImage :
    "?:\\WINDOWS\\system32\\lsass.exe" and /* DLLs exporting
    MiniDumpWriteDump API to create an lsass mdmp*/
    winlog.event_data.CallTrace : ("*dbhelp*", "*dbgcore*") and /*
    case of lsass crashing */ not process.executable :
    ("?:\\Windows\\System32\\WerFault.exe",
    "?:\\Windows\\System32\\WerFaultSecure.exe")