top of page

Search Results

514 results found with an empty search

  • Part 2 Code Injection: How to Detect It

    Lets continue where we left off The simplest form of this attack involves forcing a process to load a new DLL (Dynamic Link Library). Traditional detection tools, like Volatility’s dlllist or ldrmodules, can easily spot this. However, as security tools got better at detecting it, attackers evolved, developing more advanced techniques that try to bypass these detections. But here’s the catch—no matter how stealthy an attack is, it always leaves behind clues. The key to forensic investigation is finding those clues. How to Detect Code Injection Most code injection techniques follow a common three-step pattern . Even advanced variants like reflective DLL injection share similar traits. The trick is to look at the process’s memory structures, particularly the VAD (Virtual Address Descriptor) tree , which keeps track of all memory sections. Here’s the step-by-step process to detect injected code: Check Memory Permissions  – One of the biggest red flags in process memory is a section with PAGE_EXECUTE_READWRITE permissions. Normally, memory sections shouldn’t be both writable and executable—it’s a dangerous combination that allows injected code to be written and executed. Verify If the Memory Section Is Mapped to a File  – On Windows, legitimate code (DLLs, EXEs) is loaded from disk. If a memory section is executable but isn’t mapped to a file, that’s highly suspicious. Confirm the Presence of Executable Code  – Just because a memory section looks suspicious doesn’t mean it’s necessarily malware. Some legitimate applications (like .NET or JIT compilers) have memory pages with unusual permissions. To confirm if the injected code is truly malicious, forensic tools check for actual executable content like a Portable Executable (PE) file  or shellcode . ------------------------------------------------------------------------------------------------------------- Using Volatility to Detect Code Injection Luckily, you don’t have to manually go through every memory section. Tools like Volatility’s malfind plugin  and MemProcFS findevil  automate this process. These tools scan process memory for suspicious sections and provide easy-to-read output for analysts. How malfind Works The malfind plugin scans memory and looks for sections that: Have executable  permissions Are not mapped to a file on disk Contain actual executable code If it finds a match, it flags the section for further review. With the --dump option, malfind can even extract these sections so they can be analyzed further using tools like IDA Pro , YARA , or an antivirus scanner. Example command: python3 vol.py -f /mnt/c/Users/Akash\'s/Downloads/solarmarker/solarmarker.img windows.malfind > /mnt/c/Users/Akash\'s/Downloads/malfind.txt - -------------------------------------------------------------------------------------------------------- Giving you hint which make your analysis easier When you run malfind and found EBP and ESP  it often indicates that some part of the memory that is traditionally not executable (such as the stack) now contains executable code. ---------------------------------------------------------------------------------------------------------- Advanced Detection Techniques While malfind is a great first step , attackers have developed methods to bypass it by modifying memory markers. Here are additional techniques that can help: YARA rules  – Custom rules to scan memory dumps for known malware patterns Strings analysis  – Looking for suspicious keywords inside dumped memory sections Behavioral monitoring  – Watching for unusual process behavior (e.g., svchost.exe spawning a reverse shell) ---------------------------------------------------------------------------------------------------------- Evolution of Code Injection Volatility’s malfind  becoming effective at detecting reflective injection. However, attackers countered by cleaning up after themselves . For instance, the CoreFlood botnet  cleared the first page (4096 bytes) of the loaded DLL to evade detection. Similarly, groups like APT29 (Russia)  and APT32 (Vietnam)  use Cobalt Strike payloads  that erase their headers post-execution. Winnti RAT , linked to a Chinese nation-state group, adopts similar evasion strategies. Detecting Stealthier Code Injections To counter these sophisticated injection methods, analysts must go deeper. Memory dumping  helps identify obfuscated code: Volatility malfind’s --dump option : Extracts suspicious memory sections for further analysis. String Analysis & YARA Rules : Identifies patterns in dumped memory sections. Reverse Engineering : The most thorough but resource-intensive approach. Behavioral analysis—such as monitoring parent-child process relationships  and orphaned files —remains effective. ------------------------------------------------------------------------------------------------------ MemProcFS and the “FindEvil” Plugin Newer memory forensic tools like MemProcFS  offer enhanced detections through its FindEvil  plugin. When enabled, this feature generates findevil.txt, flagging suspicious memory regions: Process Irregularities: PROC_NOLINK : Unlinked processes (possibly malicious). PROC_PARENT : Unexpected parent-child process relationships. PROC_USER : System processes running under incorrect user accounts. Memory Page Flags: PE_INJECT : Executable memory sections lacking proper image mappings. NOIMAGE_RWX / NOIMAGE_RX : Suspicious permissions outside image memory. PRIVATE_RWX / PRIVATE_RX : Executable code in private memory sections. ------------------------------------------------------------------------------------------------------------- We will continue remaining part of code injection into next article stay connected and keep learning ------------------------------------------------------------------------------------------------------------- Conclusion As attackers refine their methods, defenders must continuously adapt. Memory forensic techniques—combined with behavioral analysis—offer powerful tools for detecting modern injection techniques. -------------------------------------------------Dean--------------------------------------------------

  • Why Code Injection is a Hacker's Favorite Trick and How to Detect It through Memory forensic

    A common question that comes up a lot is: "If code injection is so easy to detect, why do attackers keep using it?" The simple answer? It’s only easy  to detect if you’re performing deep memory analysis. Most security tools don’t do that by default, and attackers have found smarter ways to hide. Plus, code injection solves a ton of problems for malware , making it an effective technique even today. ------------------------------------------------------------------------------------------------------------- Why Code Injection Works So Well Code injection is like a digital disguise. Instead of running as a suspicious-looking standalone program, malware hides inside legitimate processes. This makes it much harder for an admin or security tool to spot it. Here’s how attackers take advantage of it: Blending in with legitimate processes   – Instead of creating a new process , attackers inject their code into something already running , like your web browser or system utilities. Inheriting permissions  – If the injected process has high-level privileges, the malware gets the same access. This is a common trick used by credential stealers to hijack the LSASS process and grab login hashes or Kerberos tickets . Avoiding detection  – Security tools often look for new or untrusted processes. But if malware is running inside an already trusted app (like your browser), it flies under the radar. ------------------------------------------------------------------------------------------------------------- Process Migration: Staying One Step Ahead Hackers don’t just inject their code and call it a day. They also move it around to avoid getting caught. This is called process migration . Imagine an attacker exploits a vulnerability in your browser and gets some initial access. But what if you close your browser? Their malware dies with it. To prevent this, they migrate the malicious code to a more persistent process—something critical that rarely gets shut down. Hacking tools like Metasploit  and Cobalt Strike  even have built-in features to automate process migration, making this a common tradecraft among cybercriminals. ------------------------------------------------------------------------------------------------------------- Common Code Injection Techniques There are a lot of ways to inject malicious code, and some are stealthier than others. Let’s break down the most popular ones: 1. DLL Injection This is one of the easiest ways to perform code injection, thanks to Windows' architecture. If an attacker has admin rights, they can: Allocate memory in a target process Write a malicious DLL into it Use Windows functions like VirtualAllocEx() and CreateRemoteThread() to execute it Some advanced methods, like Reflective DLL Injection , bypass API monitoring tools and load malicious DLLs without ever writing them to disk. This makes them harder to detect with traditional antivirus solutions. 2. Process Hollowing This is a bit different from DLL injection. Instead of injecting into a running process, the attacker: Creates a legitimate Windows process in a suspended  state Replaces its memory with malicious code Restarts the process, now running as malware while keeping the original process name This is how malware like Stuxnet, DarkComet, and Kronos  stay hidden while running inside trusted processes. 3. Atom Bombing & Hooking Atom Bombing : Uses the global atom table to inject code into another process. SetWindowsHookEx Hooking : Forces a process to load a malicious DLL by hooking its function calls. Even PowerShell  can be abused for code injection! Attackers often use script-based techniques to execute payloads in memory, avoiding traditional detection methods. ------------------------------------------------------------------------------------------------------------- How to Detect Code Injection Even though code injection is sneaky, it always leaves traces behind. Memory forensics is one of the best ways to uncover it. Here are the key methods: Check for injected DLLs  – Many injection techniques still rely on Windows’ normal DLL loading process, which means you can look at process memory structures to find unexpected DLLs. Look for suspicious executable memory   – Attackers might try to avoid API calls, but at some point, the injected code has to be executable . If you find unusual executable pages in memory, it’s a red flag. Compare kernel vs. userland process data  – Advanced malware manipulates memory permissions, changes execution pointers, and even patches loaded code. Comparing different memory sources can reveal these inconsistencies. ------------------------------------------------------------------------------------------------------------- Tools for Detecting Code Injection 1. Volatility Memory Forensics Framework Volatility has been a go-to tool for analyzing memory dumps. It includes several plugins that help uncover hidden malware techniques: ldrmodules : Detects DLLs that are either unlinked or loaded from unusual locations —both major red flags. malfind : Scans for suspicious memory allocations that might indicate reflective injection or process hollowing. hollowfind : Specifically designed to detect process hollowing by comparing data structures within a process. threadmap : Focuses on identifying malicious threads, making it harder for attackers to hide their tracks. ptemalfind : Uses kernel-based page table information to identify hollowed processes, offering stronger detection against advanced evasion tactics. One thing to note—some of these plugins are only available in Volatility 2, while newer ones like ptemalfind  are designed for Volatility 3. 2. MemProcFS This is another powerful memory analysis tool that takes things a step further. Its findevil  plugin helps detect different types of code injections, making it a great addition to your forensic toolkit. 3. Live Memory Analysis Tools As attackers get more sophisticated, relying solely on RAM dumps isn’t always enough . Some malware, like those using the Gargoyle memory evasion technique , remain dormant most of the time and only execute briefly, making them harder to catch in static memory dumps. That’s where live memory analysis comes in: Moneta  (by Forrest Orr) and Hollows Hunter  (by hasherezade) are great tools for detecting live injection attempts. Many Endpoint Detection and Response (EDR)  solutions are now integrating similar live memory scanning capabilities. ----------------------------------------------------------------------------------------------------------- How Attackers Perform DLL Injection One of the simplest and most common code injection techniques is DLL injection . Here’s how it works: Attach to the Target Process:  The attacker uses the OpenProcess() function to gain access to a victim process. This requires the SeDebugPrivilege , which admin accounts usually have. Allocate Memory:  The attacker then uses VirtualAllocEx()  to create a small memory space inside the victim process, where the malicious DLL’s path will be written using WriteProcessMemory(). Execute the Malicious Code:  Finally, CreateRemoteThread()  is used to force the victim process to load the malicious DLL via LoadLibraryA(). This method works well, but it has one major limitation: the DLL must exist on disk . Security tools can easily detect suspicious DLLs being loaded from unexpected locations (like a Temp folder instead of System32) . -------------------------------------------------------------------------------------------------------- Reflective Code Injection: A Stealthier Alternative To bypass the requirement of having a DLL on disk, attackers developed reflective code injection . This method allows malware to load itself directly into memory without relying on Windows’ LoadLibrary() function. As a result, it doesn’t appear in standard DLL lists, making it much harder to detect. Some of the most well-known attack tools use reflective injection: Metasploit & Cobalt Strike : Use this technique for deploying their backdoors. PowerSploit & Empire : Popular PowerShell frameworks that leverage reflective injection. DoublePulsar : A powerful backdoor linked to nation-state actors, further advancing reflective injection techniques. -------------------------------------------------------------------------------------------------------- I know I know theory theory and few will understand what the theory say. So make thing easy for you lets do practical How to Spot Code Injection in Action Even though attackers are getting smarter, memory forensics still provides excellent ways to uncover their tracks. Command: python3 vol.py -f /mnt/c/Users/Akash\'s/Downloads/solarmarker/solarmarker.img windows.ldrmodules > /mnt/c/Users/Akash\'s/Downloads/ldrmodules.txt Let’s take an example where a DLL is injected into powershell.exe: Using the ldrmodules plugin in Volatility, you might see something like this: Process: powershell.exe (PID 5352) MappedPath: C:\Users\Admin\AppData\Temp\user32.dll Most legitimate DLLs are loaded from C:\Windows\System32 or C:\Program Files. A DLL from a Temp folder is a huge red flag. Another trick is to check the InInit = False list column . If the process itself isn’t listed there, it could indicate malicious tampering. Security tools like MemProcFS  also help by comparing data structures like PEB (Process Environment Block) and VAD (Virtual Address Descriptor) to spot anomalies. ------------------------------------------------------------------------------------------------------------- We will continue the discussion about code injection analysis and understanding through memory forensic in next article as well. Stay connected! ------------------------------------------------------------------------------------------------------------- Wrapping Up Code injection remains one of the most dangerous malware techniques, but with the right tools and approach, you can detect and stop these attacks. By leveraging forensic tools like Volatility, MemProcFS, and live memory scanners , security teams can identify suspicious activity before it escalates into a full-blown compromise. ---------------------------------------------Dean---------------------------------------------------

  • Electron Application Forensics and Analyzing LevelDB in Digital Forensics: A Simple Guide

    Electron is a game-changer in the world of app development. It allows developers to create desktop applications using web technologies like JavaScript, HTML, and CSS. Apps built with Electron look and feel like native applications, but under the hood, they are essentially Chrome-based web apps with a Node.js backend. This gives them access to the file system and operating system, making them powerful and versatile. ----------------------------------------------------------------------------------------------------------- Why Should We Care About Electron in Forensics? From a forensic perspective, Electron apps are interesting for two main reasons: Electron is Chromium-based  – It follows the same structure as Google Chrome, meaning it generates similar artifacts. Each Electron app maintains its own browser-like database  – Unlike traditional browsers, each Electron-based app creates and manages its own Chromium databases. This is crucial because popular apps like Discord, Microsoft Teams, Slack, and WhatsApp Desktop use Electron , and each of them stores user data in separate locations . If you’re investigating a system, chances are you’ll find multiple Electron applications, each leaving behind valuable forensic artifacts. ----------------------------------------------------------------------------------------------------------- Where to Find Electron App Data Identifying an Electron app is easy. Look for Chrome-like folders  in unexpected places, specifically under: %UserProfile%\AppData\Roaming Each Electron app keeps its own set of Chromium-based databases, but unlike standard Chrome browsers, they don’t use the full suite of Chrome databases. Instead, they rely mainly on: Chromium Cache LevelDB databases  (IndexedDB, LocalStorage, SessionStorage) ----------------------------------------------------------------------------------------------------------- Understanding Electron’s Storage Structure 1. Chromium Cache Every Electron app has its own cache, just like Chrome. This cache stores local copies of resources fetched from the web, making it an excellent source of forensic data. Standard forensic tools used to analyze Chrome’s cache will also work here. Expect to find: User-uploaded images Downloaded files JSON-formatted chat messages (especially in apps like Discord) Cached web pages 🔎 Forensic Tip:  Look for cached URLs containing parameters like messages?limit= in Discord. These often contain entire chat histories! 2. LevelDB Databases – The Real Goldmine LevelDB is where Electron apps store persistent  data. It holds everything from user credentials to chat messages, making it a critical artifact for forensic analysis. There are three major types of storage: IndexedDB:  Stores JavaScript objects (often in JSON format). This is where apps keep user data like contacts, messages, and logs. Local Storage:  Stores long-term text-based data. For example, Discord keeps login and username details here, while Microsoft Teams tracks file transfers and message drafts . Session Storage:  Similar to Local Storage but only lasts for the duration of a session. Once the app is closed, this data disappears. What’s Inside a LevelDB Database? LevelDB databases contain multiple files, but the most important ones are: .log files  – Store recent transactions, often containing recoverable deleted data. .ldb files  – Compressed storage files that hold processed data. MANIFEST and CURRENT files  – Metadata files used to manage the database structure. 🔎 Forensic Tip:  .log files are gold! They don’t use compression and often store old deleted data. Check them first! Challenges in Analyzing LevelDB While LevelDB is a treasure trove of data, it’s also incredibly difficult to parse . It uses multiple data formats (ASCII, UTF-8, UTF-16, and binary blobs). Data is compressed using Google’s Snappy algorithm . It employs key sharing , meaning duplicate data is stored only once and referenced elsewhere. These complexities make simple string searches ineffective unless your tool can fully reconstruct the database. How to Analyze Electron Artifacts Despite the challenges, there are tools that can help with Electron forensic investigations: ChromeCacheView  – Extracts cached files and metadata from Chromium-based apps. LevelDB parsers  – There aren’t many, but some tools attempt to dump key/value pairs. Manual Analysis  – Sometimes, it’s best to extract the database files and examine them manually. ----------------------------------------------------------------------------------------------------------- LevelDB Magnet AXIOM now includes a built-in LevelDB viewer, which is a big step forward in forensic investigations. However, it’s essential to understand its strengths and limitations. When you open a LevelDB database from the File System  view in AXIOM, the tool attempts to pull out data from key/value pairs. These pairs usually contain simple text or JSON, making it easier to extract useful information. Investigating Microsoft Teams Data Imagine you’re analyzing a system where Microsoft Teams is installed. You navigate to %UserProfile%\AppData\Roaming\Microsoft\Teams  and find LevelDB files inside. AXIOM’s viewer allows you to browse this data in different formats, such as JSON view  or hex view , and you can even use external tools for deeper analysis. Searching within the database helps filter out irrelevant data, making it easier to spot valuable evidence. However, AXIOM only parses individual  .ldb files and doesn’t process the entire LevelDB database structure, which includes .log files . This means you get a partial view, which isn’t always enough for a complete investigation. ----------------------------------------------------------------------------------------------------------- Going Deeper with RabbitHole One of the best tools for analyzing LevelDB data is RabbitHole, developed by Alex Caithness from CCL Solutions Group. This commercial tool can process LevelDB files along with other data formats like Mozilla LZ4, Snappy, SQLite, Base64, OLE, Plists, and protobufs . RabbitHole’s biggest advantage is its ability to reconstruct LevelDB databases properly. When you open an .ldb or .log file, RabbitHole gathers all related files and presents the data in a structured format. It helps forensic analysts understand how LevelDB is organized, which is crucial for examining Electron applications  like Microsoft Teams. ----------------------------------------------------------------------------------------------------------- Why Analyzing LevelDB is Challenging LevelDB databases are complex and often contain a massive amount of repetitive data. Since they store temporary data in .log files  before moving it to .ldb files , duplication is common. Understanding this structure is key to extracting valuable forensic evidence. ----------------------------------------------------------------------------------------------------------- Other Tools: LevelDB Recon and Custom Parsers Apart from RabbitHole, LevelDB Recon  by Arsenal Recon  is another tool designed to help make sense of LevelDB data. However, every Electron application  stores its data differently, meaning you often need a dedicated parser for each app. Final Thoughts Analyzing LevelDB isn’t straightforward, but with the right tools and approach, you can uncover valuable forensic evidence. AXIOM’s built-in viewer  is a good start, but tools like RabbitHole  provide a much deeper level of analysis. Since Electron applications store data differently , forensic analysts must be flexible and use a mix of tools to extract meaningful insights. If you work in digital forensics, learning how to investigate LevelDB  databases will give you a significant edge when dealing with modern applications like Microsoft Teams, Slack, and Discord . Stay curious, experiment with different tools, and always verify your findings! -------------------------------------------Dean--------------------------------------------------

  • Private Browsing: What Really Gets Left Behind? and Recovering Deleted Browser Artifacts.

    Private Browsing Private browsing modes in popular browsers like Chrome, Edge, and Firefox promise to leave no trace behind. They prevent history, cookies, and other browsing data from being stored on disk. However, you know that nothing is truly hidden. ----------------------------------------------------------------------------------------------------------- How Private Browsing Works When you open a private browsing window, your browser stops saving data to its usual storage locations. Instead of writing history, cache, and cookies to disk, everything remains in system memory (RAM) . The moment you close the browser, this data disappears—at least in theory. Where Private Browsing Leaves Traces Even though private browsing tries to keep your activities hidden, data can still leak in the following ways: 1. Memory-Based Artifacts (RAM Dumps, Pagefile, and Hibernation Files) Since private browsing keeps data in memory, it can still be retrieved if a forensic investigator captures a RAM dump before the system shuts down. The pagefile.sys  and hiberfil.sys  files store virtual memory on disk , potentially containing traces of private browsing sessions. 2. File Opened in External Viewers If you open a downloaded file in an external program like Windows Media Player or Notepad, Windows may log that activity. These logs can appear in LNK (shortcut) files  or Windows Event Logs , revealing that a file was accessed—even if its origin remains unknown. 3. Downloads Still Exist Any file you download while in private mode still gets saved on disk. Although the browser won’t keep a download history, timestamps on the file system can indicate when a file was created. 4. Bookmarks and Private Mode Indicators In Firefox ,*\* bookmarks added in private mode have empty title and last_visit_date fields*/*. In Chrome , the *\* visit_count is set to 0, and the hidden field is set to 1*/* . These subtle indicators can reveal private browsing activity. ----------------------------------------------------------------------------------------------------------- What About Tor Browser? Tor Browser is designed for anonymity and privacy, forcing all activity into private mode. It runs on a modified version of Firefox and stores almost nothing on disk. However, you can still find traces of its use: Execution Artifacts : Tor’s presence can be confirmed through Windows system logs like Prefetch , SRUM , and UserAssist . Tor Installation Folders : If Tor was used, investigators can check for tor.exe and Start Tor Browser.exe in system logs or removable drives. Tor Configuration Files : The State file inside the Tor folder logs version details and the last execution date. ----------------------------------------------------------------------------------------------------------- How Forensic Investigators Recover Private Browsing Data Memory Analysis  – The most effective way to recover private browsing data is through memory forensics. RAM dumps, hiberfil.sys , and pagefile.sys  can contain traces of visited websites. File and Data Carving  – Specialized forensic tools like Magnet Axiom, FTK, and Belkasoft  can extract deleted or hidden artifacts from unallocated disk space. Comparing Memory with Browser Data  – Investigators can cross-reference memory data with existing browser databases to find missing pieces of the puzzle. ----------------------------------------------------------------------------------------------------------- Can You Ever Be Truly Private? Modern browsers are getting better at hiding private browsing data, but forensic are evolving too. The best way to stay private online is to: Use RAM-only browsing solutions  (like Tails OS or live USB operating systems). Avoid downloading files  or opening them in external programs. Understand that your activity might still be stored in memory , even if no history appears in the browser. While private browsing may protect you from casual snooping, it is not foolproof. You have multiple ways to uncover digital footprints—so if you really need privacy, take extra precautions. ----------------------------------------------------------------------------------------------------------- Recovering Deleted Browser Artifacts. Browsers hold a treasure trove of data that can be crucial for digital forensics. But here’s the catch—modern browsers now give users advanced privacy options to delete their traces. This makes our job as investigator a bit trickier. The Challenge of Selective Deletion In the past, when users cleared their browsing history, it was often an all-or-nothing action. If we knew a browser was being used but found little to no artifacts, we could assume data had been deleted and possibly argue data spoliation. Now, browsers like Firefox and Chrome allow users to selectively delete data. For example: Clear Recent History : Users can remove only certain types of data (like history but not cookies) and choose a specific timeframe (last hour, today, etc.). Forget About This Site : This option lets users remove all traces of a specific site, including history, downloads, and bookmarks. We must now look deeper to detect these selective deletions. One trick is to examine databases where records are assigned sequential ID numbers—gaps in the sequence may indicate data was deleted. Firefox’s places.sqlite  database is a great example of where to look for such gaps. Recovering Deleted Browser Data When artifacts are deleted, all hope is not lost! Here are some effective techniques: Check for Unallocated Data : Deleted records often remain in database unallocated space. Specialized tools can extract this data from both ESE (Extensible Storage Engine)  and SQLite  databases. SQLite Recovery : Many browsers store data in SQLite databases, and deleted records can persist for a long time. Some of the best tools for recovering deleted SQLite data include: Sanderson Forensics SQLite Recovery  (paid) Cellebrite and Oxygen Forensic tools  (paid) FQLite  (free) – A powerful open-source tool with a user-friendly interface. ESE Database Carving : Internet Explorer and Edge store browsing data in ESE databases. ESECarve  tool is an excellent option for recovering deleted entries. Filesystem Carving : Even if a database has been wiped, fragments of the data might still exist in filesystem free space. Tools like Magnet Axiom  and Digital Detective Blade  support SQLite carving from free space. Final Thoughts Privacy settings in modern browsers make it easier for users to cover their tracks, but with the right forensic techniques, deleted data can still be recovered. Whether you're analyzing SQLite or ESE databases, using the right tools can make all the difference. As forensic analysts, our job isn’t just about finding artifacts—it’s about understanding how  and why  they were deleted. With these techniques, you’ll be better equipped to uncover the truth hidden beneath the surface. ------------------------------------------------------Dean-------------------------------------

  • Investigating Edge-Based Browsers: A Forensic Guide/Browser analysis Book

    In today's digital age, understanding browser data is essential for cybersecurity investigations and digital forensics. Browsers store a wealth of information that can provide critical insights into user behavior, online activities, and potential security threats. Determine Sites Visited The first step in browser data analysis is to identify the websites visited by the user. This involves reviewing various browser data components: Review History Data : Search Keywords : Identify the keywords searched by the user. Review Transition Info : Check for typed URLs to understand direct user navigation. Audit Preferences File : Look for visited sites and synchronization information stored in the preferences file. Parse Download History : Analyze the list of downloaded files to identify potentially relevant downloads. Audit Bookmarks : Review the list of bookmarked sites to understand user interests and frequently visited websites. Analyze Collections Database : Look for collections of websites saved by the user for future reference. Look for Other Profiles : Investigate if there are multiple user profiles within the browser to uncover additional data sources. Fill in Evidence Gaps Next, it's essential to fill in any evidence gaps by reviewing additional browser data components: Review Cache Domains : Analyze specific file types of interest stored in the browser cache. Review Cookie Domains : Examine cookies to identify user sessions and interactions with websites. Search Session Recovery Files : Look for session recovery files that store data from the user's browsing sessions. Analyze Web Data, Shortcuts, and Network Action Predictor Entries : Review these data components to uncover further evidence of user activities. Audit Browser Extensions : Investigate installed browser extensions to understand their potential impact on user behavior. Snapshots Folder : Check the snapshots folder for saved browser states that can provide additional insights. Review IE History : If Internet Explorer was used, review its history data for relevant information. Deep Dive Analysis For a more thorough investigation, perform a deep dive analysis on specific browser data components: Search Web Storage : Examine web storage for data stored by websites, including local storage and session storage. Review Sync Data Database : Analyze synchronization data to understand how user data is synced across devices. Audit Edge Jumplist Entries : Review the Edge jumplist entries to identify recently accessed websites and files. Carve Deleted SQLite : Recover deleted SQLite database files that may contain valuable information. Review Memory-Based Artifacts : Investigate incognito artifacts and other memory-based data that may provide additional evidence. Targeted Analysis Using Volume Shadow Copies : Utilize volume shadow copies to recover and analyze older versions of browser data. By systematically following these steps, cybersecurity investigators and digital forensic analysts can uncover a comprehensive picture of user activities and potential security threats. Browser data analysis is a powerful tool in the fight against cybercrime, providing invaluable insights that can make or break an investigation. -------------------------------------------------Dean--------------------------------------------------

  • Understanding Microsoft Edge Synchronization: A Forensic Perspective

    In today’s digital world, users expect seamless synchronization across multiple devices. Whether switching between a laptop, tablet, or smartphone, having access to the same bookmarks, browsing history, and saved passwords can be incredibly convenient. Microsoft Edge, built on the Chromium engine, offers synchronization capabilities similar to Google Chrome but with a few notable differences. ----------------------------------------------------------------------------------------------------- How Synchronization Works in Edge Unlike Google Chrome , which automatically encourages users to enable sync upon signing in with a Google account , Edge takes a more subtle approach. While users are encouraged to sign in with their Microsoft account, synchronization is not enabled by default . Once enabled, synchronization collects and stores user artifacts in Microsoft cloud storage. When the user logs into Edge on another device, the sync process automatically retrieves the stored data and updates the browse r. ----------------------------------------------------------------------------------------------------- What Gets Synced? Microsoft Edge synchronization covers a variety of data types, but not everything from the browser is included. Data That Gets Synced: Bookmarks  – Websites saved by the user are synchronized across devices. Preferences  – Some browser settings and configurations are synced. Extensions  – Installed browser extensions are shared among synchronized instances. Passwords  – Saved login credentials can be accessed from different devices. Auto-fill Data  – Form-fill details, such as addresses and payment information, are shared. Collections  – A unique Edge feature allowing users to organize links, images, and notes across devices. ----------------------------------------------------------------------------------------------------- Data That Remains Local (Not Synced): Download History  – Files downloaded on one device do not appear on others. Cookies and Cache  – These remain local for performance and security reasons. Keyword Searches (Keyword_search_terms)  – Typed search queries stay on the originating device. Omnibox Data (Shortcuts Database)  – Search suggestions and shortcuts do not sync. Media Engagement & Zoom Levels  – User preferences for specific sites are not shared. Prefetched Data Analytics (Network Action Predictor)  – This stays on individual devices for better performance. ----------------------------------------------------------------------------------------------------- Examining Edge Synchronization Artifacts From a forensic perspective, i nvestigating Edge synchronization requires a deep dive into the Preferences file , which holds key information about user accounts, sync settings, and timestamps . Last sync time Selected artifacts for synchronization Account information (linked Microsoft accounts) Consent to sync status To e xamine sync actions in real-time, forensic analysts can navigate to edge://sync-internals/, which provides live sync diagnostics, including errors and data transfer logs. ----------------------------------------------------------------------------------------------------- Collections: A Unique Edge Feature One standout feature in Edge is Collections , which allows users to group URLs, images, notes, and snippets of text. However, a significant forensic observation is that Collections cannot be cleared remotely. If a user wants to remove them from a device, they must manually delete each collection on that specific device. Collections data is stored in the collectionsSQLite database, found in the Edge user profile under the Collections  folder. Collection creation timestamps Modification history Source URLs of saved items Item order and content ----------------------------------------------------------------------------------------------------- Security & Privacy Considerations Synchronization introduces both security benefits and risks. On one hand, having access to data across multiple devices enhances user convenience. On the other hand, if an attacker gains access to a Microsoft account, they can retrieve all synced data. Additionally, forensic investigators must note that clearing synced data from one device does not immediately remove it from others unless explicitly deleted. ----------------------------------------------------------------------------------------------------- Conclusion For anyone dealing with Edge synchronization, whether from a security, privacy, or forensic analysis perspective, knowing how data is handled is key to making informed decisions about digital traces and potential vulnerabilities. ----------------------------------------------Dean---------------------------------------------

  • Forensic Analysis of Microsoft Edge Collections and IE Mode

    Microsoft Edge introduced Collections , a unique feature that enhances how users organize and save web content. Unlike traditional bookmarks, Collections allow users to group URLs, images, text snippets, and notes  in a structured way. This makes it an invaluable tool for research, productivity, and forensic investigations. ----------------------------------------------------------------------------------------------------------- Where Collection Data is Stored Edge stores Collection data in a dedicated database  called collectionsSQLite, located within the Edge user profile’s Collections folder . This database contains multiple tables that document: %UserProfile%AppDataLocalMicrosoftEdgeUser Data\CollectionscollectionsSQLite Contents of each Collection Time of creation and modification Order of stored items Data origin (URLs, text, images, and notes) Unlike browser history or cookies, Collections are not cleared via Edge’s ‘Clear Browsing Data’  settings. Users must manually delete individual items or entire Collections , which immediately removes them from the database. ------------------------------------------------------------------------------------------------------------- Breaking Down the Collections Database 1. collections Table (Overview of Collections) This table helps forensic investigators get a big-picture  view of the user’s Collections. id – Unique Collection identifier. date_created – Timestamp of when the Collection was made. date_modified – Last modified timestamp. title – User-assigned Collection name. 2. collections_items_relationship Table (Tracking Item Placement) This table links individual items  to their respective Collections. item_id – Foreign key referencing the items table. parent_id – Links items to a specific Collection. position – The order of items within a Collection. 3. items Table (Detailed Information on Collection Items) This is the most critical  table for forensic analysis as it stores detailed item data. id – Unique identifier for each saved item. date_created – When the item was added. date_modified – Last change timestamp. title – Webpage title or user note title. source – The original URL of the saved item. text_content – Contains extracted webpage text, highlighted content, or user annotations. type – Specifies the type of content (website, text, image, annotation). Since users can save a mix of webpage links, snippets, and personal notes , this database provides valuable context for forensic analysis . How to correlate data b/w them Collection table(copy ID)--> paste id in parent_id column of the table collections_items_relationship and copy the item_id --> paste the id into column id of the items Table ------------------------------------------------------------------------------------------------------------- Edge IE Mode: Bridging Old and New Many businesses still rely on outdated web applications that only function properly in Internet Explorer (IE) . To support them while enhancing security, Edge includes IE Mode , which allows users to access legacy sites using the IE Trident MSHTML engine  inside Edge. How IE Mode Works Disabled by default:  Users or administrators must manually enable it. Controlled via Enterprise Tools:  IT teams can enforce IE Mode for intranet sites via a cached XML list. Security Enhancements:  Unlike standalone Internet Explorer, IE Mode runs in a sandboxed environment  for improved security. IE Mode Artifacts and Forensic Implications IE Mode leaves behind artifacts  in both Edge and IE databases, making it essential for forensic investigations: Edge History Database:  Records visits to IE Mode sites. IE WebCacheV Database: * Stores additional browsing history from the legacy engine. Cache & Cookies:  Found under INetCache and INetCookies, similar to old IE versions. Interestingly, clearing Edge browsing data does not remove IE Mode artifacts . However, Edge provides a ------------------------------------------------------------------------------------------------------------- Edge Privacy Features and Data Deletion Microsoft Edge has significantly enhanced privacy controls compared to Chrome. Some key forensic considerations include: Tracking Prevention:  Users can select from three privacy levels – Basic, Balanced (default), or Strict. The selection is recorded in the Preferences file under enhanced_tracking_prevention. Browsing Data Auto-Clear:  Users can configure Edge to clear specific browsing data categories upon exit , a feature missing in Chrome. Forensic Indicators:  The clear_data_on_exit entry in Edge’s Preferences file logs whether data deletion was enabled and if it was later turned off. Key Takeaway for Forensics If expected browsing history or artifacts are missing, checking Edge privacy settings  can explain why some data was deleted automatically. ------------------------------------------------------------------------------------------------------------ Conclusion by knowing where and how Edge stores data, forensic analysts can extract crucial information that might be overlooked when relying solely on traditional browsing history analysis. 🚀 -----------------------------------------Dean--------------------------------------

  • Forensic Analysis (Investigating downloads, Browsers Bookmark, Extensions) of Microsoft Edge (Chromium-Based)

    Back in 2019, Microsoft replaced its EdgeHTML browser engine with Chromium, the open-source project that powers Google Chrome. By switching to Chromium, Edge shares a common foundation with Chrome, meaning the forensic techniques used for Chrome investigations also apply to Edge. Microsoft isn’t just using Chromium; they’re actively contributing to its development. This means that, as long as Microsoft continues to submit changes to the Chromium project rath er than making Edge-specific modifications, forensic tools built for Chrome will seamlessly work with Edge. ------------------------------------------------------------------------------------------------------- Even Edge and Chrome are nearly identical. Microsoft has introduced a few unique features. One of the most intriguing is IE Mode , which allows users to open a tab using the legacy Internet Explorer engine. This feature is mainly aimed at enterprises that still rely on older web applications. Edge maintains the same folder structure as Chrome %UserProfile%\AppData\Local\Microsoft\Edge\User Data Makes it easy to apply existing Chrome forensic methodologies to Edge without major changes. Similarity b/w edge and chrome artifacts: Browser Artifacts Chrome Edge Internet History History History Cache Files data_#, f_###### data_#, f_###### Cookies/Web Storage Cookies/Local Storage/File System/IndexedDB Cookies/Local Storage/File System/IndexedDB Bookmarks Bookmarks, Bookmarks.bak Bookmarks, Bookmarks.msbak Download History History History Auto-Complete/Form History History, Web Data, Login Data, Network Action Predictor History, Web Data, Login Data, Network Action Predictor Installed Extensions Extensions Folder Extensions Folder Session Recovery Session_, Tabs_ Session_, Tabs_ Synchronization Sync Data Folder Sync Data Folder ------------------------------------------------------------------------------------------------------------- Investigating Downloads in Edge Edge records extensive metadata on file downloads. Records are stored in the History database , specifically in the downloads and download_url_chains tables . Key fields in these tables include: current_path/target_path  – Where the file was saved. start_time/end_time  – Timestamps in Webkit format. state  – Whether the download was successful. state Code Code Description 0 In Progress 1 Complete 2 Cancelled 3 Interrupted 4 Blocked danger_type  – Whether the file was flagged as dangerous. Danger type Code Description 0 Not Dangerous 1 Dangerous 2 Dangerous URL 3 Dangerous Content 4 Maybe Dangerous 5 Uncommon Content 6 User Validated 7 Dangerous Host 8 Potentially Unwanted 11 Password Protected 13/14 Sensitive Content interrupt_reason  – Why a download failed (e.g., flagged as malware). Interrupt reason Code Description 0 None 1 File Failed (generic) 2 Access Denied 3 No Space 5 Filename too long 6 File too large 7 Virus Infected 12 Failed Security Check 20 Network Error 40 User Cancelled 41 User Shutdown 50 Browser Crash opened  – Whether the file was opened via the browser’s download manager. last_access_time  – When the file was last opened via the browser. tab_url & tab_referrer_url  – The page that initiated the download. site_url  – The domain from which the download originated. mime_type  – The type of file downloaded. ------------------------------------------------------------------------------------------------------------- Download Chains and Redirects The download_url_chains  table helps reconstruct the sequence of URLs that led to a file being downloaded . This is useful when a website employs multiple redirects to obscure the true origin of a file, a common tactic in phishing and malware distribution. ------------------------------------------------------------------------------------------------------------- Browser Extensions: The Silent Threat Chromium-based browsers, including Edge, support a vast range of extensions. While this is great for customization, it also opens the door to security risks. Rogue extensions are a growing threat, often used to steal data or install malware. Each i nstalled extension is stored in a uniquely named folder (based on an application GUID) within the Edge user data directory. Inside, the manifest.json file contains key details such as: name  – The extension’s official name. description  – A brief summary of its purpose. version  – The installed version. URL & metadata  – Additional information for identifying the extension. While most forensic tools can extract this data, manually reviewing manifest.json can sometimes reveal hidden or misleading details. ------------------------------------------------------------------------------------------------------------- Tools like Hindsight  can automate this process by parsing manifest.json files and displaying installed extensions in an easy-to-read format. ------------------------------------------------------------------------------------------------------------- Browser Bookmarks Bookmarks don’t always take center stage in forensic tools, yet they hold valuable insights into user behavior. These simple shortcuts, created intentionally by users, can reveal frequently visited websites, saved research, and even traces of malicious activity. Why Bookmarks Matter in Digital Forensics Bookmarks serve as personalized navigation aids, offering key details such as: Website of interest  – The exact URL, including any parameters embedded in it. User profile association  – Identifies which user created the bookmark. Timestamps  – Information on when the bookmark was created or last accessed. Google Chrome & Microsoft Edge Chrome and Edge (Chromium-based) store bookmarks in a JSON file  named Bookmarks  (without an extension), making it easy to parse. Additionally, backup versions (Bookmarks.bak or Bookmarks.msbak in Edge) , preserving previous states. Output Bookmark date_added : Uses the Webkit timestamp format. source : Indicates how the bookmark was created (e.g., user-added or imported). url : The saved web address. Forensic Considerations: Look for backup files  (Bookmarks.bak or Bookmarks.msbak) to retrieve deleted bookmarks. Investigate archived versions  of bookmarks stored in snapshot folders: %UserProfile%\AppData\Local\Google\Chrome\User Data\Snapshots %UserProfile%\AppData\Local\Microsoft\Edge\User Data\Snapshots If a user has cleared bookmarks, backup versions might still hold past evidence. Bookmark for other browsers: Browser Bookmark Location(s) Chrome Bookmarks, Bookmarks.bak Edge Bookmarks, Bookmarks.msbak Internet Explorer %UserProfile%\Favorites\*.url Firefox places.sqlite, bookmarks-.jsonlz4 ------------------------------------------------------------------------------------------------------------ Detecting Malicious Bookmarks Bookmarks can sometimes be manipulated by malware, injecting rogue sites without user knowledge. Forensic investigators should look for: Unusually high bookmark creation activity in a short period  (indicating automation or script-based bookmark injection). Bookmarks pointing to phishing pages or known malware-hosting domains. Mismatch between user activity and bookmarks  (e.g., a user primarily visiting tech forums but having multiple financial scam bookmarks). How to Validate Suspicious Bookmarks: Cross-check browser history – Was the site actually visited? Scan the system for malware – Look for persistence mechanisms. Review antivirus logs – Any detections related to browser activity? Final Thoughts Forensic analysis isn’t just about looking at history logs—it’s about understanding user behavior  through every available artifact. And in that regard, bookmarks offer a surprisingly rich source of evidence. ----------------------------------------Dean-------------------------------------------

  • 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-----------------------------------------------------

bottom of page