Convert Figma logo to code with AI

moonD4rk logoHackBrowserData

Extract and decrypt browser data, supporting multiple data types, runnable on various operating systems (macOS, Windows, Linux).

10,634
1,538
10,634
60

Top Related Projects

Firefox Decrypt is a tool to extract passwords from Mozilla (Firefox™, Waterfox™, Thunderbird®, SeaMonkey®) profiles

Web browser forensics for Google Chrome/Chromium

Quick Overview

HackBrowserData is an open-source tool designed to decrypt and extract sensitive data from web browsers. It supports multiple browsers across different operating systems, allowing users to recover passwords, cookies, bookmarks, and history.

Pros

  • Cross-platform support (Windows, macOS, Linux)
  • Supports multiple popular browsers (Chrome, Edge, Firefox, etc.)
  • Exports data in various formats (CSV, JSON, SQLite3)
  • Active development and regular updates

Cons

  • Potential for misuse in unethical or illegal activities
  • May be flagged by antivirus software as a potential threat
  • Requires elevated privileges to access browser data
  • Limited documentation for advanced usage scenarios

Code Examples

// Initialize a new browser instance
browser := core.NewBrowser("chrome", "", true)

// Decrypt and retrieve passwords
passwords, err := browser.GetPasswords()
if err != nil {
    log.Fatal(err)
}

// Print decrypted passwords
for _, password := range passwords {
    fmt.Printf("URL: %s, Username: %s, Password: %s\n", password.URL, password.Username, password.Password)
}
// Export browser data to JSON file
exporter := export.NewJSONExporter("output.json")
err := exporter.Export(browser.GetAllData())
if err != nil {
    log.Fatal(err)
}
// Retrieve and print browser history
history, err := browser.GetHistory()
if err != nil {
    log.Fatal(err)
}

for _, entry := range history {
    fmt.Printf("Title: %s, URL: %s, Visit Count: %d\n", entry.Title, entry.URL, entry.VisitCount)
}

Getting Started

To use HackBrowserData, follow these steps:

  1. Install Go (version 1.19 or later)
  2. Clone the repository:
    git clone https://github.com/moonD4rk/HackBrowserData.git
    
  3. Build the project:
    cd HackBrowserData
    go build
    
  4. Run the tool:
    ./hack-browser-data
    

For more detailed usage instructions and options, refer to the project's README file on GitHub.

Competitor Comparisons

Firefox Decrypt is a tool to extract passwords from Mozilla (Firefox™, Waterfox™, Thunderbird®, SeaMonkey®) profiles

Pros of firefox_decrypt

  • Focused specifically on Firefox, providing deep expertise for this browser
  • Lightweight and simple to use, with minimal dependencies
  • Supports multiple Firefox-based browsers (e.g., Thunderbird, SeaMonkey)

Cons of firefox_decrypt

  • Limited to Firefox and related browsers, unlike HackBrowserData's multi-browser support
  • Lacks a graphical user interface, which HackBrowserData provides
  • Does not offer additional features like cookie extraction or history retrieval

Code Comparison

firefox_decrypt:

def decrypt_passwords(profile, password=None):
    """Decrypt requested profile using the provided password"""
    if password:
        credentials.key = credentials.key3_decrypt(password)

    logins = credentials.decrypt_passwords(profile)
    return logins

HackBrowserData:

func DecryptChromePassword(encryptPass []byte) (string, error) {
    if len(encryptPass) > 3 && bytes.Equal(encryptPass[:3], []byte("v10")) {
        return decryptAES256GCM(encryptPass[3:])
    }
    return string(encryptPass), nil
}

Both projects focus on decrypting browser data, but firefox_decrypt is tailored specifically for Firefox-based browsers, while HackBrowserData offers a more comprehensive solution for multiple browsers. The code snippets demonstrate the different approaches and languages used in each project.

Web browser forensics for Google Chrome/Chromium

Pros of Hindsight

  • More comprehensive browser artifact analysis, including Chrome, Firefox, and Safari
  • Supports multiple operating systems (Windows, macOS, Linux)
  • Offers a graphical user interface for easier use by non-technical users

Cons of Hindsight

  • Slower performance compared to HackBrowserData
  • Requires more system resources due to its comprehensive analysis
  • Less frequent updates and maintenance

Code Comparison

Hindsight (Python):

def get_browser_artifacts(browser_type, profile_path):
    if browser_type == 'chrome':
        return get_chrome_artifacts(profile_path)
    elif browser_type == 'firefox':
        return get_firefox_artifacts(profile_path)
    # ... other browser types

HackBrowserData (Go):

func GetBrowserData(browser string) ([]Data, error) {
    switch browser {
    case "chrome":
        return getChromeData()
    case "edge":
        return getEdgeData()
    // ... other browser cases
    }
}

Both projects aim to extract browser data, but Hindsight offers a more comprehensive analysis across multiple browsers and operating systems. HackBrowserData, written in Go, likely provides better performance but with a more focused scope on specific browsers. The code snippets illustrate the different approaches to handling multiple browser types, with Hindsight using conditional statements and HackBrowserData utilizing a switch statement.

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

hack-browser-data logo

HackBrowserData

Lint Build Release Tests Coverage Status

HackBrowserData is a command-line tool for decrypting and exporting browser data (passwords, history, cookies, bookmarks, credit cards, download history, localStorage and extensions) from the browser. It supports the most popular browsers on the market and runs on Windows, macOS and Linux.

Disclaimer: This tool is only intended for security research. Users are responsible for all legal and related liabilities resulting from the use of this tool. The original author does not assume any legal responsibility.

Supported Browser

Windows

BrowserPasswordCookieBookmarkHistory
Google Chrome✅✅✅✅
Google Chrome Beta✅✅✅✅
Chromium✅✅✅✅
Microsoft Edge✅✅✅✅
360 Speed✅✅✅✅
QQ✅✅✅✅
Brave✅✅✅✅
Opera✅✅✅✅
OperaGX✅✅✅✅
Vivaldi✅✅✅✅
Yandex✅✅✅✅
CocCoc✅✅✅✅
Firefox✅✅✅✅
Firefox Beta✅✅✅✅
Firefox Dev✅✅✅✅
Firefox ESR✅✅✅✅
Firefox Nightly✅✅✅✅
Internet Explorer❌❌❌❌

MacOS

Based on Apple's security policy, some browsers require a current user password to decrypt.

BrowserPasswordCookieBookmarkHistory
Google Chrome✅✅✅✅
Google Chrome Beta✅✅✅✅
Chromium✅✅✅✅
Microsoft Edge✅✅✅✅
Brave✅✅✅✅
Opera✅✅✅✅
OperaGX✅✅✅✅
Vivaldi✅✅✅✅
CocCoc✅✅✅✅
Yandex✅✅✅✅
Arc✅✅✅✅
Firefox✅✅✅✅
Firefox Beta✅✅✅✅
Firefox Dev✅✅✅✅
Firefox ESR✅✅✅✅
Firefox Nightly✅✅✅✅
Safari❌❌❌❌

Linux

BrowserPasswordCookieBookmarkHistory
Google Chrome✅✅✅✅
Google Chrome Beta✅✅✅✅
Chromium✅✅✅✅
Microsoft Edge Dev✅✅✅✅
Brave✅✅✅✅
Opera✅✅✅✅
Vivaldi✅✅✅✅
Firefox✅✅✅✅
Firefox Beta✅✅✅✅
Firefox Dev✅✅✅✅
Firefox ESR✅✅✅✅
Firefox Nightly✅✅✅✅

Getting started

Install

Installation of HackBrowserData is dead-simple, just download the release for your system and run the binary.

In some situations, this security tool will be treated as a virus by Windows Defender or other antivirus software and can not be executed. The code is all open source, you can modify and compile by yourself.

Building from source

only support go 1.21+ with go generics and log/slog standard library.

$ git clone https://github.com/moonD4rk/HackBrowserData

$ cd HackBrowserData/cmd/hack-browser-data

$ go build

Cross compile

Here's an example of use macOS building for Windows and Linux

For Windows

GOOS=windows GOARCH=amd64 go build

For Linux

GOOS=linux GOARCH=amd64 go build

Run

You can double-click to run, or use command line.

PS C:\Users\moond4rk\Desktop> .\hack-browser-data.exe -h
NAME:
   hack-browser-data - Export passwords|bookmarks|cookies|history|credit cards|download history|localStorage|extensions from browser
USAGE:
   [hack-browser-data -b chrome -f json --dir results --zip]
   Export all browsing data (passwords/cookies/history/bookmarks) from browser
   Github Link: https://github.com/moonD4rk/HackBrowserData
VERSION:
   0.4.6

GLOBAL OPTIONS:
   --verbose, --vv                   verbose (default: false)
   --compress, --zip                 compress result to zip (default: false)
   --browser value, -b value         available browsers: all|360|brave|chrome|chrome-beta|chromium|coccoc|dc|edge|firefox|opera|opera-gx|qq|sogou|vivaldi|yandex (default: "all")
   --results-dir value, --dir value  export dir (default: "results")
   --format value, -f value          output format: csv|json (default: "csv")
   --profile-path value, -p value    custom profile dir path, get with chrome://version
   --full-export, --full             is export full browsing data (default: true)
   --help, -h                        show help
   --version, -v                     print the version

For example, the following is an automatic scan of the browser on the current computer, outputting the decryption results in JSON format and compressing as zip.

PS C:\Users\moond4rk\Desktop> .\hack-browser-data.exe -b all -f json --dir results --zip

PS C:\Users\moond4rk\Desktop> ls -l .\results\
    Directory: C:\Users\moond4rk\Desktop\results
    
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         7/15/2024  10:55 PM          44982 results.zip

Run with custom browser profile folder

If you want to export data from a custom browser profile folder, you can use the -p parameter to specify the path of the browser profile folder. PS: use double quotes to wrap the path.

PS C:\Users\moond4rk\Desktop> .\hack-browser-data.exe -b chrome -p "C:\Users\User\AppData\Local\Microsoft\Edge\User Data\Default"

[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_creditcard.csv success  
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_bookmark.csv success  
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_cookie.csv success  
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_history.csv success  
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_download.csv success  
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_password.csv success  

Contributing

We welcome and appreciate any contributions made by the community (GitHub issues/pull requests, email feedback, etc.).

Please see the Contribution Guide before contributing.

Contributors

Stargazers over time

Star History Chart

404StarLink 2.0 - Galaxy

HackBrowserData is a part of 404Team StarLink-Galaxy, if you have any questions about HackBrowserData or want to find a partner to communicate with,please refer to the Starlink group.

JetBrains OS licenses

HackBrowserData had been being developed with GoLand IDE under the free JetBrains Open Source license(s) granted by JetBrains s.r.o., hence I would like to express my thanks here.