brograb

package module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2021 License: MIT Imports: 1 Imported by: 0

README

BroGrab

Go Reference

brograb is an open-source Go package that help your go modules fetch and grab browser data (passwords, bookmarks, cookies, history etc...) from all the common browsers. Our goal is to create cross platform API to fetch and decrypt the browser data.

This project is heavily inspire by HackBrowserData

Statement: This package is limited to security research only, and the user assumes all legal and related responsibilities arising from its use! The author assumes no legal responsibility!

Installing

To start using BroGrab, run go get:

$ go get -u github.com/sho0pi/brograb

Example

To iterate on Chrome passwords is simple as:

package main

import (
	"github.com/sho0pi/brograb/passwords"
	"github.com/sho0pi/brograb/browseruttils"
)

func main() {
	// Gets all the available browser profiles
	profiles, err := browserutils.GetChromiumProfileDirs()

	grabber, err := passwords.NewChromeGrabber(profiles[0])

	// Using sql like API
	if grabber.Next() {
		var password PasswordEntry
		err := grabber.Scan(&password)
		println(password)
	}

	// Using concurrency and go channels
	for password := grabber.Iterate() {
		println(password.URL, password.Username, password.Password)
	}
}

TODO

  • Utilities to get browser profile.
  • Option to grab passwords.
  • Option to grab bookmarks.
  • Option to grab history.
  • Option to grab cookies.
  • Option to grab credit cards.
  • Support for Firefox.
  • Create CLI??
  • Support for IE?
  • Support for Safari?

Documentation

Overview

Package brograb provides access to browser data. The main goal of the module is to provide a Cross-Platform access to browser data such as: passwords and cookies from all the common browsers.

Index

Constants

This section is empty.

Variables

View Source
var (
	BadDestFile = errors.New("bad destination type")
)

Functions

This section is empty.

Types

type Grabber

type Grabber interface {

	// Next prepares the next fetch data for reading with the Scan method. It
	// returns true on success, or false if there is no next result row or an error
	// happened while preparing it. Err should be consulted to distinguish between
	// the two cases.
	//
	// Every call to Scan, even the first one, must be preceded by a call to Next.
	Next() bool

	// Scan copies the current fetched data into the interface pointed at
	// by dest.
	Scan(dest interface{}) error

	// Err returns the error, if any, that was encountered during iteration.
	Err() error

	// Close stops the iteration, and closes all open databases, connections,
	// and files used to fetch the browser data.
	Close() error
}

Grabber is a basic data grabbing interface. Use Next and Scan to fetch the next grabbing data.

Directories

Path Synopsis
Package bookmarks lets you fetch saved bookmarks from all common browsers databases.
Package bookmarks lets you fetch saved bookmarks from all common browsers databases.
Package browserutils implements utility functions to help with the brograb package.
Package browserutils implements utility functions to help with the brograb package.
Package history lets you fetch history data from all common browsers databases.
Package history lets you fetch history data from all common browsers databases.
Package passwords lets you fetch passwords from all common browsers databases.
Package passwords lets you fetch passwords from all common browsers databases.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL