Detection rules › Splunk

Esentutl.exe Collecting Browser Data (Sysmon)

Group by
_time, host
Source
github.com/anvilogic-forge/armory

Esentutl.exe is a Windows command line utility that provides database utilities for the Extensible Storage Engine (ESE). While esentutl.exe is a legitimate and useful tool within Windows environments, its abuse has been observed in malware infections including Qakbot, where it has been used to collect data from Internet Explorer and Microsoft Edge. This use case detects command line arguments used with esentutl.exe to collect data from web browsers

MITRE ATT&CK coverage

TacticTechniques
Collection

References

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule body

id: '24860.46041'
title: Esentutl.exe Collecting Browser Data
description: 'Esentutl.exe is a Windows command line utility that provides database
  utilities for the Extensible Storage Engine (ESE). While esentutl.exe is a legitimate
  and useful tool within Windows environments, its abuse has been observed in malware
  infections including Qakbot, where it has been used to collect data from Internet
  Explorer and Microsoft Edge. This use case detects command line arguments used with
  esentutl.exe to collect data from web browsers. -- Software Association: Akira --
  Living Off the Land Binary and Scripts (LOLBAS) (LOLBIN)'
logic_format: Splunk
logic: '`get_endpoint_data` `get_endpoint_data_sysmon` (TERM(EventCode=1) OR "<EventID>1<")
  "esentutl.exe" OR ("/r " "\\Windows\\WebCache") | where match(process, "(?i)\s/r\s.*\x5cWindows\x5cWebCache")
  | table _time, host, user, signature_id, process, process_*, parent_* | bin span=1s
  | stats values(*) as * by _time, host '
techniques:
- collection:data from local system
technique_id: 
- T1005
data_category:
- Windows Sysmon
references:
- https://thedfirreport.com/2022/02/07/qbot-likes-to-move-it-move-it/
- https://www.cybereason.com/blog/threat-alert-aggressive-qakbot-campaign-and-the-black-basta-ransomware-group-targeting-u.s.-companies

Stages and Predicates

Stage 1: search

`get_endpoint_data` `get_endpoint_data_sysmon` (TERM(EventCode=1) OR "<EventID>1<") "esentutl.exe" OR ("/r " "\\Windows\\WebCache")

Stage 2: where

| where match(process, "(?i)\s/r\s.*\x5cWindows\x5cWebCache")

Stage 3: table

| table _time, host, user, signature_id, process, process_*, parent_*

Stage 4: bucket

| bin span=1s

Stage 5: stats

| stats values(*) as * by _time, host

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventCodeeq
  • 1 corpus 241 (splunk 225, kusto 15, elastic 1)
field:"EventID" kind:eq value:"1"
processregex_match
  • "(?i)\s/r\s.*\x5cWindows\x5cWebCache"
field:"CommandLine" kind:regex_match

Search terms

These SPL tokens match against raw event text.

StageTerm
1"<EventID>1<"
1"esentutl.exe"
1"/r "
1"\\Windows\\WebCache"