Network & remote access
Browser artifacts (Chrome, Edge, Firefox)
Browser forensics cheat sheet: Chromium and Firefox profile files, History and places.sqlite tables, WebKit and PRTime timestamps, downloads, cookies, cache.
- Location
- C:\Users\<user>\AppData\Local\Google\Chrome\User Data\<Profile>\History
- Proves
- Which URLs a user visited, searched and downloaded from, and when
- Timestamps
- All UTC: Chromium WebKit time (microseconds since 1601), Firefox PRTime (microseconds since 1970), WebCacheV01.dat FILETIME
- Retention
- Chrome and Edge expire history after about 90 days; Firefox expires by database size; cleared rows often survive in free pages, WAL and VSS
- Access
- User profile files (admin for other users); databases locked while the browser runs: close it or copy via VSS
- Type
- Database
- Windows
- XPVista / 78 / 8.11011
- KAPE target
- WebBrowsersBrowserCache
- Velociraptor
- Windows.Triage.Targets:WebBrowsersBrowserCache
Tools
Compare all toolsWhat it is
Web browsers keep a per-user profile made of SQLite databases, JSON files and caches. Chromium-based browsers (Google Chrome, Microsoft Edge since 2020, Brave, Opera, Vivaldi) share the same file layout, so one method covers them all. Firefox uses its own set of SQLite databases. Together they are usually the richest record of what a user did online: pages visited, search terms, downloads, logins, form entries and open tabs.
Legacy Internet Explorer 10/11 and the original EdgeHTML-based Edge stored history in an ESE database, WebCacheV01.dat, which still turns up on older or upgraded systems.
Location
| Browser | Profile path | Key files |
|---|---|---|
| Chrome | %LOCALAPPDATA%\Google\Chrome\User Data\<Profile>\ (Default, Profile 1…) | History, Network\Cookies, Login Data, Web Data, Top Sites, Shortcuts, Sessions\, Preferences, Cache\Cache_Data\ |
| Edge (Chromium) | %LOCALAPPDATA%\Microsoft\Edge\User Data\<Profile>\ | Same files as Chrome, plus Collections\collectionsSQLite |
| Firefox | %APPDATA%\Mozilla\Firefox\Profiles\<random>.<name>\ | places.sqlite, cookies.sqlite, formhistory.sqlite, favicons.sqlite, sessionstore.jsonlz4, logins.json |
| Firefox cache | %LOCALAPPDATA%\Mozilla\Firefox\Profiles\<profile>\cache2\ | Cached HTTP objects |
| IE 10/11, legacy Edge | %LOCALAPPDATA%\Microsoft\Windows\WebCache\WebCacheV01.dat | ESE database (history, cookies, cache index) |
| XP-era IE | ...\Local Settings\History\History.IE5\index.dat | Binary index files |
Since Chrome 96 the cookie database lives in the Network subfolder. Firefox runs its databases in WAL mode, so copy places.sqlite-wal and -shm along with the main file (SQLite WAL); Chromium databases often have a -journal companion file.
What it proves
- Browsing: a URL was loaded in a given profile, how often, and whether the address was typed.
- Searches: search terms (Chromium
keyword_search_terms,Shortcuts; Firefoxmoz_inputhistoryand search URLs). - Downloads: source URL, referrer, local save path, size, start and end time and whether the file was opened (Chromium).
- Accounts and sessions: saved logins (user names; passwords are encrypted), cookies for web mail or cloud storage, open tabs at shutdown.
- It does not prove the user personally viewed the page: redirects, pop-ups, prefetching and synced history from another device all create entries. It also records nothing for private windows.
Key fields
| Source (table) | Useful columns |
|---|---|
Chromium History → urls | url, title, visit_count, typed_count, last_visit_time |
Chromium History → visits | visit_time, from_visit, transition (link, typed, reload…), visit_duration |
Chromium History → downloads (+ downloads_url_chains) | target_path, start_time, end_time, received_bytes, total_bytes, state, danger_type, opened, referrer, tab_url |
Chromium Network\Cookies → cookies | host_key, name, creation_utc, last_access_utc, expires_utc, encrypted_value |
Chromium Login Data → logins | origin_url, username_value, date_created, date_last_used |
Chromium Web Data → autofill | Form field names and values typed by the user |
Firefox places.sqlite → moz_places | url, title, visit_count, typed, last_visit_date |
Firefox places.sqlite → moz_historyvisits | visit_date, visit_type, from_visit |
Firefox places.sqlite → moz_annos | Download annotations (downloads/destinationFileURI, downloads/metaData) |
Firefox formhistory.sqlite → moz_formhistory | fieldname, value, timesUsed, firstUsed, lastUsed |
Timestamps
| Timestamp | Set when | Format | Pitfalls |
|---|---|---|---|
Chromium visit_time, last_visit_time, download start_time | Page load / download start | WebKit time: microseconds since 1601-01-01, UTC | Multiply by 10 to get a FILETIME; a synced visit from another device looks the same as a local one |
Chromium cookie creation_utc, last_access_utc | Cookie set / sent | WebKit time, UTC | Cookie values themselves are encrypted |
Firefox visit_date, last_visit_date, dateAdded | Visit / download | PRTime: microseconds since 1970-01-01, UTC | Not seconds: divide by 1,000,000 |
Firefox formhistory firstUsed, lastUsed | Form entry saved / reused | PRTime, UTC | Only shows first and last use |
WebCacheV01.dat container times | Access, modification, expiry | FILETIME, UTC | Needs an ESE-aware tool; the database is usually dirty when copied live |
All of these are stored in UTC; convert once, and check the time zone your tool applies.
Retention and clearing
- Chrome and Edge expire history older than about 90 days; Firefox expires old visits according to a size-based policy for
places.sqliterather than a fixed age. - "Clear browsing data" deletes rows, but pages often survive in SQLite free pages, the WAL or journal, the cache and volume shadow copies: carve them with SQLite-aware tools (file carving).
- Private/Incognito windows write no history to the profile. Traces can remain in memory, the pagefile, DNS cache, SRUM network byte counts and downloaded files themselves (with Zone.Identifier).
- Chrome 127 added app-bound encryption for cookies on Windows; together with DPAPI this makes cookie and password decryption offline much harder. Structural metadata (host, timestamps) stays readable.
Collection
- KAPE target:
WebBrowsers(compound: Chrome, EdgeChromium, Firefox, InternetExplorer and other browsers), plusBrowserCachefor cache folders - Velociraptor (
Windows.Triage.Targets):WebBrowsers,BrowserCache(or single browsers:Chrome,EdgeChromium,Firefox,InternetExplorer) - Built-in: close the browser or copy through a shadow copy, because open databases are locked and recent changes sit in the WAL.
robocopy "C:\Users\alice\AppData\Local\Google\Chrome\User Data\Default" E:\case\chrome History* Login* "Web Data*" Shortcuts* "Top Sites*" /COPY:DAT
robocopy "C:\Users\alice\AppData\Local\Google\Chrome\User Data\Default\Network" E:\case\chrome\Network Cookies* /COPY:DAT
robocopy C:\Users\alice\AppData\Roaming\Mozilla\Firefox\Profiles E:\case\firefox places.sqlite* cookies.sqlite* formhistory.sqlite* /S /COPY:DAT
esentutl.exe /y C:\Users\alice\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat /vss /d E:\case\WebCacheV01.dat
Parsing tools
- Hindsight (Ryan Benson, open source): full Chromium profile parser (history, downloads, cookies, autofill, preferences, cache, LevelDB) with timeline output.
- DB Browser for SQLite: open any history database directly; apply the WAL first by opening a working copy with the
-walbeside it. - BrowsingHistoryView (NirSoft, free): combined history from Chrome, Edge, Firefox and IE; ChromeCacheView and MozillaCacheView for caches.
- SQLECmd (Eric Zimmerman): maps for Chromium history, downloads, cookies, autofill, shortcuts and Firefox history, downloads, cookies, form history.
- Velociraptor:
Windows.Applications.Chrome.History,Windows.Applications.Edge.History,Windows.Applications.Firefox.History(being replaced by theGeneric.Forensic.SQLiteHunterextra). - Plaso: Chrome, Firefox and MSIE WebCache parsers feed browser events into a super timeline.
Investigation tips
- Match each download row to the file on disk and its Zone.Identifier stream (
HostUrl,ReferrerUrl) to prove the file came from that URL (Mark of the Web). - Follow the Chromium
from_visitchain andtransitiontype to tell a typed URL from a click or redirect, and to rebuild how the user reached a phishing page. - Look for cloud-storage and file-sharing uploads (drive, file transfer, paste sites) and correlate the window with SRUM bytes sent by the browser process.
- Check every profile folder, not just
Default, and every installed browser: Edge and Chrome often coexist. - Cross-check with LNK files and Jump Lists to show a downloaded document was later opened.
- If history is empty but cookies, cache or
Top Sitesare full, suspect selective clearing and look at the WAL, free pages and shadow copies.
Related artifacts
- Zone.Identifier (Mark of the Web)Zone.Identifier cheat sheet: Mark of the Web ADS, ZoneId 0 to 4, ReferrerUrl and HostUrl per browser, loss and bypass cases, and collection from the $MFT.
- SRUM (System Resource Usage Monitor)SRUM cheat sheet: SRUDB.dat tables and GUIDs, per-app network bytes and CPU time, hourly UTC records, 30 to 60 day retention and ESE repair steps.
- LNK shortcut filesLNK cheat sheet: Recent folder shortcuts, first and last open times, embedded target timestamps, volume serial, network share and TrackerDataBlock MAC.
- Jump ListsJump Lists cheat sheet: AutomaticDestinations and CustomDestinations, AppIDs, DestList entries with last access, access count and pin status, and JLECmd.
- Windows Timeline (ActivitiesCache.db)Windows Timeline cheat sheet: ActivitiesCache.db and WAL, Activity tables, ActivityType values, focus duration, clipboard, 30-day expiry and Windows 11 status.
- Network profiles (NetworkList)NetworkList cheat sheet: network profiles, SSIDs, gateway MAC addresses, first and last connection times (local time), WLAN profile files and WLAN events.
- DPAPI and Credential ManagerDPAPI and Credential Manager cheat sheet: master keys, Windows Vault, what secrets they hold, offline decryption requirements and credential-theft traces.
Glossary terms
- SQLite write-ahead log (-wal)The -wal sidecar file where SQLite writes recent changes before merging them into the main database; often holds the newest evidence.
- ESE database (Extensible Storage Engine)Microsoft's embedded transactional database format behind SRUM, WebCache, the Windows Search index and the BITS queue, often found dirty.
- UTC vs local time in Windows artifactsWhy some Windows artifacts record UTC and others local time, and how the TimeZoneInformation registry key helps normalize a forensic timeline.
- Mark of the Web (MOTW)The Zone.Identifier alternate data stream Windows adds to downloaded files, recording the security zone and often the source URL.
- File carvingRecovering files from raw disk data using content signatures such as headers and footers, without relying on file system metadata.
Guides
- Building a Super Timeline with PlasoBuild and filter a Windows super timeline with Plaso: log2timeline, psteal and psort flags, time zones, MACB, Timeline Explorer, EZ Tools CSVs and pivoting.
- Credential Access Forensics: LSASS, DCSync and KerberoastingInvestigate Windows credential theft: LSASS dumps, SAM and NTDS.dit extraction, DCSync, DPAPI, Kerberoasting and AS-REP roasting, with event IDs and ATT&CK.
- Browser Forensics on Windows: Chrome, Edge and FirefoxInvestigate Chrome, Edge and Firefox on Windows: History, downloads, cookies, sessions, extensions, WebKit and PRTime timestamps, WAL and deleted records.