Detection rules › Elastic

Credential Access via Known Utilities

Source
github.com/elastic/protections-artifacts

Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database (NTDS.dit) in preparation for credential access.

MITRE ATT&CK coverage

Rule body

[rule]
description = """
Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database
(NTDS.dit) in preparation for credential access.
"""
id = "3c44fc50-2672-48b3-af77-ff43b895ac70"
license = "Elastic License v2"
name = "Credential Access via Known Utilities"
os_list = ["windows"]
reference = [
    "https://lolbas-project.github.io/",
    "https://www.elastic.co/security-labs/bits-and-bytes-analyzing-bitsloth",
]
version = "1.0.47"

query = '''
process where event.action == "start" and
 process.parent.name != null and 
 (
  (process.pe.original_file_name == "procdump" and process.args : "-ma" and process.command_line : "*lsass*") or
  (process.name : "ProcessDump.exe" and not process.parent.executable : "?:\\Program Files*\\Cisco Systems\\*.exe") or
  (process.pe.original_file_name == "WriteMiniDump.exe" and not process.parent.executable : "?:\\Program Files*\\Steam\\*.exe") or
  /* Issue #623 - added coverage for evasion via renamed comsvcs DLL */
  (process.pe.original_file_name == "RUNDLL32.EXE" and process.command_line : ("*comsvcs*24*", "*MiniDump*", "*#*24* full*")) or
  (process.pe.original_file_name == "RdrLeakDiag.exe" and process.args : "/fullmemdmp") or
  (process.pe.original_file_name == "SqlDumper.exe" and process.args : "0x01100*") or
  (process.pe.original_file_name == "TTTracer.exe" and process.args : "-dumpFull" and process.args : "-attach") or
  (process.pe.original_file_name == "ntdsutil.exe" and process.command_line : "*create*") or
  (process.pe.original_file_name == "diskshadow.exe" and process.args : "/s") or
  ((process.pe.original_file_name : "wbadmin.exe" or process.name : "wbadmin.exe") and
    process.args : "recovery" and process.command_line : "*ntds.dit*") or
  (process.pe.original_file_name == "esentutl.exe" and process.args : "/vss" and process.command_line : ("*ntds.dit*", "*\\SAM*", "*//SAM*")) or
  (process.pe.original_file_name == "esentutl.exe" and process.args : "/y" and process.command_line : ("*\\Cookies*", "*\\Login Data*")) or
  (process.pe.original_file_name == "reg.exe" and process.args : ("save", "export") and
   process.command_line : ("*HKLM*\\SAM *", "*hkey_local_machine*\\SAM *", "*HKLM\\security*",
                          "*hkey_local_machine\\security*", "*HKLM\\system *", "*hkey_local_machine\\system *")) or
  /* generic original filename and variable number of hashes */
  (process.name : "createdump.exe" and process.args : "-u") or 
  (process.pe.original_file_name == "FX_VER_INTERNALNAME_STR" and process.args : "-u" and process.args : "-f" and process.args_count >= 3) or
  /* Avast Home Security signed binary */
  (process.pe.original_file_name == "avDump.exe" and process.args : "–dump_file") or
  (process.pe.original_file_name == "DumpMinitool.exe" and process.args : "--dumpType")
  ) and not

  /* Issue #528 */
  (process.pe.original_file_name == "reg.exe" and
   process.parent.executable : ("?:\\Program Files\\Rapid7\\Insight Agent\\components\\insight_agent\\*\\ir_agent.exe",
                                "?:\\Program Files (x86)\\Rapid7\\Insight Agent\\components\\insight_agent\\*\\ir_agent.exe")) and not
  (process.pe.original_file_name == "diskshadow.exe" and process.parent.name : "powershell.exe" and process.parent.args : "?:\\OmniStackBackups\\backup*") and
  not (process.name : "rundll32.exe" and
       process.command_line : "*davclnt.dll,DavSetCookie*http*MiniDump*" and
       process.parent.executable : "?:\\WINDOWS\\system32\\svchost.exe" and process.parent.args : "WebClient") and
  not (process.pe.original_file_name == "reg.exe" and process.args : "?:\\ProgramData\\Bitdefender\\ForensicArtefacts\\System\\Config\\*" and
       process.parent.name : "cmd.exe") and
  not (process.executable : "C:\\Program Files (x86)\\Dental Intel\\PMSSyncService\\procdump.exe" and process.args : "office.exe") and 
  not (process.name : "diskshadow.exe" and process.parent.executable : "?:\\Windows\\Temp\\RackWare-winutil\\bin\\bash.exe" and 
       process.args : "?:\\windows\\Temp\\RackWare-winutil\\*") and
  not (process.name : "reg.exe" and process.parent.executable : "C:\\Program Files\\SF\\EDR\\agent\\bin\\sfavtray.exe") and
  not (process.name : "diskshadow.exe" and process.command_line : "*\\Program Files\\ARCServe\\*") and
  not (process.name : "reg.exe" and process.args : "save" and
       process.args : "?:\\Program Files\\Rapid7\\Insight Agent\\components\\insight_agent\\common\\ir_agent_tmp\\*" and
       process.working_directory : "?:\\Program Files\\Rapid7\\Insight Agent\\components\\insight_agent\\common\\") and
  not (process.name : "diskshadow.exe" and process.parent.executable : "C:\\Program Files\\Barracuda\\Barracuda Backup Agent\\win\\x86_64\\BackupService.exe")
'''

min_endpoint_version = "7.15.0"
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[optional_actions]]
action = "rollback"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1003"
name = "OS Credential Dumping"
reference = "https://attack.mitre.org/techniques/T1003/"
[[threat.technique.subtechnique]]
id = "T1003.001"
name = "LSASS Memory"
reference = "https://attack.mitre.org/techniques/T1003/001/"

[[threat.technique.subtechnique]]
id = "T1003.003"
name = "NTDS"
reference = "https://attack.mitre.org/techniques/T1003/003/"



[threat.tactic]
id = "TA0006"
name = "Credential Access"
reference = "https://attack.mitre.org/tactics/TA0006/"

[internal]
min_endpoint_version = "7.15.0"

Stages and Predicates

Stage 1: process

process where event.action == "start" and
 process.parent.name != null and
 (
  (process.pe.original_file_name == "procdump" and process.args : "-ma" and process.command_line : "*lsass*") or
  (process.name : "ProcessDump.exe" and not process.parent.executable : "?:\\Program Files*\\Cisco Systems\\*.exe") or
  (process.pe.original_file_name == "WriteMiniDump.exe" and not process.parent.executable : "?:\\Program Files*\\Steam\\*.exe") or
  (process.pe.original_file_name == "RUNDLL32.EXE" and process.command_line : ("*comsvcs*24*", "*MiniDump*", "*#*24* full*")) or
  (process.pe.original_file_name == "RdrLeakDiag.exe" and process.args : "/fullmemdmp") or
  (process.pe.original_file_name == "SqlDumper.exe" and process.args : "0x01100*") or
  (process.pe.original_file_name == "TTTracer.exe" and process.args : "-dumpFull" and process.args : "-attach") or
  (process.pe.original_file_name == "ntdsutil.exe" and process.command_line : "*create*") or
  (process.pe.original_file_name == "diskshadow.exe" and process.args : "/s") or
  ((process.pe.original_file_name : "wbadmin.exe" or process.name : "wbadmin.exe") and
    process.args : "recovery" and process.command_line : "*ntds.dit*") or
  (process.pe.original_file_name == "esentutl.exe" and process.args : "/vss" and process.command_line : ("*ntds.dit*", "*\\SAM*", "*//SAM*")) or
  (process.pe.original_file_name == "esentutl.exe" and process.args : "/y" and process.command_line : ("*\\Cookies*", "*\\Login Data*")) or
  (process.pe.original_file_name == "reg.exe" and process.args : ("save", "export") and
   process.command_line : ("*HKLM*\\SAM *", "*hkey_local_machine*\\SAM *", "*HKLM\\security*",
                          "*hkey_local_machine\\security*", "*HKLM\\system *", "*hkey_local_machine\\system *")) or
  (process.name : "createdump.exe" and process.args : "-u") or
  (process.pe.original_file_name == "FX_VER_INTERNALNAME_STR" and process.args : "-u" and process.args : "-f" and process.args_count >= 3) or
  (process.pe.original_file_name == "avDump.exe" and process.args : "–dump_file") or
  (process.pe.original_file_name == "DumpMinitool.exe" and process.args : "--dumpType")
  ) and not
  (process.pe.original_file_name == "reg.exe" and
   process.parent.executable : ("?:\\Program Files\\Rapid7\\Insight Agent\\components\\insight_agent\\*\\ir_agent.exe",
                                "?:\\Program Files (x86)\\Rapid7\\Insight Agent\\components\\insight_agent\\*\\ir_agent.exe")) and not
  (process.pe.original_file_name == "diskshadow.exe" and process.parent.name : "powershell.exe" and process.parent.args : "?:\\OmniStackBackups\\backup*") and
  not (process.name : "rundll32.exe" and
       process.command_line : "*davclnt.dll,DavSetCookie*http*MiniDump*" and
       process.parent.executable : "?:\\WINDOWS\\system32\\svchost.exe" and process.parent.args : "WebClient") and
  not (process.pe.original_file_name == "reg.exe" and process.args : "?:\\ProgramData\\Bitdefender\\ForensicArtefacts\\System\\Config\\*" and
       process.parent.name : "cmd.exe") and
  not (process.executable : "C:\\Program Files (x86)\\Dental Intel\\PMSSyncService\\procdump.exe" and process.args : "office.exe") and
  not (process.name : "diskshadow.exe" and process.parent.executable : "?:\\Windows\\Temp\\RackWare-winutil\\bin\\bash.exe" and
       process.args : "?:\\windows\\Temp\\RackWare-winutil\\*") and
  not (process.name : "reg.exe" and process.parent.executable : "C:\\Program Files\\SF\\EDR\\agent\\bin\\sfavtray.exe") and
  not (process.name : "diskshadow.exe" and process.command_line : "*\\Program Files\\ARCServe\\*") and
  not (process.name : "reg.exe" and process.args : "save" and
       process.args : "?:\\Program Files\\Rapid7\\Insight Agent\\components\\insight_agent\\common\\ir_agent_tmp\\*" and
       process.working_directory : "?:\\Program Files\\Rapid7\\Insight Agent\\components\\insight_agent\\common\\") and
  not (process.name : "diskshadow.exe" and process.parent.executable : "C:\\Program Files\\Barracuda\\Barracuda Backup Agent\\win\\x86_64\\BackupService.exe")

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
process.argseqoffice.exeexcludes:process.args field:"process.args" value:"office.exe"
process.executableeqC:\Program Files (x86)\Dental Intel\PMSSyncService\procdump.exeexcludes:process.executable field:"process.executable" value:"C:\Program Files (x86)\Dental Intel\PMSSyncService\procdump.exe"
process.argseqsaveexcludes:process.args field:"process.args" value:"save"
process.argsstarts_with?:\Program Files\Rapid7\Insight Agent\components\insight_agent\common\ir_agent_tmp\excludes:process.args field:"process.args" value:"?:\Program Files\Rapid7\Insight Agent\components\insight_agent\common\ir_agent_tmp\"
process.nameeqreg.exeexcludes:process.name field:"process.name" value:"reg.exe"
process.working_directoryeq?:\Program Files\Rapid7\Insight Agent\components\insight_agent\common\excludes:process.working_directory field:"process.working_directory" value:"?:\Program Files\Rapid7\Insight Agent\components\insight_agent\common\"
process.argsstarts_with?:\ProgramData\Bitdefender\ForensicArtefacts\System\Config\excludes:process.args field:"process.args" value:"?:\ProgramData\Bitdefender\ForensicArtefacts\System\Config\"
process.parent.nameeqcmd.exeexcludes:process.parent.name field:"process.parent.name" value:"cmd.exe"
process.pe.original_file_nameeqreg.exeexcludes:process.pe.original_file_name field:"process.pe.original_file_name" value:"reg.exe"
process.argsstarts_with?:\windows\Temp\RackWare-winutil\excludes:process.args field:"process.args" value:"?:\windows\Temp\RackWare-winutil\"
process.nameeqdiskshadow.exeexcludes:process.name field:"process.name" value:"diskshadow.exe"
process.parent.executableeq?:\Windows\Temp\RackWare-winutil\bin\bash.exeexcludes:process.parent.executable field:"process.parent.executable" value:"?:\Windows\Temp\RackWare-winutil\bin\bash.exe"
process.command_linematch\Program Files\ARCServe\excludes:process.command_line field:"process.command_line" value:"\Program Files\ARCServe\"
process.command_linewildcard*davclnt.dll,DavSetCookie*http*MiniDump*excludes:process.command_line field:"process.command_line" value:"*davclnt.dll,DavSetCookie*http*MiniDump*"
process.nameeqrundll32.exeexcludes:process.name field:"process.name" value:"rundll32.exe"
process.parent.argseqWebClientexcludes:process.parent.args field:"process.parent.args" value:"WebClient"
process.parent.executableeq?:\WINDOWS\system32\svchost.exeexcludes:process.parent.executable field:"process.parent.executable" value:"?:\WINDOWS\system32\svchost.exe"
process.parent.executableeqC:\Program Files\Barracuda\Barracuda Backup Agent\win\x86_64\BackupService.exeexcludes:process.parent.executable field:"process.parent.executable" value:"C:\Program Files\Barracuda\Barracuda Backup Agent\win\x86_64\BackupService.exe"
process.parent.executableeqC:\Program Files\SF\EDR\agent\bin\sfavtray.exeexcludes:process.parent.executable field:"process.parent.executable" value:"C:\Program Files\SF\EDR\agent\bin\sfavtray.exe"
process.parent.argsstarts_with?:\OmniStackBackups\backupexcludes:process.parent.args field:"process.parent.args" value:"?:\OmniStackBackups\backup"
process.parent.nameeqpowershell.exeexcludes:process.parent.name field:"process.parent.name" value:"powershell.exe"
process.pe.original_file_nameeqdiskshadow.exeexcludes:process.pe.original_file_name field:"process.pe.original_file_name" value:"diskshadow.exe"
process.parent.executablewildcard?:\Program Files\Rapid7\Insight Agent\components\insight_agent\*\ir_agent.exe, ?:\Program Files (x86)\Rapid7\Insight Agent\components\insight_agent\*\ir_agent.exeexcludes:process.parent.executable field:"process.parent.executable" value:"?:\Program Files\Rapid7\Insight Agent\components\insight_agent\*\ir_agent.exe" field:"process.parent.executable" value:"?:\Program Files (x86)\Rapid7\Insight Agent\components\insight_agent\*\ir_agent.exe"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
event.actioneq
  • start corpus 391 (elastic 391)
field:"EventType" kind:eq value:"start"
process.argswildcard
  • --dumpType
  • -attach corpus 2 (elastic 2)
  • -dumpFull corpus 2 (elastic 2)
  • -f corpus 5 (elastic 5)
  • -ma corpus 2 (elastic 2)
  • -u corpus 4 (elastic 4)
  • /fullmemdmp corpus 2 (elastic 2)
  • /s corpus 3 (elastic 3)
  • /vss
  • /y corpus 2 (elastic 2)
  • 0x01100* corpus 2 (elastic 2)
  • export corpus 5 (elastic 5)
  • recovery corpus 2 (elastic 2)
  • save corpus 2 (elastic 2)
  • –dump_file
field:"process.args" kind:wildcard
process.args_countge
  • 3 transforms: number corpus 19 (elastic 19)
field:"process.args_count" kind:ge value:"3"
process.command_linewildcard
  • *#*24* full* corpus 2 (elastic 2)
  • *//SAM*
  • *HKLM*\SAM *
  • *HKLM\security*
  • *HKLM\system *
  • *MiniDump* corpus 5 (sigma 4, chronicle 1)
  • *\Cookies*
  • *\Login Data*
  • *\SAM* corpus 2 (sigma 1, elastic 1)
  • *comsvcs*24*
  • *create* corpus 29 (sigma 17, splunk 7, elastic 5)
  • *hkey_local_machine*\SAM *
  • *hkey_local_machine\security*
  • *hkey_local_machine\system *
  • *lsass* corpus 10 (sigma 6, kusto 2, elastic 1, chronicle 1)
  • *ntds.dit* corpus 3 (elastic 2, sigma 1)
field:"CommandLine" kind:wildcard
process.namewildcard
  • ProcessDump.exe corpus 2 (elastic 2)
  • createdump.exe corpus 2 (elastic 1, splunk 1)
  • wbadmin.exe corpus 8 (elastic 6, splunk 2)
field:"process_name" kind:wildcard
process.parent.nameis_not_null
  • (no value, null check)
field:"parent_process_name" kind:is_not_null
process.pe.original_file_nameeq
  • DumpMinitool.exe corpus 4 (sigma 2, elastic 2)
  • FX_VER_INTERNALNAME_STR corpus 4 (sigma 2, elastic 1, splunk 1)
  • RUNDLL32.EXE corpus 78 (sigma 35, elastic 22, splunk 21)
  • RdrLeakDiag.exe corpus 3 (elastic 2, sigma 1)
  • SqlDumper.exe corpus 2 (elastic 2)
  • TTTracer.exe corpus 2 (elastic 2)
  • WriteMiniDump.exe corpus 2 (elastic 2)
  • avDump.exe
  • diskshadow.exe corpus 7 (sigma 4, elastic 2, splunk 1)
  • esentutl.exe corpus 5 (sigma 2, elastic 2, splunk 1)
  • ntdsutil.exe corpus 3 (elastic 2, sigma 1)
  • procdump corpus 6 (elastic 3, sigma 2, splunk 1)
  • reg.exe corpus 43 (sigma 32, splunk 8, elastic 3)
field:"OriginalFileName" kind:eq
process.pe.original_file_namewildcard
  • wbadmin.exe corpus 19 (elastic 11, sigma 6, splunk 2)
field:"OriginalFileName" kind:wildcard value:"wbadmin.exe"