
Actively looking roles in cybersecurity. If you have a reference or a job opportunity, your support would mean the world to me!
Search Results
417 results found with an empty search
- Investigating Firefox Browser Forensics: A Forensic Guide/Browser analysis Book
Firefox stores extensive user activity data, making it possible to determine browsing history, downloads, bookmarks, and even synchronized data. This guide will walk you through a detailed forensic analysis of Firefox, covering history tracking, filling in evidence gaps, and deep-dive analysis techniques. 1. Determining Sites Visited Review History Data & Search Keywords Firefox stores browsing history in the places.sqlite database, primarily in the moz_places and moz_historyvisits tables . Analysts can extract and review: URLs visited Associated timestamps visit_type (e.g., direct navigation, link click, bookmark access, etc.) Search keywords stored in the browser’s history Analyze VisitType for Typed URLs Each visit in the moz_historyvisits table is categorized by a visit_type field . Typed URLs (where a user manually enters a URL) typically have a visit_type value of 1. Identifying these helps differentiate intentional browsing from passive link clicks. Audit prefs.js for Privacy Settings The prefs.js file contains browser configuration settings, including: Whether the user has enabled history synchronization across devices. Modifications in security settings, such as disabled tracking protection or script execution permissions. Check for Evidence of Synchronization Firefox Sync can transfer browsing data across multiple devices. Identifying whether sync is enabled is critical. Clues include: Entries with missing local artifacts (e.g., missing favicon, cache, or cookies). Last 30 days of history being available (as per Firefox Sync’s default settings). Parse Download History Download records are found in the moz_annos table within places.sqlite . Although downloads are not directly synchronized, references to downloaded files (visit_type = 7 ) may exist in synced history data. Audit Bookmarks Bookmarks are stored in places.sqlite (moz_bookmarks table). Analyzing bookmarks can reveal long-term user interests and frequently accessed sites. Look for Other Profiles Firefox allows multiple user profiles, each storing independent browser data. Investigating profiles.ini in the AppData\Roaming\Mozilla\Firefox directory helps locate multiple user profiles, expanding the evidence scope. ------------------------------------------------------------------------------------------------------------- 2. Filling in Evidence Gaps Audit Cache Domains & Specific Files The Firefox cache (cache2 folder) stores images, scripts, and other web resources . Cache analysis helps: Recover deleted browsing activity. Identify sites visited even if history is cleared. Link user activity with timestamps. Review Cookie Domains Cookies (cookies.sqlite) store authentication tokens, user preferences, and tracking data . They provide insight into user interactions, even if history is deleted. Analyze Session Restore Files Firefox automatically saves session data in recovery.jsonlz4 and previous.jsonlz4 under the sessionstore-backups folder. These files help: Identify tabs open before a crash or shutdown. Recover browsing sessions even after history is cleared. Analyze Form History Entries User-entered form data is stored in formhistory.sqlite. It contains: Search bar entries. Autofill form inputs (names, addresses, emails, etc.). Review Installed Browser Extensions Add-ons can introduce security vulnerabilities, track user activity, or execute scripts. Investigating extensions.json and the extensions folder helps: Identify malicious extensions. Recover deleted add-ons. Understand potential user modifications to browser behavior. ------------------------------------------------------------------------------------------------------------- 3. Deep Dive Analysis Search Web Storage Firefox uses IndexedDB (storage/default) and webappsstore.sqlite for web applications' local storage. Investigating these can reveal: User credentials (in some cases). Application-specific browsing behavior. Persistent tracking mechanisms. Review Memory-Based Artifacts Memory forensics can uncover transient browser artifacts, including: Private browsing session data. Unencrypted credentials or session tokens. Carve Deleted SQLite Entries Firefox’s SQLite databases do not immediately purge deleted records . Using forensic tools like sqlite3 or Undark can help recover deleted: Browsing history. Cookies. Bookmarks. Review Firefox Jumplist Entries Windows stores Firefox launch and recent file access information in Jumplists (.automaticDestinations-ms and .customDestinations-ms). Analyzing these provides: Evidence of Firefox execution. Recently accessed sites and profiles. Targeted Analysis Using Volume Shadow Copies Recovering old versions of Firefox’s databases using Windows Volume Shadow Copies (vssadmin list shadows) enables: Timeline reconstruction of browser activity. Recovery of deleted history, bookmarks, and settings. ------------------------------------------------------------------------------------------------------------- Browser Artifacts Firefox 3+ Format Internet History places.sqlite SQLite Cache CACHE N/A Cookies / Web Storage cookies.sqlite / storage / webappstore.sqlite SQLite Bookmarks places.sqlite SQLite Download History places.sqlite SQLite Auto-Complete/ Form History formhistory.sqlite / places.sqlite SQLite Installed Extensions extensions.json JSON Session Restore sessionstore.jsonlz4 / sessionstore-backups JSON Preferences / Sync prefs.js JSON ------------------------------------------------------------------------------------------------------------- Conclusion Firefox forensic analysis requires a multi-layered approach . By correlating history, cache, cookies, session data, and memory artifacts, investigators can piece together a user’s browsing activity. Tools for Firefox Forensics: SQLite Browsers (DB Browser for SQLite, Autopsy) Plaso (log2timeline) for timeline creation MozillaCacheView for cache analysis Volatility & Rekall for memory forensics ShadowExplorer for Volume Shadow Copy analysis By following this structured forensic approach, investigators can extract meaningful evidence, even in cases where users attempt to erase their tracks. 🚀 -------------------------------------------Dean------------------------------------------------
- Firefox Privacy Settings and Firefox Extensions as well as synchronization: A Forensic Deep Dive
Mozilla Firefox, one of the most widely used web browsers, offers users extensive customization options, privacy controls, and synchronization capabilities. As for forensic perspective, this will generate crucial artifacts that can provide valuable insights during investigations. -------------------------------------------------------------------------------------------------------- Firefox Privacy Settings & Their Impact on Artifacts Firefox provides users with extensive privacy controls through the about:preferences . These settings influence how browsing data is stored and cleared, impacting the forensic artifacts left behind. Browsing and Download History : Deletes stored history, auto-complete suggestions, and downloads from places.sqlite . Active Logins : Removes all session cookies from memory. Form and Search History : Clears auto-fill data from formhistory.sqlite . Cookies : Deletes saved cookies, including Flash cookies, from cookies.sqlite . Cache : Clears the browser cache directory. Site Preferences : Removes site-specific settings stored in prefs.js . Offline Website Data : Deletes cached offline website data. User preferences regarding privacy settings are saved in the prefs.js file within the Firefox profile folder, which is a crucial file for forensic examination. -------------------------------------------------------------------------------------------------------- Firefox Extensions & Add-ons: A Digital Fingerprint Firefox’s extension ecosystem enables users to enhance their browsing experience , but it also leaves behind digital footprints. Cookie Manipulation Tools (e.g., Cookie Editor) : Could indicate potential tampering with web authentication. Privacy-focused Extensions (e.g., Tor Control) : Suggests possible anonymity-seeking behavior. Where is Extension Data Stored? Modern Versions (Post Firefox 25) : Extensions are now stored in extensions.json , which contains details like: Extension name Installation source Install/update timestamps (PRTime format) Whether the extension was enabled at the time of evidence acquisition Older Versions (Firefox 4-24) : Extensions were previously managed in extensions.sqlite and addons.sqlite. ------------------------------------------------------------------------------------------------------------ Firefox Sync: Synchronization Across Devices Firefox Sync is a powerful feature that allows users to synchronize browsing data across multiple devices, including bookmarks, passwords, history, open tabs, and even installed extensions. How Sync Works Local data is encrypted and uploaded to Mozilla’s sync server. Other devices signed into the same Firefox account can pull and decrypt this data . The sync frequency varies but typically occurs every 10 minutes or whenever significant changes happen. Users can force an immediate sync through the browser menu. How to Identify Sync Artifacts? Investigators can determine if Firefox Sync is enabled by examining the prefs.js file . Look for entries beginning with services.sync ., including: services.sync.username → Stores the user’s Firefox account email. services.sync.engine. (addons, bookmarks, history, passwords, prefs, tabs) * → Indicates what data is being synchronized. signedinuser.json → Contains sync-related user details. Some additional Sync: services.sync.engine.addons services.sync.engine.bookmarks services.sync.engine.history services.sync.engine.passwords services.sync.engine.prefs services.sync.engine tabs Additionally, client.devices logs the number of devices linked to the Firefox account, categorized by desktop and mobile platforms. Can Sync Data Be Forensically Retrieved? While synced data is encrypted before being sent to Mozilla’s servers, you can still retrieve locally stored data from the browser’s profile folder. For organizations looking to disable sync, settings can be enforced through the Mozilla.cfg configuration file. What Gets Synced? Browsing History: The last 30 days of history is synced upon initial sync. Bookmarks: Saved bookmarks are replicated across devices. Preferences (prefs.js): Customized browser settings are retained. Form History: Includes autofill data and saved entries. Add-ons & Extensions: Installed add-ons and their settings. Logins & Passwords: Saved credentials. Open Tabs: Active browsing sessions are accessible from any linked device. What Doesn't Get Synced? Download History: Although downloads are not explicitly synced, evidence of downloads (visit_type 7 entries) is stored in the moz_historyvisits table. Cache Data: Locally stored site content remains device-specific. Favicons: Icons representing visited sites are not transferred. Webappstore Databases: Any stored web application data remains local. ------------------------------------------------------------------------------------------------------------- Distinguishing Local vs. Synced Data Firefox does not label whether data originated from a local browsing session or was s ynced from another device , analysts need to look for patterns and anomalies. Here are a few methods to identify synced data: Check visit_type in moz_historyvisits Table: If an entry has a visit_type of 1 (link-followed visit) , the from_visit field should reference a non-zero place_id, indicating the originating page. Look for Missing Data in Certain Tables: Description & preview_image_url Fields: These fields should contain data in locally visited entries but will often be null for synced ones. Favicons Database (favicons.sqlite): If a site is visited locally, its favicon should be stored. A missing favicon may indicate a synced entry. Webappstore.sqlite Database: Synced entries typically lack corresponding data here. Cache2 Folder: If no cached files exist for a site, it might have been synced rather than visited directly. Check Cookies: Synced sites only store a small subset of cookies, whereas locally visited sites tend to store a large number of cookies. Download History Verification: If an entry in moz_historyvisits has a visit_type of 7 (download indication) but lacks a corresponding entry in moz_annos , the download was likely performed on another device. Although exceptions exist, multiple inconsistencies strongly suggest that an entry was synced rather than accessed directly on the device under analysis. ------------------------------------------------------------------------------------------------------------- Identifying Synced Form History Unlike browsing history, form history (autofill data) is nearly impossible to differentiate between local and synced entries . All form history records are stored in formhistory.sqlite , and timestamps for synced entries reflect the synchronization time rather than the original data entry time. Without access to all synced devices, separating local and remote form history entries is extremely difficult. The Impact of Clearing Data When a user manually clears browsing data in Firefox, the following artifacts are removed: places.sqlite (browsing history & bookmarks) formhistory.sqlite (saved form entries) cookies.sqlite (stored cookies) Cache & session-store folders (session data) favicons.sqlite & webappstore.sqlite (site icons & web storage data) Sync Behavior for Deleted Data Clearing data on one device does not erase it from other synced devices. Forensic analysts should always try to obtain all linked devices, as important evidence might still exist elsewhere. However, there are two exceptions where deletion does sync across devices: Delete Page: Removes a specific site’s history from both the local and synced databases. Forget About This Site: Wipes all traces of a site from both the local system and synced devices. Conclusion Firefox’s sync capabilities may obscure some evidence, but with the right techniques, a skilled investigator can still piece together the full picture ---------------------------------------------Dean----------------------------------------
- Browser Credential Storage and Forensic Password Recovery
Before moving ahead very important topic we have to discussed is about credential storage, Lets talk in this article ---------------------------------------------------------------------------------------------------- Web browsers store credentials and other sensitive data for user convenience , but this also introduces security risks. Understanding how browsers manage credential storage, encryption mechanisms like DPAPI, and forensic recovery techniques is crucial for security professionals and incident responders. ---------------------------------------------------------------------------------------------------------- Lets talk first how Chromium-Based and Firefox approach to Credential Storage How Chromium-Based Browsers Store Credentials Chromium-based browsers, including Google Chrome, Microsoft Edge, and Brave, use an SQLite database named Login Data to store saved credentials This database contains a logins table that records: Website URL (origin_url and action_url) Username and encrypted password Date of creation and last usage Interestingly, even when users select “Never” in the save password dialog, the browser still logs this decision! These entries appear in the database with blacklisted_by_user = 1, meaning you can still retrieve information about sites the user visited but refused to save passwords for. If the user simply closes the save password prompt without selecting an option, an entry is logged in the stats table, including: origin_domain (Website URL) username_value (Entered username) dismissal_count (Number of times the prompt was closed) update_time (Last dismissal timestamp) Key Takeaways for Forensic Analysis Even unsaved credentials leave traces in the database. Synchronization across devices means credentials from another device might appear in local browser files. Firefox’s Approach to Credential Storage Firefox takes a slightly different approach by using a J SON-formatted file called logins.json. This file stores: Website hostname and form submission URL encryptedUsername and encryptedPassword Timestamps for when credentials were created, last used, and changed Timestamps are stored in Unix epoch milliseconds , allowing you to track user behavior over time. ------------------------------------------------------------------------------------------------------------ Now lets talk about if in case you have windows vault installed Windows provides its own credential management system called Windows Vault (or Credential Manager), which is used to store passwords for: Internet Explorer Remote Desktop sessions Network shares Various Windows applications Credential data is stored in the following directories: %USERPROFILE%\AppData\Local\Microsoft\Vault\{GUID} %USERPROFILE%\AppData\Roaming\Microsoft\Vault\{GUID} \Windows\System32\config\systemprofile\AppData\Local\Vault\{GUID} \Windows\System32\config\systemprofile\AppData\Roaming\Vault\{GUID} Each credential is stored as a .vcrd file, while the .vpol file contains the encryption keys. ------------------------------------------------------------------------------------------------------------ Firefox Session Restore: A Hidden Treasure Trove Firefox introduced Session Restore long before other browsers, allowing users to recover their browsing sessions after crashes or updates . This feature logs a wealth of data, including: All open tabs and windows Browser window dimensions and positions Scroll position for each tab Complete tab history Cookies and form data Details of failed downloads Where is This Data Stored? The session restore data is kept in sessionstore.jsonlz4 , a compressed JSON file in the Firefox profile folder. Interestingly, this file is deleted upon normal browser exit , but you can still recover multiple historical copies due to the lack of immediate overwriting. Additional backup files exist in the sessionstore-backups folder: recovery.jsonlz4 – Live session tab data recovery.baklz4 – Backup of recovery.jsonlz4 previous.jsonlz4 – Data from the previous browsing session upgrade.jsonlz4- – Session details from the last Firefox update cycle Older Firefox versions used uncompressed files, meaning you may find files like sessionstore.js, recovery.js, and previous.js in legacy cases. ------------------------- Now if you look there are new compression technique used by Firefox Any file with name extended to is seems to be compressed json. lz4 json.mozlz4 baklz4 I know, I know you will say Dean that how can we decompress it so we can get details worry not i am here for you Use tool dejsonlz4.v1.1 command: C:\Users\Akash's\Downloads\dejsonlz4.v1.1\bin-win32>dejsonlz4.exe "C:\Users\Akash's\AppData\Roaming\Mozilla\Firefox\Profiles\8teby4gw.default-release\sessionstore-backups\previous.jsonlz4" "C:\Users\Akash's\Downloads\sessionstore.json" ------------------------------------------------------------------------------------------------------------ Disabling Session Restore: Can Users Cover Their Tracks? While users can disable Session Restore , you can verify these settings in prefs.js if modifications exist: Firefox 3 and below: browser.sessionstore.enabled = false Firefox 3.5+: browser.sessionstore.max_tabs_undo = 0 and browser.sessionstore.max_windows_undo = 0 ------------------------------------------------------------------------------------------------------------ Extracting and Decrypting Browser Passwords Forensic Analysis Tools Tools help in extracting and decrypting browser passwords: Firefox: Use WebBrowserPassView Chome: Use ChromePass ------------------------------------------------------------------------------------------------------------ Now Windows use encryption method called DPAPI The Data Protection API (DPAPI) is a Windows encryption mechanism that secures stored passwords. Chrome and Edge rely on DPAPI to encrypt credentials. DPAPI encryption is tied to the user’s Windows login credentials . If an attacker gains access to a user’s Windows profile, they can potentially decrypt stored passwords. DPAPI Master Key Extraction The DPAPI master key is stored in: C:\Users\\AppData\Roaming\Microsoft\Protect\\ ------------------------------------------------------------------------------------------------------------ Final Thoughts: What This Means for Security & Forensics From a security perspective, browser credential storage is a double-edged sword . While it improves convenience for users, it also creates a goldmine of forensic evidence . Investigators can: Extract saved usernames and metadata even if passwords are encrypted. Recover browsing history even after deletion via session restore files. Identify websites where users attempted to log in but chose not to save passwords. How Users Can Protect Themselves Use a password manager instead of browser-stored credentials. Regularly clear session restore data and disable unnecessary features. Turn on full-disk encryption to protect local credential databases. Avoid syncing passwords across devices if security is a concern. For forensic analysts, understanding where browsers store credentials and session data is key to uncovering crucial evidence in investigations. With browsers continuously evolving, staying up-to-date with storage mechanisms is essential for both investigators and security-conscious users. ------------------------------------------Dean---------------------------------------
- Firefox Cookies/ Download History/ Auto-Complete Data : A Forensic Perspective
Web browsers are treasure troves of digital artifacts, often holding crucial evidence in forensic investigations. Among them, Mozilla Firefox stands out with its rich history storage, cookie management, and download tracking. ------------------------------------------------------------------------------------------------------------- Why Firefox Artifacts Matter in Investigations Each browser artifact stores different aspects of a user's online activity. There’s no single file that contains everything an investigator needs. For example, while the history file shows visited websites, cookies can reveal additional sites, login sessions, and even data from deleted history records. Firefox collects and stores these digital footprints in structured SQLite databases, making forensic analysis more streamlined yet requiring proper querying techniques. ------------------------------------------------------------------------------------------------------------- Tracking Cookies: The Hidden Trail of User Activity Cookies are small files websites use to store session details, login tokens, and user preferences. Unlike history files, cookies often persist longer and provide information even after users delete their browsing history. Firefox Cookie Storage Firefox consolidates all cookies into a single SQLite database named cookies.sqlite . This database stores: Cookie name – Identifies the specific cookie Domain/Host – The website that created the cookie Value – The data stored within the cookie Creation and last accessed times – Useful for timeline analysis Analyzing Cookies with NirSoft MZCookiesView One of the easiest ways to examine Firefox cookies is by using MZCookiesView, a free tool by NirSoft. Investigators can: Load the cookies.sqlite file Sort and filter cookies by domain, value, or timestamp View detailed cookie properties by right-clicking any entry Cookies can reveal previously accessed sites, user preferences, and authentication tokens that might still be valid. ------------------------------------------------------------------------------------------------------------- Question you must asked while investigating cookies: Investigative Questions cookies.sqlite What website domain issued the cookie? host What is the cookie name? name Should the cookie only be sent in encrypted sessions? isSecure What values/preferences were stored? value When was the cookie created? creationTime When was the cookie/site last accessed? lastAccessed ------------------------------------------------------------------------------------------------------------- Firefox Download History: What Files Were Accessed? Firefox maintains a detailed log of every file downloaded by a user. This artifact is crucial for tracking malicious activities or identifying unauthorized data transfers. Where is Download History Stored? Before Firefox 26 – Downloads were stored in a dedicated database, downloads.sqlite. (Things to look for table below) Investigative Questions downloads.sqlite What was the file name? name What was the file type? mimeType Where was the file downloaded from? source What was the referring page? referrer Where was the file saved? target What application was used to open the file? preferredApplication When did the download start? startTime When did the download end? endTime How large was the download? maxBytes Was the download successful? state Firefox 26 and later – Download history was merged into places.sqlite , making investigations more complex. (Things to look for table below) Investigative Questions places.sqlite Table: moz_annos What was the filename? place_id (ref. moz_places) Where was the file downloaded from? place_id (ref. moz_places) Where was the file saved? content (file:///) When did the download end? content (endTime) How large was the download? content (fileSize) Was the download successful? content (state) Extracting Download Information To analyze download history in places.sqlite, forensic investigators should focus on: moz_annos Table – Stores metadata, including download location, status, and timestamps (in PRTime format use dcode to parse the time). moz_places Table – Holds URLs associated with downloads (identified by place_id). Co-relation: A download is marked successful with state = 1. If a user cancels or encounters an error, different state values are assigned: 2 = Error occurred, download aborted 3 = Download canceled 4 = Download paused Identifying Default and Last Used Download Folders Firefox records the user's preferred download directory in the prefs.js file within the profile folder. The settings include: browser.download.dir – The default download folder. browser.download.lastDir – The last folder used for downloads. The default location is typically %UserProfile%\Downloads\, but users often change it. Easier way below Using NirSoft FirefoxDownloadsView The FirefoxDownloadsView tool allows easy examination of download history, showing filenames, source URLs, timestamps, and file locations. ------------------------------------------------------------------------------------------------------------- Auto-Complete Data: What Was Typed? Auto-complete data provides a fascinating insight into what users have typed into forms, search bars, and login fields. This includes: Email addresses Usernames Search queries Personal details like addresses and phone numbers Firefox Auto-Complete Storage Firefox stores auto-complete data in formhistory.sqlite, logging: Field name (e.g., email, username) Value entered Number of times used First and last used timestamps This artifact is particularly useful when tracking user intent and potential account credentials. However, since auto-filled data isn’t tied to specific websites, timestamps must be correlated with browsing history for better accuracy. Converting Firefox Timestamps Firefox timestamps use PRTime format, which represents time in microseconds since January 1, 197 0. To convert them into a readable format, forensic tools like DCode can be used. Investigative Questions formhistory.sqlite What type of form was the data entered into? fieldname What was the data typed by the user? value How many times has the value been used? timesUsed When was the data first typed in? firstUsed When is the last time the data was used? lastUsed ----------------------------------------------------------------------------------------------------------- Conclusion: Piecing the Puzzle Together Forensic analysis is all about correlation—no single artifact tells the full story. Combining multiple artifacts and timeline analysis is key to uncovering the truth. -----------------------------------------------Dean-----------------------------------------------------
- Firefox Cache: A Forensic Perspective include parsing
Firefox cache can be a goldmine of evidence. T his cache stores web pages, images, and files locally to improve browsing speed, providing forensic investigators with a window into the user’s browsing history and downloaded content. --------------------------------------------------------------------------------------------------------- Why Firefox Cache Matters in Forensics The cache isn’t just a list of visited websites —it contains actual content files retrieved during web sessions. This means an examiner can recover cached web pages, media files, and other internet artifacts even if the user tries to delete their history. Additionally, metadata stored in the cache provides timestamps, helping to establish a timeline of online activities. --------------------------------------------------------------------------------------------------------- Cache Storage and Size Variations Firefox cache sizes vary depending on the browser version. Earlier versions (pre-4.0) had a fixed cache size of 50MB, while modern versions allow dynamic cache sizing based on available system resources, sometimes reaching up to 1GB. Investigators can check cache size configurations in the prefs.js file by looking for the browser.cache.disk.capacity value. However, this setting only appears if the user has manually modified the default values. C:\Users\Akash's\AppData\Roaming\Mozilla\Firefox\Profiles\8teby4gw.default-release To manually inspect cache settings, type about:config in the Firefox address bar. --------------------------------------------------------------------------------------------------------- Cache Storage Locations The cache storage structure has changed significantly over time. Understanding these changes is crucial for forensic investigations. For older systems like Windows XP, the location was: %UserProfile%\Local Settings\Application Data\Mozilla\Firefox\Profiles\.default\Cache The cache structure in these versions was complex , requiring specialized tools to parse. The cache files were divided into different components: Cache Map : The index file that tracks stored cache entries. Cache Block Files (CACHE_001, CACHE_002, etc.) : Containers storing multiple cached files and metadata. Cache Data Files : Randomly named files created when content was too large for Cache Block files. Firefox Versions Before 32 Before Firefox 32, the cache was stored in: %UserProfile%\AppData\Local\Mozilla\Firefox\Profiles\.default\Cache Firefox 32 and Later Mozilla introduced a new, simplified cache structure in Firefox 32 for improved speed and flexibility . The cache is now stored in: %UserProfile%\AppData\Local\Mozilla\Firefox\Profiles\.default\cache2\entries Each cached file is stored individually, making it easier for forensic analysis. Unlike older versions, no additional database is needed to map cache entries. Metadata is directly appended to each cached file. Key Metadata in Firefox Cache Forensic investigators can extract the following details from Firefox cache: Attribute Description URL Identifies the website the cached content originates from. Fetch Count Indicates how often a cached file has been accessed. Missing Status Shows whether the cached file still exists or has been purged due to cache control settings. Filename The original name of the downloaded content. Content Type Specifies the type of file stored (HTML, JavaScript, images, etc.). File Size Reveals the size of the cached content. Last Modified Time Records when the file was last updated in the cache. Last Fetched Time Shows the last time the cached content was accessed, indicating recent visits. Response Header Stores the full HTTP header, which includes encoding details, cache control settings, server information, and timestamp. Analyzing Firefox Cache Files Investigators can manually examine Firefox cache by navigating to the cache directory and reviewing stored files. Since metadata is appended to each cached file in modern versions, tools like strings or hex editors can extract useful details. However, automated tools like MozillaCacheView and FTK Imager streamline the process by presenting a structured view of cache entries. ----------------------------------------------------------------------------------------------------------- Tools for parsing and analyzing cache MZCacheView: A User-Friendly Solution for Cache Analysis One of the most effective tools for parsing Firefox cache files is MZCacheView , previously known as MozillaCacheView. This lightweight utility from NirSoft extracts and presents cache data in an easy-to-read format. Column important to analyses in MZCacheview: Attribute Description File name The name of the downloaded file. Content type Indicates the file format (e.g., HTML, PNG, JSON). URL The specific web address the file originated from. File size The size of the stored file. Fetch count Number of times the file has been retrieved from the cache. Last modified The timestamp indicating when the file was cached. Last fetched The most recent time the file was accessed. Expiration time The server-defined expiry date for the cached file. Encoding type Specifies whether the content was compressed (e.g., Gzip). Server details Metadata from the HTTP response, including server name, last modified date, ETag, and response code. Key Features of MZCacheView: ✔ Displays all cached files with metadata. ✔ Provides filtering options for targeted analysis. ✔ Exports selected files for further investigation. ✔ Helps reconstruct browsing activity. Using MZCacheView for Forensics: Close Firefox: Since cache files are locked when Firefox is running, ensure the browser is closed before analysis. Launch MZCacheView: Open the tool and let it automatically detect and list cache entries. Filter and analyze: Sort results based on file type, URL, or modification time. Export relevant files: Extract necessary cache entries for further review. By using this tool, analysts can piece together a user's web activity, including visited sites, downloaded files, and accessed resources. ----------------------------------------------------------------------------------------------------------- Rebuilding Webpages from Cache: A Hidden Goldmine Beyond just extracting cached files, some forensic tools can reconstruct entire webpages from stored data . This capability allows investigators to see exactly what a user saw at a given time , even if the original webpage has changed or been deleted. Popular Tools for Webpage Reconstruction: ✔ Foxton Browser History Examiner - Offers in-depth cache analysis and webpage rebuilding. ✔ AXIOM - A commercial tool used for advanced browser forensics. ✔ NetAnalysis - Specializes in browser history and cache reconstruction. By isolating cached elements like HTML, CSS, and JavaScript, these tools recreate snapshots of previously visited sites. This is especially useful in cases where a suspect accessed a webpage that no longer exists. ----------------------------------------------------------------------------------------------------------- Final Thoughts Whether using MZCacheView for a user-friendly approach automation, these tools help forensic analysts piece together digital trails effectively. With proper techniques and best practices, investigators can turn browser cache data into compelling evidence in digital investigations. ---------------------------------------------Dean------------------------------------------------------
- Firefox Browser History for Forensic Investigations
When investigating digital evidence, a browser’s history can be a goldmine of information. Firefox, like other modern browsers, maintains extensive records of user activity, storing this data in the places.sqlite database . This database can provide critical insights into a user’s online behavior, revealing visited websites, timestamps, and other relevant metadata. ----------------------------------------------------------------------------------------------------------- Understanding Firefox History Storage Firefox originally stored browsing history for a fixed 90-day period, but since version 4, the duration is dynamically determined based on system resources. T his means history data can span months or even years, sometimes reaching hundreds of thousands of entries. Key Tables in places.sqlite To extract meaningful information, investigators must focus on two primary tables: moz_places : Contains URLs, visit counts, titles, and metadata related to web visits. moz_historyvisits : Stores detailed records of each visit, including timestamps, referrers, and visit types. ----------------------------------------------------------------------------------------------------------- Extracting Useful Information Identifying Frequently Visited Sites The v isit_count column in moz_places helps determine which sites a user visited most frequently. Pages with a visit count greater than one suggest intentional and repeated access. Creating a Timeline of Activity Each visit to a webpage is recorded in moz_historyvisits, and the visit_date field provides timestamps. By sorting entries by date, analysts can track user activity over specific time frames. Determining User Intent The typed field in moz_places indicates if the URL was manually entered. The f rom_visit attribute reveals the previous page that led to the current visit. The visit_type field categorizes how a page was accessed. ------------------------------------------------------------------------------------------------------------- Co-relating data from moz-place to moz_history visit to get an timestamp ------------------------------------------------------------------------------------------------------------ Decoding the visit_type Field The visit_type field in moz_historyvisits provides insight into why a URL was recorded: Type Description 1 User followed a link, and the page was loaded 2 User typed the URL to get to the page (with or without auto-complete) 3 User followed a bookmark to get to the page 4 Indicates some inner content was loaded, such as images and iframes 5 Page accessed due to a permanent redirect (HTTP 301 status code) 6 Page accessed due to a temporary redirect (HTTP 302 status code) 7 File indicated by history was downloaded (non-HTML content) 8 User followed a link that loaded a page in a frame 9 Page was refreshed/reloaded ------------------------------------------------------------------------------------------------------------ Handling PRTime Timestamps Firefox stores timestamps in PRTime format (microseconds since January 1, 1970). To convert a value like 1736802810848000 to a readable format, analysts can use tools like SQLite queries, Python scripts, or online converters. or Using NirSoft BrowsingHistoryView for Analysis While manually parsing the places.sqlite database provides deep insights, tools like NirSoft’s BrowsingHistoryView streamline the process: Mount Evidence : Point the tool to the browser profile stored in forensic images or live systems. Review Data : Filter and analyze history entries from multiple browsers in one interface. Export Findings : Save reports in text or HTML formats for documentation. ------------------------------------------------------------------------------------------------------------ Final Thoughts Firefox’s history database is an invaluable asset for digital investigations. By leveraging both manual database queries and forensic tools, analysts can reconstruct online activity with precision . Understanding how this data is structured and retrieved allows for effective forensic analysis, ultimately helping to establish patterns, verify timelines, and uncover digital evidence. --------------------------------------------Dean-----------------------------------------------
- Firefox Browser Forensics Series: Lets Start
I Personally use Mozilla Firefox with increased security Mozilla Firefox is a widely used open-source browser backed by the Mozilla Foundation, known for its strong emphasis on privacy and customizability. Unlike other browsers, Firefox is designed with transparency in mind, making it a favorite among security-conscious users and forensic analysts alike . ----------------------------------------------------------------------------------------------------------- Understanding Firefox’s File Structure Firefox organizes user data into a profile-based structure. Each user profile contains all the necessary browser artifacts, including history, cache, cookies, bookmarks, and more. On Windows systems, these profiles are stored in: C:\Users\\AppData\Roaming\Mozilla\Firefox\Profiles\.default %UserProfile%\Local Settings\Application Data\Mozilla\Firefox\Profiles\.default\Cache The < random text>.default folder is unique to each installation and user profile . If multiple profiles exist, investigators must check each profile folder separately. Locating Key Artifacts File Name Description places.sqlite History – Bookmarks – Auto-complete – Downloads formhistory.sqlite Auto complete form data cookies.sqlite Cookies webappsstore.sqlite Web Storage extensions.json Firefox add-ons ------------------------------------------------------------------------------------------------------------- Evolution of Firefox Data Storage Over the years, Firefox has refined its data storage mechanisms. Earlier versions relied on the proprietary Mork format, which was difficult to pars e. Since Firefox 3, Mozilla has transitioned to SQLite databases, significantly improving performance and forensic accessibility. Most crucial browser artifacts are now stored in either SQLite or JSON, making them easier to analyze using tools like SQLite Browser or forensic scripts. ------------------------------------------------------------------------------------------------------------- Challenges in Firefox Forensics Frequent Updates: Firefox follows a rapid release cycle (new versions every 4-6 weeks), which can introduce format changes that break forensic tools. Multiple User Profiles: A single system can have multiple Firefox profiles, requiring investigators to check all profile directories. Data Encryption: Some data, such as saved passwords (logins.json) , is encrypted and requires a decryption key stored in key4.db. Conclusion If you are conducting a forensic investigation involving Firefox, be sure to check key databases like places.sqlite, cookies.sqlite, and formhistory.sqlite for valuable insights. 🚀 --------------------------------------------Dean----------------------------------------------------
- Investigating Chromium-Based Browsers: A Forensic Guide/Browser analysis Book
In today's digital world, web browsers are a goldmine of information for forensic investigators. With many users relying on Chromium-based browsers like Google Chrome, Microsoft Edge, and Brave for daily activities, understanding how to analyze browser data is crucial. ------------------------------------------------------------------------------------------------------------- Understanding Browser Profiles One of the most important things to know when analyzing a Chromium-based browser is that it supports multiple user profiles . This feature allows users to keep their "work" and "personal" data separate. However, from a forensic perspective, it means there could be multiple sets of browser data that need to be examined. ------------------------------------------------------------------------------------------------------------- Where to Find Profiles? Location: %UserProfile%\AppData\Local\Google\Chrome\User Data\ The Default folder contains the original Chrome profile. Additional profiles are stored in folders named "Profile 1," "Profile 2," etc. A Guest Profile exists, which functions like Incognito mode and doesn't leave traces after the session ends. Microsoft Edge allows profiles without an associated email, but they are still tied to a Windows user account. ------------------------------------------------------------------------------------------------------------- Key Artifacts in the Preferences File Each profile has a Preferences file, a JSON-formatted file that records key information like: Associated email address (if provided) Profile name Installed extensions Homepage and pinned tabs Privacy and synchronization settings ------------------------------------------------------------------------------------------------------------- Recovering Deleted Browser Data When a user deletes a profile, its folder and associated databases are removed on the next reboot. However, forensic tools can often recover these files from unallocated disk space. So, even if a user tries to erase their browser history, traces may still be available for analysis . ------------------------------------------------------------------------------------------------------------- Best Tools for Chromium-Based Browser Forensics Forensic investigators have several powerful tools to extract and analyze browser artifacts. Here are some of the most effective ones: 1. Hindsight Hindsight, created by Ryan Benson, is one of the best open-source tools for parsing Chromium browser data. Parses SQLite databases used by Chrome Supports LevelDB to extract Web Storage and File System artifacts Analyzes cache files (Cache, Media Cache, GPUCache, etc.) Outputs data in Excel (XLSX) or SQLite format Supports plugins to analyze Google Analytics cookies, search history, and more How to Use Hindsight? Hindsight runs via the command line: hindsight -i "C:\Users\Username\AppData\Local\Google\Chrome\User Data" Output: This command extracts data from all profiles in the User Data folder . You can also specify individual profile folders for a more focused analysis. 2. NirSoft ChromeHistoryView NirSoft provides a lightweight, easy-to-use tool called ChromeHistoryView. Extracts browsing history from Chrome databases Displays a simple timeline of visited websites Works on newer browser versions faster than some other tools While it doesn’t provide as much detail as Hindsight, it's a good backup tool for quick investigations. ------------------------------------------------------------------------------------------------------------- Key Browser Artifacts to Investigate Chromium-based browsers store vast amounts of user data. Here are some of the most valuable artifacts: ********************************************************************************************************************* Browser Forensic Analysis Book Chapter 1: Determining Sites Visited Understanding a user's browsing activity begins with reviewing history data and associated artifacts. Key Steps: Review History Data: Extract visited URLs, timestamps, and search keywords. Review Transition Info: Identify typed URLs versus redirected links. Document Top Sites: Rank frequently visited websites for behavioral insights. Audit Preferences File: Check for visited sites, auto-fill data, and sync settings. Parse Download History: Identify downloaded files and potential malicious payloads. Audit Bookmarks: Retrieve saved and backup bookmarks (JSON format). Look for Other Profiles: Detect additional Chrome user profiles to expand the scope of analysis. Relevant Files & Formats: Artifact File Location Format History Data History SQLite Bookmarks Bookmarks, Bookmarks.bak JSON Download History History SQLite Preferences Preferences file JSON Chapter 2: Filling in Evidence Gaps This phase focuses on less obvious browser artifacts that provide additional context. Key Steps: Review Cache Domains: Extract stored website assets and determine access patterns. Analyze Specific File Types: Identify cached executables, images, and scripts. Review Cookie Domains: Extract stored cookies and associated metadata. Search Session Recovery Files: Recover open tabs and recent browser activity. Analyze Web Data & Shortcuts: Identify autocomplete and stored form data. Audit Browser Extensions: Extract extension metadata and potential malicious add-ons. Snapshots Folder: Examine browser snapshots for evidence of activity. Relevant Files & Formats: Artifact File Location Format Cache Data Cache N/A Cookies Cookies/IndexedDB SQLite/LevelDB Session Data Session_, Tabs_ SNSS Web Data Web Data, Network Action Predictor SQLite Chapter 3: Deep Dive Analysis Advanced forensic techniques focus on deleted, volatile, and shadowed browser data. Key Steps: Search Web Storage: Analyze local storage data for application-based evidence. Review Sync Data Database: Extract synchronized browsing data across multiple devices. Audit Chrome Jumplist Entries: Recover recent browser session activities. Carve Deleted SQLite Entries: Extract deleted history, cookies, and other records. Review Memory-Based Artifacts: Identify browser-related artifacts in volatile memory. Focus on Incognito Artifacts: Attempt to recover private browsing data. Targeted Analysis Using Volume Shadow Copies: Extract historical data from system restore points. Relevant Files & Formats: Artifact File Location Format Web Storage Local Storage/IndexedDB LevelDB Sync Data Sync Data Folder LevelDB Deleted Data Recovered SQLite DBs SQLite Jumplist Entries JumpList File N/A Tools Recommended: Chrome Analysis Tools: Hindsight, Belkasoft Evidence Center SQLite Analysis: DB Browser for SQLite Memory Analysis: Volatility, Rekall Volume Shadow Copy Analysis: Shadow Explorer Staying Ahead in Browser Forensics Browser updates constantly change data storage methods, so forensic tools need to keep up. It's crucial to test tools regularly and manually verify important artifacts when needed. By understanding the storage structure, key artifacts, and best tools available, forensic analysts can effectively investigate browser activity and uncover critical evidence. -------------------------------------------Dean-----------------------------------------
- Understanding Chrome Synchronization: A Digital Forensics Perspective
What is Chrome Synchronization? Chrome synchronization is a feature that allows users to access their browsing data across multiple devices using their Google account. This includes bookmarks, history, passwords, and even open tabs. While this feature is highly convenient for users, it also creates a rich source of forensic artifacts that can be examined during investigations. How Chrome Sync Works When a user logs into Chrome with their Google account, synchronization is enabled by default unless they opt out during installation . This means that data from one device can be instantly available on another, even if Chrome is not actively running. To view the currently synchronized data on a running Chrome instance, users can visit chrome://sync-internals/ in their browser. ------------------------------------------------------------------------------------------------------------- Where to Look for Sync Settings? Chrome stores sync-related preferences in a JSON-based Preferences file. This file contains a "sync" section that details what is being synchronized and when it was last updated (stored in WebKit time format). However, many settings are only visible if they have been manually changed from the default. ------------------------------------------------------------------------------------------------------------- What Data Does Chrome Sync? Chrome syncs various types of user data, including: Browsing history (only URLs typed directly in the address bar) Bookmarks Preferences Extensions Passwords (Login Data) Auto-complete data (Web Data) Open tabs from other devices A modern Chrome version (post-2019) uses a LevelDB database within the Chrome Sync Data folder to temporarily store data before syncing it to the cloud. However, this database is not meant to store large amounts of user data. ------------------------------------------------------------------------------------------------------------- What Data Does Chrome NOT Sync? Several important artifacts do not get synchronized across devices, including: Download history Cookies Keywords typed into search engines (keyword_search_terms) Omnibox suggestions (Shortcuts database) Prefetched data analytics (Network Action Predictor) Certain Chrome Preferences (e.g., media engagement, per-site zoom levels) ------------------------------------------------------------------------------------------------------------- How to Identify Synced vs. Local Data Forensic investigators can determine if a browsing entry was locally created or synced from another device by examining the visit_source table in Chrome’s history database . This table contains: Source 0 : Visits synced from other Chrome devices Source 1 : Local visits (not typically recorded for efficiency) Source 2 : Visits from Chrome extensions Source 3 : Data imported from Firefox Source 4 : Data imported from Internet Explorer Source 5 : Data imported from Safari Source 6 : Data imported from Chrome (used by Chromium Edge) Source 7 : Data imported from EdgeHTML Entries that are locally created do not appear in this table, making it easier to distinguish synced data from locally generated browsing history. ------------------------------------------------------------------------------------------------------------- Does Clearing Browsing Data Remove Synced Data? If a user clears their browsing data on one device, it does not necessarily mean the data is removed everywhere. The outcome depends on Chrome’s version and the settings chosen by the user. On the local system , most data is deleted, but some settings in the Preferences file and bookmarks remain. On synced devices , nearly all synced data is removed except for non-synced artifacts like cached files, download history, and cookies. Older Chrome versions were not as effective at clearing synced data, leaving residual information in databases like SyncData.sqlite3. ------------------------------------------------------------------------------------------------------------- What Happens When a User Signs Out? When a user signs out of their Google account, synchronization stops for that browser instance. However, data remains on the device unless explicitly cleared . Other synced devices retain the browsing history unless the user performs a Reset Sync from their Google Dashboard, a little-known option. Key Takeaways Chrome sync is a powerful feature that allows users to access their data across multiple devices, but it also leaves behind valuable forensic artifacts. The visit_source table helps identify whether an entry was synced or locally created. Not all Chrome data is synced—download history, cookies, and search terms remain local. Clearing browsing data does not always erase all synchronized data across devices. Signing out of a Google account stops sync but does not delete previously synchronized data from other devices. Conclusion Understanding Chrome synchronization is essential for digital forensics. Whether investigating user behavior or tracking historical data, Chrome’s sync feature provides a valuable trail of artifacts. Investigators must be aware of what data is synced, where it is stored, and how it can be distinguished from locally generated data. ---------------------------------------------Dean---------------------------------------------------
- Understanding Chrome's Data Storage and Session Recovery : What Your Browser Remembers
Most browsers store some auto-complete data , but Chrome takes this to another level by recording a surprising amount of information. Whether it’s search terms, form data, or login credentials , Chrome’s databases capture nearly everything typed by the user. ----------------------------------------------------------------------------------------------------------- 1. Web Data Database: Storing Autofill Information This database keeps track of information typed into web forms. It includes details like: Email addresses Names Phone numbers Credit card details Login credentials The key table here is autofill , which saves data entered into forms. However, one critical thing to note is that it doesn’t link the data to specific websites. Instead, it connects to the form name , meaning it can be used across different sites with similar form structures. ----------------------------------------------------------------------------------------------------------- 2. Shortcuts Database: Recording Omnibox Activity The Omnibox (Chrome’s address bar) is more than just a search box; i t predicts what a user is looking for based on previous activity. This database records: What was typed in the Omnibox Suggestions given by Chrome Sites visited based on those suggestions Last accessed time and frequency of visits All this data is stored in the omni_box_shortcuts table, providing a history of how a user interacted with the Omnibox. ----------------------------------------------------------------------------------------------------------- 3. Network Action Predictor: Tracking Typed Characters When Chrome’s Prefetch feature is enabled (to speed up loading times), this database keeps a letter-by-letter record of: What was typed What sites Chrome preloaded in the background How often the browser correctly predicted user intent For example, if a user starts typing "cyber," Chrome may suggest relevant site s. If the user selects a suggestion, a hit count is stored . This feature provides insights into past browsing activity even if the user never actually visited a page. ----------------------------------------------------------------------------------------------------------- 4. Login Data Database: Storing User Credentials This database holds login-related data, including: Websites where a user has saved login credentials Dates when passwords were created and last used Even sites where users chose not to save their passwords! When a user clicks "Never save password" on a site, the database still records that decision . The blacklisted_by_user field is marked as "1" for these sites. Chrome encrypts saved passwords using Windows DPAPI , but live forensics tools like NirSoft ChromePass can retrieve them while the user is logged in. ----------------------------------------------------------------------------------------------------------- 5. How Prefetching Can Store Unvisited Pages If Prefetch is enabled, Chrome may download parts of web pages before a user visits them. While the History database does not record prefetched pages, cached files and cookies may still exist. Checking the number_of_hits and number_of_misses fields in the Network Action Predictor database can help determine if a page was auto-loaded or actually visited. ----------------------------------------------------------------------------------------------------------- Browser Session Recovery Modern web browsers are designed to be more reliable, especially with the rise of tabbed browsing. One key feature that improves reliability is session recovery . This feature ensures that even if your browser crashes, you can restore your open tabs and continue where you left off. But did you know that session recovery stores a lot of detailed information about your browsing habits? What Information Can Be Retrieved from Session Recovery? When forensic analysts examine session recovery data, they can uncover: A list of open tabs from the last session (and sometimes previous sessions too) A detailed history of websites visited in each tab The referring websites for each page visited Session start and end timestamps (varies by browser) HTML, JavaScript, and even form data entered by the user Additional details like browser window size, pinned tabs, and page transition types (e.g., navigating from search results vs. direct URL entry) Most browsers automatically enable session recovery by default , meaning they continuously save this data. Some users even expand the feature using options like "Continue where you left off." How Chrome Handles Session Recovery Data Chrome stores session recovery data in a structured format, evolving over time: Before Chrome version 86: Data was saved in four files: Current Session, Current Tabs, Last Session, and Last Tabs. From Chrome version 86 onward: These files were moved to a Sessions folder and renamed Session and Tabs, each with a timestamp attached to their filename. This data is stored in a special format called SNSS (Session Saver Format) . The purpose of these files is to help the browser recover in case of a crash, as well as enable features like "Reopen Closed Tab." What Can Be Found in Chrome’s Session Data? Since session data records browser activity, it contains valuable information such as: URLs visited Original URLs (in case of redirections) Referring pages Page titles Visit counts Form data entered Page transition types (e.g., typed URL vs. clicked link) Chrome periodically saves and updates this data , meaning the Current Session and Current Tabs files reflect the most recent activity . On the other hand, Last Session and Last Tabs are usually written when the browser is closed, though there are exceptions. Extracting and Analyzing Session Data for Investigation Forensic analysts can extract session recovery data to reconstruct browsing behavior. There are two main ways to do this: Using Open-Source Tools: The Chromagnon project was one of the first open-source tools developed to parse Chrome’s SNSS files. However, it hasn’t been updated in years and lacks full support for timestamps and page titles. https://github.com/JRBANCEL/Chromagnon/tree/SNSS/chromagnon Using String Extraction Methods: A simpler way to analyze these files is by extracting strings using tools like SysInternals' strings.exe . However, this method has a downside: it does not preserve metadata or relationships between tabs. Best commercial tools: Magnet AXIOM or belkasoft is best tool to parse sessions information Future of SNSS Parsing Parsing SNSS files is still an underdeveloped area in Chrome forensics. While commercial tools exist, a more robust open-source solution is needed to improve accuracy and recover additional metadata . Conclusion Session recovery is an essential feature in modern browsers, but it also leaves behind a detailed digital footprint . Understanding how Chrome stores and manages session data allows forensic analysts to reconstruct user activity, making it a valuable resource in digital investigations. Whether using open-source tools like Chromagnon or manual string extraction, session data can provide deep insights into a user’s browsing history and behavior. ------------------------------------------------------------------------------------------------------------ Stay with me we will continue about Google forensic in next article. -----------------------------------------------------------------------------------------------------------
- Understanding Modern Browser Storage and Chrome's Preferences File for Forensic Investigations
Browsers have evolved beyond just displaying web pages; they now support complex web applications, cloud-based documents, and productivity tools. To make these features work smoothly, websites store increasing amounts of data directly on a user’s device. This client-side storage has grown significantly, often surpassing the traditional browser cache . Despite its importance, f orensic investigations have largely overlooked this area because analyzing browser storage can be challenging, and most forensic tools don't fully support it. -------------------------------------------------------------------------------------------------------- 1. Cookies: The Oldest Storage Method Cookies have been around for decades and remain a critical component of the web. Since web pages don’t have memory on their own, cookies help websites remember user activity, authentication details, and preferences. This is why you don’t have to log in every time you visit a site. Forensic Value of Cookies: They provide timestamps for when a user first and last visited a website. They store authentication tokens, session data, and user preference s. Even when browser history is deleted, cookies can still retain records of visited sites. Some sites use “third-party” cookies to track user activity across different websites. Cookies in modern browsers like Chrome are stored in a single SQLite database named Cookies. Chrome's Evolving Storage Locations Chrome periodically updates how and where it stores data. For example: In version 33 , Chrome began encrypting cookie values. In version 61 , LocalStorage moved from SQLite to LevelDB. In version 96 , the Cookies database was relocated to the Network folder. ---------------------------------------------------------------------------------------------------------- 2. HTML5 Web Storage (LocalStorage & SessionStorage) As web applications became more advanced, cookies were no longer enough. The HTML5 Web Storage API introduced LocalStorage and SessionStorage , offering significantly more storage space (up to 10MB per website). LocalStorage vs. SessionStorage: LocalStorage : Data persists even after the browser is closed. SessionStorage : Data is cleared once the browser session ends. %UserProfile%\AppData\Local\Google\Chrome\User Data\Default\Local Storage/Session Storage Forensic Value of Web Storage: Stores authentication tokens and user settings. Can retain session-related data like form inputs or shopping cart items. May contain geolocation details and user tracking information. In Chrome, LocalStorage and SessionStorage data are saved in LevelDB databases , which can be found under Logs are stored in idb format ---------------------------------------------------------------------------------------------------------- Local Storage vs IndexedDB – What’s the Difference? Initially, Local Storage was designed to improve upon cookies. It allowed websites to store more data locally , but it was still limited in structure. Then came IndexedDB, a much more advanced storage system that changed the game . Local Storage: A simple key-value store, mostly used for small data like user preferences or session states. IndexedDB: A full-fledged database that supports a wide variety of data types, including text, integers, and even binary files.' IndexedDB allows websites to store much larger amounts of data. For example, Chrome can allocate up to 60% of a user’s disk space per domain ! It also enables websites to function offline, making it a prime target for forensic analysis. Where to Find IndexedDB Data in Chrome: %UserProfile%\AppData\Local\Google\Chrome\User Data\\IndexedDB IndexedDB doesn’t maintain a single database. Instead, each website (or domain) gets its own LevelDB database . This makes forensic investigation complex. ---------------------------------------------------------------------------------------------------------- Why Is IndexedDB Hard to Analyze? One major challenge with IndexedDB forensics is that no good free tools exist for easy analysis. Since every website has its own LevelDB database, you could be looking at thousands of small databases spread across gigabytes of data. Another complication is that websites can store binary blobs (files) inside IndexedDB , including images, documents, or even databases . Some of these files are compressed using the Snappy algorithm , making it harder to retrieve meaningful information without proper decompression. ---------------------------------------------------------------------------------------------------------- 3. The "WebStorage" and "Storage Buckets" Mystery Newer versions of Chrome have introduced a WebStorage folder, which contains additional IndexedDB and browser cache data. Experts believe this is tied to a feature called Storage Buckets , where sites can assign priorities to stored data and delete them selectively. This means forensic analysts now need to check yet another location when searching for persistent browser artifacts. ---------------------------------------------------------------------------------------------------------- 4. Chrome’s File System API – Another Hidden Storage Mechanism In addition to Local Storage and IndexedDB, Chrome also implements the File System API , allowing sites to store larger files . This is particularly useful for: Cloud-based services like Google Docs (for offline access) File-sharing platforms like Mega.nz (for temporary storage) Forensic analysis of the File System API starts with the Origins folder , which tracks which websites have stored files and where they are located. This structure means websites can store user files without them being easily detectable, making forensic recovery more challenging but also valuable for investigations. ---------------------------------------------------------------------------------------------------------- 5. How to Analyze Browser Storage? Since IndexedDB and LevelDB data are tricky to parse, investigators rely on a few specialized tools: Hindsight (by Ryan Benson): Parses Local Storage, Session Storage, and some LevelDB data. https://dfir.blog/hindsight/?ref=dfir.blog Output Leveldb-py (by Mark McKinnon): Provides a GUI viewer for LevelDB databases. https://github.com/markmckinnon/Leveldb-py Magnet AXIOM: A commercial forensic suite with limited LevelDB support. ---------------------------------------------------------------------------------------------------------- Chrome's Preferences File Google Chrome stores a lot of user activity data, and one of the most valuable files for forensic analysis is the Preferences file. This file continuously updates as the browser runs, capturing settings, behaviors, and interactions. It is stored in JSON format , making it easy to read with a proper JSON viewer. Where to Find the Preferences File The Chrome Preferences file is located in the user’s profile directory: Windows : C:\Users\\AppData\Local\Google\Chrome\User Data\Default\Preferences Mac : /Users//Library/Application Support/Google/Chrome/Default/Preferences Linux : ~/.config/google-chrome/Default/Preferences Since it’s a JSON file, tools like N otepad++ with JSTool plugin can help visualize the data in a tree format for easier analysis. or else you can use online Jason viewer https://jsonformatter.org/json-viewer ------------------------------------------------------------------------------------------------------------- Key Information Stored in the Preferences File The Preferences file contains thousands of entries , some of which can reveal crucial forensic insights . Here are some of the most valuable data points: 1. Evidence of Deleted Data clear_data – Tracks whether a user has cleared browsing data. Values: 0 = Last hour 1 = Last 24 hours 2 = Last 7 days 3 = Last 4 weeks 4 = All time If this entry is missing, it means no data was cleared. 2. File Interaction savefile – The last location where a file was saved. selectfile – The last file opened from the browser. 3. Search and Prediction Data search_prefetch – Stores cached search queries to improve future predictions. These can persist even after clearing search history. zerosuggest – Tracks recent search terms across synced devices. This data is often encoded in Base64 and may include images. 4. Site-Specific Settings and Behavior content_settings – This massive section records: Sites visited Parameters saved for those sites Special permissions granted per_host_zoom_levels – Tracks sites where the user adjusted the zoom level. This data is not removed when clearing history. geolocation – Records which sites have permission to track the user’s location. media_engagement – Captures interactions with audio and video content (e.g., how long a video played, if the sound was muted). site_engagement – Measures user engagement with websites, including timestamps of the last meaningful interaction. sound – Lists websites the user has permanently muted. notifications – Stores data on websites that requested notification access, including whether the request was accepted or denied. media_stream_camera & media_stream_mic – Tracks websites granted access to the webcam and microphone. 5. Google Account and Sync Information account_info – Lists Google accounts signed into Chrome. signin – Stores authentication data related to the Google account in use. last_synced_time – Captures the last time data was synchronized to Google’s cloud services. ------------------------------------------------------------------------------------------------------------- Why This Data Matters in Forensics Investigators can extract a timeline of user activity from the Preferences file , even if history has been deleted . For example: The per_host_zoom_levels entry shows engagement with specific websites, which can indicate intent. clear_data reveals attempts to erase digital traces. search_prefetch and zerosuggest help reconstruct search behavior. ------------------------------------------------------------------------------------------------------------- How to Read WebKit Timestamps Many timestamps in the Preferences file are stored in WebKit format , which represents the number of seconds since January 1, 1601 (instead of 1970 like UNIX time). Converting these timestamps helps establish precise activity timelines. ------------------------------------------------------------------------------------------------------------- Mapping Zoom Levels to Actual Zoom Percentage Users adjusting zoom levels is a sign of engagement with a website. Here’s how zoom levels translate: zoom_level Value Zoom Percentage -1.57 75% 0.52 110% 1.22 125% 2.22 150% 3.06 175% 3.80 200% If a user returns zoom to 100% , the entry disappears from the Preferences file, which can be useful in investigations. ------------------------------------------------------------------------------------------------------------- Conclusion Browser storage has evolved beyond simple cookies into a complex web of databases, binary blobs, and hidden caches . Forensic analysis of modern web storage requires specialized tools and expertise, but it can uncover critical evidence in investigations. Whether it’s IndexedDB, File System API, or Storage Buckets, understanding where and how data is stored is key to unlocking valuable forensic insights. The Chrome Preferences file is a goldmine for forensic investigations . Even when users attempt to erase their tracks, remnants of their activity often remain. Understanding this file's structure can help forensic analysts uncover critical evidence, reconstruct timelines, and prove user intent. If you’re conducting an investigation, make sure to extract and analyze this file—it could hold the missing piece of the puzzle! ------------------------------------------------------------------------------------------------------------- Stay with me we will continue about Google forensic in next article. -----------------------------------------------Dean------------------------------------------------------
- Google Chrome Forensics: Analyzing History and cache
Introduction Since its release in 2008, Google Chrome has become one of the most widely used web browsers, thanks to its user-friendly interface, seamless integration with Google services, and efficient web rendering capabilities. From a forensic standpoint, Chrome's artifacts are well-organized and primarily stored within the user’s profile directory, making them a valuable resource for digital investigators. ------------------------------------------------------------------------------------------------------------- Chrome User Data Storage Locations Windows XP: %UserProfile%\Local Settings\Application Data\Google\Chrome\User Data Windows 7 and Later: %UserProfile%\AppData\Local\Google\Chrome\User Data Most artifacts are stored in SQLite databases or JSON files . While these formats are widely documented, the stored data often requires additional processing for analysis. For example, timestamps and page transition data may not be human-readable at first glance. ------------------------------------------------------------------------------------------------------------- Analyzing Chrome Browser History Browser history is an essential artifact in forensic investigations, providing insight into a user’s online activity. Chrome maintains an extensive history of visited websites, with a default retention period of up to 90 days. Key information extracted from browser history includes: URLs of visited websites Page titles and referring sites Frequency of visits Timestamps for each visit User profile associated with the visits ------------------------------------------------------------------------------------------------------------- Chrome History Database The History database, stored within User Data\, is the primary source for browsing activity. Chrome stores its history in SQLite format, and forensic analysts can extract valuable insights by querying specific tables. Key SQLite Tables in the History Database: Table Name Data Stored downloads, downloads_url_chains Download history, including URLs and file names keyword_search_terms Typed search queries (used for autocomplete) segments, segment_usage Frequently visited sites (for the Most Visited page) visit_source Source of URL information (local, synced, imported) urls, visits Comprehensive browser history, including timestamps and referrer data Additional History Artifacts Top Sites Database: Stores thumbnails and metadata for frequently visited pages. Archived History: Previously stored older browsing history beyond 90 days (removed in Chrome v37). History Index YYYY-MM: Used to index page content for searches (removed in Chrome v30). ------------------------------------------------------------------------------------------------------------- Key Tables in Chrome’s History Database The primary tables of interest are: urls – Stores the URL, page title, and the last visit time. visits – Keeps a detailed log of each visit to a website. To get a complete picture of a user’s browsing activity, you need to cross-reference both tables. What Can We Learn from Chrome’s History? Total Visits: Each time a site is visited, a new entry is made in the visits table. Last Visit Time: Stored in the urls table, showing the most recent visit. Visit Count: Tracks how often a particular site was visited. Typed URLs: URLs that were physically typed or pasted into the address bar get a special typed_count value, indicating intentional user activity. Visit Duration: Unlike most browsers, Chrome records how long a site was open in the visit_duration field. This data is stored in microseconds , and the tab doesn’t even have to be in focus for the duration to increase. Hidden URLs: The hidden field in the urls table doesn’t mean the visit was hidden from the user . Instead, it controls whether the URL appears in auto-complete suggestions (0 = visible, 1 = hidden). ------------------------------------------------------------------------------------------------------------- Understanding Page Transition Types Every visit entry in Chrome has a transition field , which indicates how the user accessed a website. These values are stored as 32-bit numbers and can look cryptic without decoding. The core types include: Transition Type Meaning 0 Link click 1 Typed URL 2 Auto bookmark 3 Auto subframe (embedded content) 4 Manual subframe 5 Omnibox suggestion 6 Start page visit 7 Form submission 8 Page reload 9 Keyword search 10 Generated keyword search These transition types help investigators determine how a website was accessed. For example, a typed transition (1) suggests direct user interaction, whereas a link transition (0) indicates the user clicked a hyperlink. https://kb.digital-detective.net/display/BF/Page+Transitions Check out the article related to Transitions and qualifiers ------------------------------------------------------------------------------------------------------------- What is an Internet Cache? The internet cache is a feature designed to speed up web browsing . When you visit a website, your browser downloads and saves parts of the webpage (such as images, scripts, and HTML files) on your device. This way, if you revisit the same site, your browser can load the saved content instead of downloading it again, making things much faster. This is why when you press the back button, the previous page loads instantly—it’s coming from the cache. Why is Cache Important in Forensics? From a forensic standpoint, the cache is a goldmine of information about a user's online activity. It stores actual webpage content, meaning investigators can reconstruct what a user saw and interacted with on a websit e. While browsing history only logs visited URLs, the cache holds more valuable data like images, HTML files, and even downloaded attachments (e.g., in Outlook Web Access). How is Chrome's Cache Structured? Chrome stores cached files inside a user’s profile directory. Before version 97, the cache files were stored in the Cache folder . From v ersion 97 onwards, they were moved deeper into Cache\Cache_Data. The cache consists of at least five key files: Index file (index): Keeps track of cached entries. Data files (data_0 to data_3): Store the actual cached content and metadata. Block files : Organize cached data into fixed-size blocks for efficient storage. Separate files (f_xx format): Used for storing larger files (above 16 KB).\ What Information Can Be Extracted from Chrome Cache? Each cached item comes with metadata that gives useful insights, such as: Metadata Field Description Filename The name of the file downloaded from the website. URL The web address where the cached file came from. Content Type Type of file (e.g., HTML, JPG, JavaScript). File Size Size of the cached file. Last Accessed Time The last time the cached content was used. Server Time The first time the cached content was saved. Response Header Stores HTTP headers, which help Chrome retrieve cached data efficiently. Timestamp Analysis in Chrome Cache Chrome cache files contain four important timestamps stored in UTC: Last Accessed – The last time the user viewed the cached content. Server Time – When the content was first saved to disk. Server Last Modified – When the content was last updated on the website. Expire Time – When the cached content is expected to be removed (set by the website). Additionally, large files stored separately (f_##### files) have filesystem-specific timestamps , including Created, Modified, Accessed, and MFT Change times (for NTFS systems). Tools for Analyzing Chrome Cache Manually extracting cache data can be challenging since it’s stored in a structured format. However, tools like NirSoft ChromeCacheView simplify the process by displaying cache details in an easy-to-read table. I request whitelist the tool to your antivirus because this will get quarantined everytime you will try to run View cached file metadata. Extract and save cached files for analysis. Limitations of Cache Analysis The cache is dynamic — older files get removed as new ones are stored. Websites can prevent caching for security reasons (e.g., Gmail doesn’t cache sensitive content). Cache files corrupt easily , causing loss of data. Chrome rebuilds the cach e if essential files are missing. Conclusion Chrome is one of the most data-rich browsers for forensic investigations. Its history database, visit logs, and metadata provide a detailed timeline of a user’s web activity as well Chrome’s cache is also very valuable forensic artifact that helps investigators piece together a user’s browsing activity. B y analyzing cache contents and timestamps, forensic experts can understand what sites were visited, what files were downloaded, and even reconstruct webpages. However, cache data is volatile, so timely acquisition and analysis are crucial! -------------------------------------------------------------------------------------------------------- Stay with me we will continue about Google forensic in next article. ------------------------------------------------Dean------------------------------------------------