Detect Browser Information Discovery in Splunk
Adversaries may enumerate information about browsers to learn more about compromised environments. Data saved by browsers (such as bookmarks, accounts, and browsing history) may reveal personal information about users (banking sites, social media, relationships) as well as details about internal network resources such as servers, tools/dashboards, and other infrastructure. Browser information may also highlight additional targets after an adversary has access to valid credentials, especially credentials cached by browsers in Login Data or logins.json files. Specific storage locations vary by platform and application, but browser information is typically stored in local SQLite databases and JSON files under user profile directories.
MITRE ATT&CK
- Tactic
- Discovery
- Technique
- T1217 Browser Information Discovery
- Canonical reference
- https://attack.mitre.org/techniques/T1217/
SPL Detection Query
index=wineventlog sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=11
(
TargetFilename="*\\Google\\Chrome\\User Data\\*" OR
TargetFilename="*\\Microsoft\\Edge\\User Data\\*" OR
TargetFilename="*\\Mozilla\\Firefox\\Profiles\\*" OR
TargetFilename="*\\BraveSoftware\\Brave-Browser\\User Data\\*" OR
TargetFilename="*\\Opera Software\\Opera Stable\\*"
)
(
TargetFilename="*History*" OR TargetFilename="*Bookmarks*" OR
TargetFilename="*Login Data*" OR TargetFilename="*Cookies*" OR
TargetFilename="*places.sqlite*" OR TargetFilename="*logins.json*" OR
TargetFilename="*key4.db*" OR TargetFilename="*LocalState*" OR
TargetFilename="*Web Data*" OR TargetFilename="*Favicons*"
)
NOT (Image="*\\chrome.exe" OR Image="*\\msedge.exe" OR Image="*\\firefox.exe"
OR Image="*\\brave.exe" OR Image="*\\chromium.exe" OR Image="*\\vivaldi.exe"
OR Image="*\\MsMpEng.exe" OR Image="*\\SearchIndexer.exe"
OR Image="*\\msedgewebview2.exe")
| eval IsScriptEngine=if(match(Image, "(?i)(powershell|pwsh|cmd|wscript|cscript|mshta)"), 1, 0)
| eval IsPython=if(match(Image, "(?i)(python[23]?\.exe|pythonw\.exe)"), 1, 0)
| eval IsArchiver=if(match(Image, "(?i)(7z|winrar|zip|robocopy|xcopy|tar)"), 1, 0)
| eval IsSuspiciousPath=if(match(Image, "(?i)(\\\\temp\\\\|\\\\appdata\\\\roaming\\\\|\\\\downloads\\\\|\\\\public\\\\)"), 1, 0)
| eval RiskScore=IsScriptEngine + IsPython + IsArchiver + IsSuspiciousPath
| eval BrowserType=case(
match(TargetFilename, "(?i)chrome"), "Chrome",
match(TargetFilename, "(?i)edge"), "Edge",
match(TargetFilename, "(?i)firefox|places|logins|key4"), "Firefox",
match(TargetFilename, "(?i)brave"), "Brave",
1=1, "Unknown"
)
| table _time, host, User, Image, CommandLine, TargetFilename, BrowserType,
IsScriptEngine, IsPython, IsArchiver, IsSuspiciousPath, RiskScore
| sort - RiskScore - _time Detects non-browser processes creating or copying browser profile data files using Sysmon Event ID 11 (File Create). Monitors for access to sensitive browser files across Chrome, Edge, Firefox, Brave, and Opera profile directories. Evaluates each event with risk scoring based on accessing process characteristics: scripting engines (PowerShell, WScript), Python interpreters, archive/copy tools, and processes running from suspicious directory paths. Higher risk scores warrant immediate investigation.
Data Sources
Required Sourcetypes
False Positives & Tuning
- Backup software (Veeam, Acronis, Windows Backup) backing up user AppData directories including browser profiles
- Enterprise endpoint management tools (Tanium, BigFix, SCCM inventory agents) performing asset scans of user profile contents
- Password managers (1Password, Bitwarden, KeePass import utilities) reading browser data for credential import/migration workflows
- Browser profile migration or sync tools (e.g., MigrationAssistant, PCmover) during workstation refresh cycles
- Security tools and DLP agents that scan browser storage as part of data classification or credential exposure monitoring
Other platforms for T1217
Testing Methodology
Validate this detection against 5 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 1PowerShell Copy Chrome History and Bookmarks
Expected signal: Sysmon Event ID 1: Process Create — powershell.exe with CommandLine referencing 'Chrome\User Data\Default\History' and 'Chrome\User Data\Default\Bookmarks'. Sysmon Event ID 11: File Create — TargetFilename matching $TEMP\browser_data_test\History and $TEMP\browser_data_test\Bookmarks, with Image=powershell.exe. DeviceFileEvents ActionType=FileCopied for both files.
- Test 2CMD Directory Enumeration of Firefox Profiles
Expected signal: Sysmon Event ID 1: Process Create — cmd.exe with CommandLine containing '%APPDATA%\Mozilla\Firefox\Profiles\'. Security Event ID 4688 (if process command line auditing enabled). No file creation events from dir enumeration, but process command line is the primary indicator.
- Test 3Python SQLite Query Against Chrome History
Expected signal: Sysmon Event ID 1: Process Create — python.exe with CommandLine referencing '%LOCALAPPDATA%\Google\Chrome\User Data\Default\History' and 'sqlite3'. Sysmon Event ID 11: File Create — TargetFilename=$TEMP\hist_tmp.db with Image=python.exe. DeviceFileEvents ActionType=FileCopied for History file.
- Test 4PowerShell Read Chrome Bookmarks for Internal Resource Discovery
Expected signal: Sysmon Event ID 1: Process Create — powershell.exe with CommandLine containing 'Chrome\User Data\Default\Bookmarks'. Sysmon Event ID 11: File Create may not fire for read-only access; rely on DeviceFileEvents ActionType=FileRead in MDE. PowerShell Script Block Log Event ID 4104 captures the full script including ConvertFrom-Json parsing logic.
- Test 5Linux Shell Script Collecting Firefox and Chrome Browser Data
Expected signal: Linux auditd: syscall execve for bash/sh with browser path arguments, and open/read syscalls on ~/.mozilla/firefox/*/places.sqlite and ~/.config/google-chrome/Default/History. Syslog entries if auditd rules are configured for home directory access. Linux file access events in Sysmon for Linux (if deployed): EventCode=11 for file creation in /tmp/browser_staging.
References (9)
- https://attack.mitre.org/techniques/T1217/
- https://support.google.com/chrome/a/answer/7349337
- https://www.kaspersky.com/blog/browser-data-theft/27871/
- https://securelist.com/calisto-trojan-for-macos/86543/
- https://www.sentinelone.com/labs/metador-investigating-an-elusive-apt/
- https://www.cybereason.com/blog/powerless-trojan-iranian-apt-phosphorus-adds-new-powershell-backdoor
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1217/T1217.md
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-038a
- https://www.splunk.com/en_us/blog/security/detecting-redline-stealer.html
Unlock Pro Content
Get the full detection package for T1217 including response playbook, investigation guide, and atomic red team tests.