Detection rules › Elastic

Potential HawkEyes Stealer Infection

Source
github.com/elastic/protections-artifacts

Identifies the use of a browser to perform browser or internet location discovery from an unusual process. HawKEyes infostealer performs this action to assess potential targets.

MITRE ATT&CK coverage

Rule body

[rule]
description = """
Identifies the use of a browser to perform browser or internet location discovery from an unusual process. HawKEyes
infostealer performs this action to assess potential targets.
"""
id = "583448c6-986f-412b-8947-e3895bfc9426"
license = "Elastic License v2"
name = "Potential HawkEyes Stealer Infection"
os_list = ["windows"]
reference = ["https://malpedia.caad.fkie.fraunhofer.de/details/win.hawkeye_keylogger"]
version = "1.0.19"

query = '''
process where event.action == "start" and
 process.name : ("chrome.exe", "msedge.exe", "brave.exe", "browser.exe", "dragon.exe") and
 process.args : "--dump-dom" and process.args : "--headless" and process.args : "http*" and
 process.parent.executable != null and
 not process.parent.executable : 
                   ("?:\\Program Files\\*\\Endpoint Protection SDK\\endpointprotection.exe", 
                    "?:\\Program Files (x86)\\*\\Endpoint Protection SDK\\endpointprotection.exe",
                    "?:\\ProgramData\\CentraStage\\AEMAgent\\RMM.AdvancedThreatDetection\\dattoav\\Endpoint Protection SDK\\endpointprotection.exe")
'''

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

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

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

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1016"
name = "System Network Configuration Discovery"
reference = "https://attack.mitre.org/techniques/T1016/"
[[threat.technique.subtechnique]]
id = "T1016.001"
name = "Internet Connection Discovery"
reference = "https://attack.mitre.org/techniques/T1016/001/"



[threat.tactic]
id = "TA0007"
name = "Discovery"
reference = "https://attack.mitre.org/tactics/TA0007/"

[internal]
min_endpoint_version = "7.15.0"

Stages and Predicates

Stage 1: process

process where event.action == "start" and
 process.name : ("chrome.exe", "msedge.exe", "brave.exe", "browser.exe", "dragon.exe") and
 process.args : "--dump-dom" and process.args : "--headless" and process.args : "http*" and
 process.parent.executable != null and
 not process.parent.executable : 
                   ("?:\\Program Files\\*\\Endpoint Protection SDK\\endpointprotection.exe", 
                    "?:\\Program Files (x86)\\*\\Endpoint Protection SDK\\endpointprotection.exe",
                    "?:\\ProgramData\\CentraStage\\AEMAgent\\RMM.AdvancedThreatDetection\\dattoav\\Endpoint Protection SDK\\endpointprotection.exe")

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
process.parent.executablewildcard?:\Program Files\*\Endpoint Protection SDK\endpointprotection.exe, ?:\Program Files (x86)\*\Endpoint Protection SDK\endpointprotection.exe, ?:\ProgramData\CentraStage\AEMAgent\RMM.AdvancedThreatDetection\dattoav\Endpoint Protection SDK\endpointprotection.exeexcludes:process.parent.executable field:"process.parent.executable" value:"?:\Program Files\*\Endpoint Protection SDK\endpointprotection.exe" field:"process.parent.executable" value:"?:\Program Files (x86)\*\Endpoint Protection SDK\endpointprotection.exe" field:"process.parent.executable" value:"?:\ProgramData\CentraStage\AEMAgent\RMM.AdvancedThreatDetection\dattoav\Endpoint Protection SDK\endpointprotection.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
  • --dump-dom
  • --headless corpus 2 (elastic 2)
  • http* corpus 9 (elastic 9)
field:"process.args" kind:wildcard
process.namewildcard
  • brave.exe corpus 7 (elastic 7)
  • browser.exe corpus 7 (elastic 7)
  • chrome.exe corpus 16 (elastic 14, splunk 2)
  • dragon.exe corpus 7 (elastic 7)
  • msedge.exe corpus 12 (elastic 12)
field:"process_name" kind:wildcard
process.parent.executableis_not_null
  • (no value, null check)
field:"ParentImage" kind:is_not_null