Detection rules › Elastic

Potential Browser Credentials Stealer

Time window
1s
Sequence by
process.entity_id
Source
github.com/elastic/protections-artifacts

Identifies the creation of files with names related to web browser's credential store data. Adversaries may steal credentials from web browsers by reading files specific to the target browser.

MITRE ATT&CK coverage

Rule body

[rule]
description = """
Identifies the creation of files with names related to web browser's credential store data. Adversaries may steal
credentials from web browsers by reading files specific to the target browser.
"""
id = "d154bb87-dc5d-4e6e-8be8-24f631ef09ff"
license = "Elastic License v2"
name = "Potential Browser Credentials Stealer"
os_list = ["windows"]
version = "1.0.4"

query = '''
sequence by process.entity_id with maxspan=1s
[file where event.action == "creation" and process.pid != 4 and process.executable != null and process.name != null and
  not process.code_signature.status : ("trusted", "errorExpired", "errorCode_endpoint*") and
  file.name : ("creditcards.db", "passwords.db", "autofilldata.db", "Google_Chome_Default.txt",
              "creditcards.txt", "passwords.txt", "autofilldata.txt", "AutoFill.txt", "Bookmarks.txt", "Cards.txt") and
  not (process.executable : "C:\\Program Files (x86)\\Genesys\\GenesysCloud\\GenesysCloud.exe" and file.name : "passwords.txt")]
[file where event.action == "creation" and process.pid != 4 and process.executable != null and process.name != null and
  not process.code_signature.status : ("trusted", "errorExpired", "errorCode_endpoint*") and
  file.name : ("creditcards.db", "passwords.db", "autofilldata.db", "Google_Chome_Default.txt",
               "creditcards.txt", "passwords.txt", "autofilldata.txt", "AutoFill.txt", "Bookmarks.txt", "Cards.txt")]
'''

min_endpoint_version = "8.1.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 = "T1539"
name = "Steal Web Session Cookie"
reference = "https://attack.mitre.org/techniques/T1539/"

[[threat.technique]]
id = "T1552"
name = "Unsecured Credentials"
reference = "https://attack.mitre.org/techniques/T1552/"
[[threat.technique.subtechnique]]
id = "T1552.001"
name = "Credentials In Files"
reference = "https://attack.mitre.org/techniques/T1552/001/"


[[threat.technique]]
id = "T1555"
name = "Credentials from Password Stores"
reference = "https://attack.mitre.org/techniques/T1555/"
[[threat.technique.subtechnique]]
id = "T1555.003"
name = "Credentials from Web Browsers"
reference = "https://attack.mitre.org/techniques/T1555/003/"



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

[internal]
min_endpoint_version = "8.1.0"

Stages and Predicates

Ordered sequence: each step below must occur in order within 1s, correlated by process.entity_id.

Stage 1: file

[file where event.action == "creation" and process.pid != 4 and process.executable != null and process.name != null and
  not process.code_signature.status : ("trusted", "errorExpired", "errorCode_endpoint*") and
  file.name : ("creditcards.db", "passwords.db", "autofilldata.db", "Google_Chome_Default.txt",
              "creditcards.txt", "passwords.txt", "autofilldata.txt", "AutoFill.txt", "Bookmarks.txt", "Cards.txt") and
  not (process.executable : "C:\\Program Files (x86)\\Genesys\\GenesysCloud\\GenesysCloud.exe" and file.name : "passwords.txt")]

Stage 2: file

[file where event.action == "creation" and process.pid != 4 and process.executable != null and process.name != null and
  not process.code_signature.status : ("trusted", "errorExpired", "errorCode_endpoint*") and
  file.name : ("creditcards.db", "passwords.db", "autofilldata.db", "Google_Chome_Default.txt",
               "creditcards.txt", "passwords.txt", "autofilldata.txt", "AutoFill.txt", "Bookmarks.txt", "Cards.txt")]

Exclusions

The rule actively suppresses these predicates.

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
event.actioneq
  • creation corpus 58 (elastic 58)
field:"EventType" kind:eq value:"creation"
file.namewildcard
  • AutoFill.txt
  • Bookmarks.txt
  • Cards.txt
  • Google_Chome_Default.txt
  • autofilldata.db
  • autofilldata.txt
  • creditcards.db
  • creditcards.txt
  • passwords.db
  • passwords.txt
field:"file.name" kind:wildcard
process.executableis_not_null
  • (no value, null check)
field:"Image" kind:is_not_null
process.nameis_not_null
  • (no value, null check)
field:"process_name" kind:is_not_null
process.pidne
  • 4 transforms: number corpus 44 (elastic 44)
field:"process_id" kind:ne value:"4"