Convert Figma logo to code with AI

obsidianforensics logohindsight

Web browser forensics for Google Chrome/Chromium

1,057
137
1,057
23

Top Related Projects

4,747

GRR Rapid Response: remote live forensics for incident response

1,719

Super timeline all the things

2,390

Autopsy® is a digital forensics platform and graphical interface to The Sleuth Kit® and other digital forensics tools. It can be used by law enforcement, military, and corporate examiners to investigate what happened on a computer. You can even use it to recover photos from your camera's memory card.

An advanced memory forensics framework

Collaborative Incident Response platform

Quick Overview

Hindsight is an open-source web browser forensics tool designed to analyze Chrome, Chromium, and Edge browser artifacts. It parses various browser data sources, including history, downloads, cache, and preferences, to provide investigators with a comprehensive view of user browsing activities.

Pros

  • Supports multiple Chromium-based browsers (Chrome, Edge, Brave, etc.)
  • Offers both command-line and GUI interfaces for flexibility
  • Generates reports in various formats (SQLite, Excel, JSON)
  • Actively maintained and regularly updated

Cons

  • Limited to Chromium-based browsers (no support for Firefox or Safari)
  • Requires Python environment setup, which may be challenging for non-technical users
  • Performance may slow down with large datasets
  • Some advanced features require additional dependencies

Code Examples

# Initialize Hindsight with a Chrome profile
from hindsight import hs
chrome_profile = r"C:\Users\username\AppData\Local\Google\Chrome\User Data\Default"
analysis = hs.Hindsight(chrome_profile)

# Parse browser artifacts
analysis.process()

# Generate a report
analysis.generate_excel("browser_report.xlsx")
# Custom plugin example
from hindsight.plugins import Plugin

class MyCustomPlugin(Plugin):
    def __init__(self):
        super().__init__()
        self.name = "My Custom Plugin"
        self.description = "Demonstrates a custom plugin"

    def parse(self):
        # Custom parsing logic here
        pass

# Register the custom plugin
hs.register_plugin(MyCustomPlugin)
# Filtering results
from hindsight import filters

# Create a date range filter
date_filter = filters.DateRangeFilter("2023-01-01", "2023-12-31")

# Apply filter to analysis
filtered_results = analysis.filter_results(date_filter)

Getting Started

  1. Install Hindsight:

    pip install hindsight
    
  2. Run Hindsight from the command line:

    hindsight -i "C:\path\to\browser\profile" -o "C:\path\to\output"
    
  3. For GUI usage, run:

    hindsight-gui
    
  4. To use Hindsight as a library in your Python script:

    from hindsight import hs
    analysis = hs.Hindsight("path/to/profile")
    analysis.process()
    analysis.generate_excel("output.xlsx")
    

Competitor Comparisons

4,747

GRR Rapid Response: remote live forensics for incident response

Pros of GRR

  • Comprehensive remote live forensics and incident response platform
  • Scalable architecture for enterprise-level deployments
  • Supports multiple operating systems (Windows, macOS, Linux)

Cons of GRR

  • Steeper learning curve and more complex setup
  • Requires significant infrastructure for large-scale deployments
  • May be overkill for smaller investigations or single-machine analysis

Code Comparison

GRR (Python):

from grr_response_client import client_startup
from grr_response_client.client_actions import standard

class ClientInit(standard.ClientInit):
  def Run(self, args):
    # Client initialization code

Hindsight (Python):

from hindsight import analysis
from hindsight.analysis import chrome

def parse_chrome_history(file_path):
    # Chrome history parsing code

Summary

GRR is a powerful, scalable remote forensics platform suitable for large organizations, while Hindsight focuses specifically on browser forensics, particularly for Chrome. GRR offers broader capabilities but requires more resources and setup, whereas Hindsight is more specialized and easier to use for its specific purpose.

1,719

Super timeline all the things

Pros of Plaso

  • Broader scope, supporting multiple operating systems and data sources
  • More extensive parsing capabilities for various log formats
  • Active development with frequent updates and contributions

Cons of Plaso

  • Steeper learning curve due to its complexity
  • Requires more system resources for processing large datasets
  • Installation process can be more involved

Code Comparison

Plaso (parsing a file):

parser = winreg.WinRegistryParser()
storage_writer = storage_factory.CreateStorageWriter(storage_format, path)
knowledge_base = knowledge_base_object.KnowledgeBase()
parser_mediator = mediator.ParserMediator(storage_writer, knowledge_base)
parser.Parse(parser_mediator)

Hindsight (parsing Chrome history):

input_path = r'C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default'
chrome = Chrome(input_path)
parsed_artifacts = chrome.analyze_artifacts()

Summary

Plaso is a more comprehensive tool for digital forensics, offering support for various data sources and operating systems. It has a steeper learning curve but provides extensive parsing capabilities. Hindsight, on the other hand, focuses specifically on Chrome and Chromium-based browser forensics, making it more user-friendly for this specific use case but limited in scope compared to Plaso.

2,390

Autopsy® is a digital forensics platform and graphical interface to The Sleuth Kit® and other digital forensics tools. It can be used by law enforcement, military, and corporate examiners to investigate what happened on a computer. You can even use it to recover photos from your camera's memory card.

Pros of Autopsy

  • Comprehensive digital forensics platform with a wide range of features
  • User-friendly GUI for easier navigation and analysis
  • Supports multiple file systems and disk image formats

Cons of Autopsy

  • Steeper learning curve due to its extensive feature set
  • Requires more system resources for processing large datasets
  • May be overkill for simple browser history analysis tasks

Code Comparison

Hindsight (Python):

def parse_chrome_history(history_path):
    conn = sqlite3.connect(history_path)
    cursor = conn.cursor()
    cursor.execute("SELECT url, title, last_visit_time FROM urls")
    return cursor.fetchall()

Autopsy (Java):

public class ChromeHistoryExtractor extends FileIngestModuleAdapter {
    @Override
    public ProcessResult process(AbstractFile file) {
        String query = "SELECT url, title, last_visit_time FROM urls";
        // Execute query and process results
    }
}

Both projects handle browser history analysis, but Autopsy offers a more comprehensive approach within a larger digital forensics framework, while Hindsight focuses specifically on browser artifacts with a simpler, Python-based implementation.

An advanced memory forensics framework

Pros of Volatility

  • More comprehensive memory analysis capabilities, supporting a wide range of operating systems and file formats
  • Larger community and extensive plugin ecosystem
  • Robust command-line interface for advanced users and automation

Cons of Volatility

  • Steeper learning curve, especially for beginners
  • Requires more system resources and processing time for complex analyses
  • Less focused on browser forensics compared to Hindsight

Code Comparison

Volatility command example:

python vol.py -f memory.dump --profile=Win10x64_18362 pslist

Hindsight usage example:

python hindsight.py -i "C:\Users\user\AppData\Local\Google\Chrome\User Data\Default" -o output_folder

While Volatility focuses on memory analysis across various systems, Hindsight specializes in Chrome/Chromium browser forensics. Volatility offers a broader scope of analysis but requires more expertise, whereas Hindsight provides a more targeted approach for browser-specific investigations with a simpler interface.

Collaborative Incident Response platform

Pros of iris-web

  • More comprehensive digital forensics and incident response platform
  • Web-based interface for collaborative investigations
  • Supports multiple case management and evidence types

Cons of iris-web

  • More complex setup and configuration
  • Steeper learning curve for new users
  • Requires additional infrastructure (database, web server)

Code comparison

Hindsight (Python):

def get_browser_name(browser_path):
    if not browser_path:
        return None
    browser_name_lower = os.path.basename(browser_path).lower()
    if 'chrome' in browser_name_lower:
        return 'Chrome'
    elif 'firefox' in browser_name_lower:
        return 'Firefox'
    # ... more browser checks

iris-web (JavaScript):

function getBrowserInfo(userAgent) {
  const browsers = [
    { name: 'Chrome', regex: /Chrome\/(\d+)/ },
    { name: 'Firefox', regex: /Firefox\/(\d+)/ },
    // ... more browser checks
  ];
  for (const browser of browsers) {
    const match = userAgent.match(browser.regex);
    if (match) return { name: browser.name, version: match[1] };
  }
  return { name: 'Unknown', version: 'N/A' };
}

Both projects handle browser detection, but iris-web's approach is more flexible and easier to extend for web-based applications.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Hindsight

Internet history forensics for Google Chrome/Chromium

Hindsight is a free tool for analyzing web artifacts. It started with the browsing history of the Google Chrome web browser and has expanded to support other Chromium-based applications (with more to come!). Hindsight can parse a number of different types of web artifacts, including URLs, download history, cache records, bookmarks, autofill records, saved passwords, preferences, browser extensions, HTTP cookies, and Local Storage records (HTML5 cookies). Once the data is extracted from each file, it is correlated with data from other history files and placed in a timeline.

It has a simple web UI - to start it, run "hindsight_gui.py" (or on Windows, the packaged "hindsight_gui.exe") and visit http://localhost:8080 in a browser:

The only field you are required to complete is "Profile Path". This is the location of the Chrome profile you want to analyze (the default profile paths for different OSes is listed at the bottom of this page). Click "Run" and you'll be taken to the results page in where you can save the results to a spreadsheet (or other formats).

Manual Installation

pip install pyhindsight
curl -sSL https://raw.githubusercontent.com/obsidianforensics/hindsight/master/install-js.sh | sh

Command Line

There also is command line version of Hindsight - hindsight.py or hindsight.exe. The user guide in the documentation folder covers many topics, but the info below should get you started with the command line version:

Example usage: > C:\hindsight.py -i "C:\Users\Ryan\AppData\Local\Google\Chrome\User Data\Default" -o test_case

Command Line Options:

OptionDescription
-i or --inputPath to the Chrome(ium) "Default" directory
-o or --outputName of the output file (without extension)
-f or --formatOutput format (default is XLSX, other options are SQLite and JSONL)
-c or --cachePath to the cache directory; only needed if the directory is outside the given "input" directory. Mac systems are setup this way by default.
-b or --browser_typeThe type of browser the input files belong to. Supported options are Chrome (default) and Brave.
-l or --logLocation Hindsight should log to (will append if exists)
-h or --helpShows these options and the default Chrome data locations
-t or --timezoneDisplay timezone for the timestamps in XLSX output

Default Profile Paths

The Chrome default profile folder default locations are:

  • WinXP: [userdir]\Local Settings\Application Data\Google\Chrome\User Data\Default
  • Vista/7/8/10: [userdir]\AppData\Local\Google\Chrome\User Data\Default
  • Linux: [userdir]/.config/google-chrome/Default
  • OS X: [userdir]/Library/Application Support/Google/Chrome/Default
  • iOS: \Applications\com.google.chrome.ios\Library\Application Support\Google\Chrome\Default
  • Android: /userdata/data/com.android.chrome/app_chrome/Default
  • CrOS: \home\user\<GUID>

Feature Requests

Please file an issue if you have an idea for a new feature (or spotted something broken).