Browser Forensics – DFIR Workflow & Cheatsheet
Quick Reference: Investigation Priority Matrix
HIGH
History & Downloads
What sites? When? What files?
Medium
HIGH
Session Restore
Active tabs at incident time?
High
HIGH
Cache
What content viewed? Screenshots?
Medium
MEDIUM
Cookies
Session data? Authentication?
Low
MEDIUM
Auto-Complete Data
What was searched/typed?
Low
MEDIUM
Stored Credentials
What accounts accessed?
Low
LOW
Bookmarks
Sites of interest (may never visit)
Very Low
LOW
Extensions
Capabilities added? Malicious?
Very Low
Investigation Workflow
Phase 1: Initial Triage (High Priority)
Goal: Establish timeline and user activity scope
1.1 Browser History & Download History
What it tells you: Websites visited, frequency, downloaded files, timeline
Firefox Locations:
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\places.sqliteChrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\History
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\HistoryKey Investigation Points:
✓ Check ALL profiles (Default, Profile1, Profile2, etc.)
✓ Visit frequency indicates user interest/habit
✓ Download metadata: filename, size, source URL, referring page
✓ Check both
downloadsanddownload_url_chainstables (Chromium)✓ Cross-reference with filesystem timestamps
SQLite Tables to Query:
urls- Browsing historyvisits- Individual visit records with timestampsdownloads- Download metadatadownload_url_chains- Redirect chains
1.2 Session Restore Files
What it tells you: Active browser state at crash/incident time
Firefox Locations:
# Newer versions (JSONLZ4 format)
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\sessionstore.jsonlz4
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\sessionstore-backups\
# Older versions
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\sessionstore.jsChrome/Edge Locations:
# Newer versions
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Sessions\
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Sessions\
Files: Session_<timestamp>, Tabs_<timestamp>
# Older versions
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\
Files: Current Session, Current Tabs, Last Session, Last TabsKey Investigation Points:
✓ HIGHLY VOLATILE - Capture early in investigation
✓ Shows tabs open at time of incident/crash
✓ Includes referring URLs (how user got there)
✓ May contain form data, JavaScript state
✓ Browser window configuration (size, pinned tabs)
✓ Tab transition types reveal navigation method
Phase 2: Content Analysis (Medium Priority)
Goal: Understand what content user actually viewed
2.1 Cache Files
What it tells you: Actual webpage content, images, media viewed
Firefox Locations:
# Firefox 32+
%USERPROFILE%\AppData\Local\Mozilla\Firefox\Profiles\<random>.default\cache2
# Firefox 31 and earlier
%USERPROFILE%\AppData\Local\Mozilla\Firefox\Profiles\<random>.default\CacheChrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Cache\
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Cache\
Files: data_# and f_######Key Investigation Points:
✓ Provides "snapshot in time" of viewed content
✓ Recover actual images, videos, documents
✓ Timestamps: first cached AND last viewed
✓ Can reconstruct pages even if history cleared
✓ Tied to specific local user account
✓ Use specialized tools (NirSoft ChromeCacheView, MZCacheView)
2.2 Media History (Chromium Only)
What it tells you: Audio/video played on websites
Chrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Media History
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Media HistoryKey Investigation Points:
✓ Three primary tables:
playback,playbackSession,origin✓ URLs of media played
✓ Watch time duration
✓ Last video position (where user stopped)
✓ Last play time
⚠️ Unclear persistence when other history cleared
Phase 3: User Behaviour & Intent (Medium Priority)
Goal: Understand user searches, inputs, and interests
3.1 Auto-Complete Data
What it tells you: User searches, form inputs, typed URLs
Firefox Locations:
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\places.sqlite
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\formhistory.sqliteChrome/Edge Locations - By Data Type:
Search Terms:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\History
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\History
Table: keyword_search_termsWeb Form Data:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Web Data
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Web DataOmnibox (URL Bar) Entries:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Shortcuts
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\ShortcutsKeystroke-Level Recording:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Network Action Predictor
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Network Action Predictor
⚠️ Records typing letter-by-letterLogin Credentials:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Login Data
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Login DataKey Investigation Points:
✓ Shows user knowledge and intent
✓ Connects typed data to user account
✓ Search terms reveal investigation targets
✓ Network Action Predictor = keystroke logger
✓ Form data may include PII, credentials
3.2 Cookies
What it tells you: Session data, authentication tokens, tracking
Firefox Locations:
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\cookies.sqliteChrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Network\Cookies
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Network\CookiesKey Investigation Points:
✓ Confirms website visits
✓ Session authentication tokens
✓ User preferences and settings
✓ Tracking/advertising IDs
✓ Creation and expiration times
✓ May persist after history clearing
Phase 4: Configuration & Credentials (Low-Medium Priority)
Goal: Understand browser setup and account access
4.1 Stored Credentials
What it tells you: Saved usernames/passwords for websites
Firefox Locations:
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\logins.jsonChrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Login Data
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Login DataKey Investigation Points:
✓ Encrypted via Windows DPAPI
✓ Firefox: JSON format with hostname, URL, creation time, last used
✓ Chrome/Edge: SQLite with origin URL, username, date created/used
⚠️ Win 10/11 Microsoft accounts: DPAPI uses 44-char random password
✓ Metadata available even if passwords encrypted
✓ Best retrieved on live system with user logged in
✓ Shows accounts user accessed
4.2 Browser Preferences
What it tells you: Privacy settings, sync status, user engagement
Firefox Locations:
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\prefs.jsChrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Preferences
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\PreferencesKey Investigation Points:
✓ Firefox: Sync status, last sync time, artifacts synced
✓ Chrome/Edge: JSON format
per_host_zoom_levels- Sites frequently visitedmedia-engagement- Media interaction scoressite_engagement- Overall site interaction
✓ Edge:
account_info,clear_data_on_exit, sync settings✓ Privacy settings (anti-tracking, cookie policies)
✓ Sync can move artifacts across devices - check timestamps carefully
Phase 5: Supporting Artifacts (Low Priority)
5.1 Bookmarks
What it tells you: Sites of interest (not necessarily visited)
Firefox Locations:
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\places.sqlite
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\bookmarkbackups\bookmarks-<date>.jsonlz4Chrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Bookmarks
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Bookmarks
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Bookmarks.bak
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Bookmarks.msbakKey Investigation Points:
✓ JSON format (Firefox backups, all Chromium)
✓ Shows intent/interest, not necessarily activity
⚠️ Not all bookmarks are user-generated (defaults exist)
⚠️ Can bookmark without visiting
✓ Firefox: Multiple backup copies in bookmarkbackups folder
✓ Check .bak files for deleted bookmarks
5.2 Extensions & Add-ons
What it tells you: Added capabilities, potential malware vector
Firefox Locations:
# Firefox 26+
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\addons.json
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\extensions.json
# Firefox 4-25
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\extensions.sqlite
%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default\addons.sqliteChrome/Edge Locations:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\<Profile>\Extensions\<GUID>\<version>\
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\<Profile>\Extensions\<GUID>\<version>\Key Investigation Points:
✓ Firefox: Name, source, install time, last update, status
✓ Chrome/Edge: Each extension in GUID-named folder
Folder creation time = installation time
manifest.json= name, URL, permissions, version
✓ Check Preferences file for additional extension data
⚠️ Extensions can sync across devices (affects timestamp interpretation)
✓ Look for suspicious permissions (screen capture, keylogging, etc.)
✓ Cross-reference with known malicious extensions
Critical Investigation Tips
Multi-Profile Awareness
⚠️ ALWAYS check for multiple browser profiles:
- Default
- Profile 1, Profile 2, Profile 3...
- Guest profiles
- Work profiles (Edge)Timestamp Interpretation
✓ Cache: First cached vs. Last accessed
✓ Downloads: Start time vs. End time
✓ Cookies: Created vs. Expires vs. Last accessed
✓ History: Visit time (can have multiple per URL)
⚠️ Sync can alter timestamps - check sync settingsData Persistence Hierarchy
Most Persistent:
1. Cookies (often survive clearing)
2. Bookmarks
3. Stored Credentials
4. Extensions
5. Preferences
Least Persistent:
6. Auto-complete data
7. History
8. Cache
9. Session Restore (most volatile)Anti-Forensics Detection
Check for:
- Browser cleaning tools in history (CCleaner, BleachBit)
- Privacy-focused browsers (Tor, Brave private mode)
- Extensions for history clearing
- Preferences: clear_data_on_exit = true
- Gaps in history timelines
- Mismatched artifact timestampsLive System vs. Dead Disk
LIVE SYSTEM ADVANTAGES:
✓ Decrypt stored credentials (DPAPI with user logged in)
✓ Capture active sessions
✓ View current cache state
✓ Access locked SQLite databases
DEAD DISK ADVANTAGES:
✓ No data contamination
✓ Deleted artifact recovery
✓ Volume shadow copies
✓ Unallocated space carvingEssential DFIR Tools
SQLite Browsers
DB Browser for SQLite - View/query .sqlite files
SQLite Forensic Explorer - Deleted record recovery
Browser-Specific Tools
Hindsight - Chrome/Chromium timeline analysis
NirSoft BrowsingHistoryView - Multi-browser history
NirSoft ChromeCacheView - Cache file extraction
NirSoft MZCacheView - Firefox cache extraction
Firefox Forensics Toolkit
Comprehensive Suites
Magnet AXIOM - Full browser artifact processing
X-Ways Forensics - Browser artifact templates
Autopsy - Open-source browser modules
KAPE - Browser artifact collection targets
Manual Analysis
# Query SQLite from command line
sqlite3 History "SELECT url, title, last_visit_time FROM urls ORDER BY last_visit_time DESC LIMIT 100;"
# Convert Chrome timestamps (microseconds since 1601-01-01)
# Use online converters or custom scripts
# Decompress Firefox JSONLZ4
# Use mozlz4 Python library or LZ4 toolsQuick Command Reference
Identify Browser Profiles
# Chrome
dir "C:\Users\*\AppData\Local\Google\Chrome\User Data" -Directory
# Edge
dir "C:\Users\*\AppData\Local\Microsoft\Edge\User Data" -Directory
# Firefox
dir "C:\Users\*\AppData\Roaming\Mozilla\Firefox\Profiles" -DirectoryCollect All Browser Artifacts (PowerShell)
$destination = "C:\Cases\BrowserForensics"
$user = $env:USERNAME
# Chrome
Copy-Item "$env:LOCALAPPDATA\Google\Chrome\User Data" -Destination "$destination\Chrome" -Recurse
# Edge
Copy-Item "$env:LOCALAPPDATA\Microsoft\Edge\User Data" -Destination "$destination\Edge" -Recurse
# Firefox
Copy-Item "$env:APPDATA\Mozilla\Firefox\Profiles" -Destination "$destination\Firefox" -RecurseHash Browser Databases (Before Analysis)
Get-ChildItem -Path "C:\Cases\BrowserForensics" -Recurse -Include *.sqlite,*.db,*.json |
Get-FileHash -Algorithm SHA256 |
Export-Csv -Path "C:\Cases\BrowserHashes.csv"Investigation Checklist
Initial Response
[ ] Identify all user accounts on system
[ ] Identify all browsers installed
[ ] Document current date/time and timezone
[ ] Check if users currently logged in (live system)
[ ] Capture volatile session restore files FIRST
Data Collection
[ ] Collect all browser profiles (not just Default)
[ ] Hash all databases before opening
[ ] Document sync settings and last sync times
[ ] Check for browser backup/cleaning tools
[ ] Capture browser process memory (if live)
Analysis
[ ] Establish baseline timeline from history
[ ] Correlate downloads with filesystem artifacts
[ ] Cross-reference cookies with history
[ ] Check auto-complete for searches related to incident
[ ] Review extensions for malicious/suspicious capabilities
[ ] Analyse session restore for incident timeframe
[ ] Examine cache for evidence of viewed content
Reporting
[ ] Timeline of relevant browsing activity
[ ] Downloads tied to incident
[ ] Search terms indicating intent
[ ] Websites accessed related to case
[ ] Evidence of anti-forensics
[ ] Account credentials discovered
[ ] Screenshots/content from cache
File Path Environment Variables
%USERPROFILE% = C:\Users\<username>
%LOCALAPPDATA% = C:\Users\<username>\AppData\Local
%APPDATA% = C:\Users\<username>\AppData\RoamingNotes & Gotchas
Chrome Timestamp Format: Microseconds since January 1, 1601 (Windows FILETIME)
Firefox JSONLZ4: Requires special decompression (mozlz4 library)
DPAPI Encryption: Tied to user account; decrypt on live system while logged in
Profile Sync: Can move artifacts between devices - verify device origin
Private/Incognito: Leaves NO browser artifacts (check RAM, pagefile, network logs)
Extensions Storage: Some extensions have their own databases with user data
Service Workers: May cache data outside standard cache locations
Browser Version Matters: Artifact locations change between major versions
Chromium Variants: Brave, Opera, Vivaldi use similar structures to Chrome
Mobile Browsers: Different artifact locations (not covered here)
Last updated