Detect Credentials from Web Browsers in Elastic Security
Adversaries may acquire credentials from web browsers by reading files specific to the target browser. Web browsers commonly save credentials such as website usernames and passwords in encrypted format within credential stores. On Windows, encrypted credentials may be obtained from Chrome by reading the Login Data SQLite database and decrypting via CryptUnprotectData. Firefox stores credentials in key3.db/key4.db and logins.json. Edge and Internet Explorer credentials are managed by Windows Credential Manager. Adversaries may also search browser process memory for credential patterns using tools like mimikittenz.
MITRE ATT&CK
- Tactic
- Credential Access
- Technique
- T1555 Credentials from Password Stores
- Sub-technique
- T1555.003 Credentials from Web Browsers
- Canonical reference
- https://attack.mitre.org/techniques/T1555/003/
Elastic Detection Query
any where (
(
event.category == "file" and
event.type in ("creation", "change") and
file.name in ("Login Data", "logins.json", "key3.db", "key4.db", "signons.sqlite", "Web Data", "Cookies", "Local State") and
(
file.path like~ "*Google\\Chrome\\User Data*" or
file.path like~ "*Mozilla\\Firefox\\Profiles*" or
file.path like~ "*Microsoft\\Edge\\User Data*" or
file.path like~ "*BraveSoftware\\Brave-Browser*" or
file.path like~ "*Opera Software*"
) and
not process.name in~ ("chrome.exe", "firefox.exe", "msedge.exe", "brave.exe", "opera.exe", "iexplore.exe", "SearchProtocolHost.exe", "SearchIndexer.exe")
) or
(
event.category == "process" and
event.type == "start" and
(
process.name like~ "*browserpassview*" or
process.name like~ "*webbrowserpassview*" or
process.name like~ "*chromepass*" or
process.name like~ "*mimikittenz*" or
process.name like~ "*browserghost*" or
process.name like~ "*sharpchromium*" or
process.name like~ "*hackbrowserdata*" or
process.name like~ "*lazagne*" or
(
process.command_line like~ "*Login Data*" and
not process.name in~ ("chrome.exe", "msedge.exe", "firefox.exe", "brave.exe", "opera.exe")
) or
(
process.command_line like~ "*logins.json*" and
not process.name in~ ("firefox.exe")
) or
(
process.command_line like~ "*key4.db*" and
not process.name in~ ("firefox.exe")
) or
process.command_line like~ "*CryptUnprotectData*" or
process.command_line like~ "*SELECT*FROM logins*" or
process.command_line like~ "*SELECT*password_value*"
)
)
) Detects credential theft from web browsers using Elastic EQL. Monitors two event categories: (1) file-level access to browser credential stores (Login Data, logins.json, key3.db/key4.db) by non-browser processes, and (2) process launches matching known credential harvesting tool names or command-line patterns indicative of DPAPI decryption, direct file access, or SQL queries against browser password databases.
Data Sources
Required Tables
False Positives & Tuning
- Enterprise password managers (KeePass, 1Password, Bitwarden) that integrate with browser credential stores may access these files legitimately
- IT management and endpoint compliance tools (SCCM, Tanium, Qualys) that audit browser installations and profile directories
- Backup software (Veeam, Acronis, Windows Backup) reading entire user profile directories including browser data folders
Other platforms for T1555.003
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Copy Chrome Login Data for offline extraction
Expected signal: Sysmon Event ID 11: FileCreate for the copied Login Data file. Sysmon Event ID 1: Process Create for cmd.exe with copy command. DeviceFileEvents in MDE showing file copy from Chrome directory.
- Test 2Query Chrome credentials with sqlite3
Expected signal: Sysmon Event ID 1: Process Create with Image=sqlite3.exe, CommandLine containing 'Login Data' and 'SELECT...FROM logins'. DeviceFileEvents showing sqlite3 reading Login Data file.
- Test 3Extract Firefox credentials with LaZagne
Expected signal: Sysmon Event ID 1: Process Create with Image containing 'lazagne'. Sysmon Event ID 11: potential output file creation. Multiple file access events as LaZagne reads credential stores from all installed browsers.
References (7)
- https://attack.mitre.org/techniques/T1555/003/
- https://docs.microsoft.com/en-us/windows/desktop/api/dpapi/nf-dpapi-cryptunprotectdata
- https://blog.talosintelligence.com/2018/02/olympic-destroyer.html
- https://github.com/putterpanda/mimikittenz
- https://github.com/AlessandroZ/LaZagne
- https://github.com/nicehash/HackBrowserData
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1555.003/T1555.003.md
Unlock Pro Content
Get the full detection package for T1555.003 including response playbook, investigation guide, and atomic red team tests.