HackBrowserData/README.md

211 lines
11 KiB
Markdown
Raw Normal View History

2022-04-25 10:24:49 +00:00
<div align="center">
<img src="LOGO.png" alt="hack-browser-data logo" width="440px" />
2022-04-25 10:27:38 +00:00
</div>
2020-06-19 12:43:31 +00:00
# HackBrowserData
[![Lint](https://github.com/moonD4rk/HackBrowserData/actions/workflows/lint.yml/badge.svg)](https://github.com/moonD4rk/HackBrowserData/actions/workflows/lint.yml) [![build](https://github.com/moonD4rk/HackBrowserData/actions/workflows/build.yml/badge.svg)](https://github.com/moonD4rk/HackBrowserData/actions/workflows/build.yml) [![Release](https://github.com/moonD4rk/HackBrowserData/actions/workflows/release.yml/badge.svg)](https://github.com/moonD4rk/HackBrowserData/actions/workflows/release.yml) [![unit tests](https://github.com/moonD4rk/HackBrowserData/actions/workflows/unittest.yml/badge.svg)](https://github.com/moonD4rk/HackBrowserData/actions/workflows/unittest.yml) [![Coverage Status](https://coveralls.io/repos/github/moonD4rk/HackBrowserData/badge.svg)](https://coveralls.io/github/moonD4rk/HackBrowserData)
2020-10-26 04:39:44 +00:00
2023-03-11 13:07:38 +00:00
[中文说明](https://github.com/moonD4rk/HackBrowserData/blob/master/README_ZH.md)
2020-07-23 06:45:25 +00:00
2023-07-27 13:08:07 +00:00
`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.
2020-06-19 12:43:31 +00:00
2023-03-11 13:07:38 +00:00
> 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.
2020-10-22 05:20:06 +00:00
2021-02-10 16:36:50 +00:00
## Supported Browser
2020-06-25 06:36:59 +00:00
2021-02-10 16:36:50 +00:00
### Windows
2023-03-11 13:07:38 +00:00
| Browser | Password | Cookie | Bookmark | History |
|:-------------------|:--------:|:------:|:--------:|:-------:|
| 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 | ❌ | ❌ | ❌ | ❌ |
2020-07-09 08:49:35 +00:00
2020-12-03 00:52:18 +00:00
2021-02-10 16:36:50 +00:00
### MacOS
2020-07-09 08:49:35 +00:00
2020-09-28 09:42:31 +00:00
Based on Apple's security policy, some browsers **require a current user password** to decrypt.
2020-07-09 08:49:35 +00:00
2023-03-11 13:07:38 +00:00
| Browser | Password | Cookie | Bookmark | History |
|:-------------------|:--------:|:------:|:--------:|:-------:|
| Google Chrome | ✅ | ✅ | ✅ | ✅ |
| Google Chrome Beta | ✅ | ✅ | ✅ | ✅ |
| Chromium | ✅ | ✅ | ✅ | ✅ |
| Microsoft Edge | ✅ | ✅ | ✅ | ✅ |
| Brave | ✅ | ✅ | ✅ | ✅ |
| Opera | ✅ | ✅ | ✅ | ✅ |
| OperaGX | ✅ | ✅ | ✅ | ✅ |
| Vivaldi | ✅ | ✅ | ✅ | ✅ |
| CocCoc | ✅ | ✅ | ✅ | ✅ |
| Yandex | ✅ | ✅ | ✅ | ✅ |
| Arc | ✅ | ✅ | ✅ | ✅ |
2023-03-11 13:07:38 +00:00
| Firefox | ✅ | ✅ | ✅ | ✅ |
| Firefox Beta | ✅ | ✅ | ✅ | ✅ |
| Firefox Dev | ✅ | ✅ | ✅ | ✅ |
| Firefox ESR | ✅ | ✅ | ✅ | ✅ |
| Firefox Nightly | ✅ | ✅ | ✅ | ✅ |
| Safari | ❌ | ❌ | ❌ | ❌ |
2020-07-09 08:49:35 +00:00
2021-02-10 16:36:50 +00:00
### Linux
2020-07-09 08:49:35 +00:00
2023-03-11 13:07:38 +00:00
| Browser | Password | Cookie | Bookmark | History |
|:-------------------|:--------:|:------:|:--------:|:-------:|
| Google Chrome | ✅ | ✅ | ✅ | ✅ |
| Google Chrome Beta | ✅ | ✅ | ✅ | ✅ |
| Chromium | ✅ | ✅ | ✅ | ✅ |
| Microsoft Edge Dev | ✅ | ✅ | ✅ | ✅ |
| Brave | ✅ | ✅ | ✅ | ✅ |
| Opera | ✅ | ✅ | ✅ | ✅ |
| Vivaldi | ✅ | ✅ | ✅ | ✅ |
| Firefox | ✅ | ✅ | ✅ | ✅ |
| Firefox Beta | ✅ | ✅ | ✅ | ✅ |
| Firefox Dev | ✅ | ✅ | ✅ | ✅ |
| Firefox ESR | ✅ | ✅ | ✅ | ✅ |
| Firefox Nightly | ✅ | ✅ | ✅ | ✅ |
2021-02-10 16:36:50 +00:00
2020-07-09 08:49:35 +00:00
2021-02-10 16:36:50 +00:00
## Getting started
2020-06-30 04:01:00 +00:00
2020-07-23 06:42:32 +00:00
### Install
2020-06-30 04:01:00 +00:00
2021-12-10 03:41:17 +00:00
Installation of `HackBrowserData` is dead-simple, just download [the release for your system](https://github.com/moonD4rk/HackBrowserData/releases) and run the binary.
2020-06-30 04:01:00 +00:00
2021-07-04 09:34:26 +00:00
> 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.
2020-11-07 17:36:18 +00:00
2021-02-10 16:36:50 +00:00
### Building from source
2020-06-25 06:36:59 +00:00
feat: refactor logger to standard library (#280) * refactor: Refactor logging to use structured slog package. - Remove `gookit` dependencies from `go.sum` - Improve error logging in multiple packages by replacing `log` with `log/slog` - Update dependencies in `go.mod` - Add new `logger` package with test cases - Refactor logging statements in multiple packages to use `slog` instead of `log` - Change logging format and level in multiple packages for better structured logging * refactor: Refactor logger package and add handler interface - Refactor logger package - Rename `defaultHandler` to `DefaultLogger` - Move `ReplaceAttr` function to `Logger` struct - Implement `LogHandler` struct with `slog.Handler` interface - Add new `Logger` methods for configuration - Add `SetMaxLevel`, `SetJSONHandler`, `SetTextHandler`, `SetOutput`, `SetVerbose`, `SetReplaceAttrFunc` - Add verbose flag to `cmd/hack-browser-data/main.go` to increase logging * refactor: Refactor logger package to use simplified handler initialization. - Refactor logger package to use Default instead of DefaultLogger - Update `NewHandler` method to correctly reference `Default` logger and simplify handler initialization - Update tests for logger to reflect changes in Default usage - Rename `DefaultLogger` to `Default` and update comments to better reflect its purpose - Update function calls in hack-browser-data main.go to reflect logger package updates * refactor: Refactor logging in Chromium implementation Refactor logging and simplify decryption in chromium files - Replace logger package import with shared slog package - Change logging messages to use slog instead of logger - Simplify decryption process by removing first 5 characters of encrypted key - Refactor error logging in linux file to use shared slog package - Replace string concatenation with formatted string in linux error message
2024-01-16 06:06:13 +00:00
only support `go 1.21+` with go generics and log/slog standard library.
2020-07-10 03:29:03 +00:00
2020-06-25 06:47:46 +00:00
```bash
2022-04-17 18:07:31 +00:00
$ git clone https://github.com/moonD4rk/HackBrowserData
2020-06-25 06:47:46 +00:00
2022-04-17 18:07:31 +00:00
$ cd HackBrowserData/cmd/hack-browser-data
2020-07-10 03:29:03 +00:00
2022-04-17 18:07:31 +00:00
$ CGO_ENABLED=1 go build
2020-06-25 06:47:46 +00:00
```
2020-06-25 06:36:59 +00:00
2021-02-10 16:36:50 +00:00
### Cross compile
2020-09-28 09:42:31 +00:00
2020-10-26 04:39:44 +00:00
Need install target OS's `gcc` library, here's an example of use `Mac` building for `Windows` and `Linux`
2020-09-28 09:42:31 +00:00
2021-02-10 16:36:50 +00:00
#### For Windows
2020-06-25 06:36:59 +00:00
2020-06-28 13:17:28 +00:00
```shell
2020-09-28 09:42:31 +00:00
brew install mingw-w64
2022-04-19 11:35:30 +00:00
CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build
2020-09-28 09:42:31 +00:00
```
2021-02-10 16:36:50 +00:00
#### For Linux
2020-09-28 09:42:31 +00:00
````shell
brew install FiloSottile/musl-cross/musl-cross
CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++ GOARCH=amd64 GOOS=linux CGO_ENABLED=1 go build -ldflags "-linkmode external -extldflags -static"
````
2021-02-10 16:36:50 +00:00
### Run
2020-09-28 09:42:31 +00:00
You can double-click to run, or use command line.
```
2020-07-31 18:37:54 +00:00
PS C:\test> .\hack-browser-data.exe -h
2020-07-23 06:20:06 +00:00
NAME:
2023-07-27 13:08:07 +00:00
hack-browser-data - Export passwords|bookmarks|cookies|history|credit cards|download history|localStorage|extensions from browser
2020-12-20 07:19:41 +00:00
2020-06-28 09:30:02 +00:00
USAGE:
2023-07-27 13:08:07 +00:00
[hack-browser-data -b chrome -f json --dir results --zip]
Export all browsing data (passwords/cookies/history/bookmarks) from browser
2022-04-17 18:07:31 +00:00
Github Link: https://github.com/moonD4rk/HackBrowserData
2020-12-20 07:19:41 +00:00
2023-03-11 13:07:38 +00:00
VERSION:
0.4.5
2023-03-11 13:07:38 +00:00
2020-06-25 06:36:59 +00:00
GLOBAL OPTIONS:
2022-04-17 18:07:31 +00:00
--verbose, --vv verbose (default: false)
--compress, --zip compress result to zip (default: false)
2023-07-27 13:08:07 +00:00
--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")
2022-04-17 18:07:31 +00:00
--results-dir value, --dir value export dir (default: "results")
2023-07-27 13:08:07 +00:00
--format value, -f value output format: csv|json (default: "csv")
2022-04-17 18:07:31 +00:00
--profile-path value, -p value custom profile dir path, get with chrome://version
2023-03-11 13:07:38 +00:00
--full-export, --full is export full browsing data (default: true)
--help, -h show help
--version, -v print the version
2022-04-17 18:07:31 +00:00
2023-07-27 13:08:07 +00:00
PS C:\test> .\hack-browser-data.exe -b all -f json --dir results --zip
2022-04-17 18:07:31 +00:00
[NOTICE] [browser.go:46,pickChromium] find browser Chrome success
[NOTICE] [browser.go:46,pickChromium] find browser Microsoft Edge success
[NOTICE] [browsingdata.go:59,Output] output to file results/microsoft_edge_download.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/microsoft_edge_password.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/microsoft_edge_creditcard.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/microsoft_edge_bookmark.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/microsoft_edge_cookie.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/microsoft_edge_history.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_history.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_download.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_password.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_creditcard.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_bookmark.json success
[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_cookie.json success
2020-12-20 07:19:41 +00:00
```
2022-04-17 18:07:31 +00:00
### Run with custom browser profile folder
2020-12-20 07:19:41 +00:00
2023-03-11 13:07:38 +00:00
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.
2022-04-17 18:07:31 +00:00
```
2023-03-11 13:07:38 +00:00
PS C:\Users\User\Desktop> .\hack-browser-data.exe -b chrome -p "C:\Users\User\AppData\Local\Microsoft\Edge\User Data\Default"
2022-04-17 18:07:31 +00:00
[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
2020-12-20 07:19:41 +00:00
```
2021-07-04 09:34:26 +00:00
### Some other projects based on HackBrowserData
[Sharp-HackBrowserData](https://github.com/S3cur3Th1sSh1t/Sharp-HackBrowserData)
2021-12-10 03:41:17 +00:00
2021-07-04 09:34:26 +00:00
[Reflective-HackBrowserData](https://github.com/idiotc4t/Reflective-HackBrowserData)
## Contributing
We welcome and appreciate any contributions made by the community (GitHub issues/pull requests, email feedback, etc.).
Please see the [Contribution Guide](CONTRIBUTING.md) before contributing.
2021-07-04 09:34:26 +00:00
2021-02-10 16:36:50 +00:00
## Contributors
2020-12-20 07:19:41 +00:00
![](/CONTRIBUTORS.svg)
2023-04-04 03:38:27 +00:00
## Stargazers over time
[![Star History Chart](https://api.star-history.com/svg?repos=moond4rk/hackbrowserdata&type=Date)](https://github.com/moond4rk/HackBrowserData)
2020-12-20 07:19:41 +00:00
2021-02-10 16:36:50 +00:00
## 404StarLink 2.0 - Galaxy
2021-12-10 03:41:17 +00:00
`HackBrowserData` is a part of 404Team [StarLink-Galaxy](https://github.com/knownsec/404StarLink2.0-Galaxy), if you have any questions about `HackBrowserData` or want to find a partner to communicate withplease refer to the [Starlink group](https://github.com/knownsec/404StarLink2.0-Galaxy#community).
<a href="https://github.com/knownsec/404StarLink2.0-Galaxy" target="_blank"><img src="https://raw.githubusercontent.com/knownsec/404StarLink-Project/master/logo.png" align="middle"/></a>
2020-06-30 04:01:00 +00:00
## JetBrains OS licenses
2021-12-10 03:41:17 +00:00
``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.
2021-12-10 03:44:41 +00:00
2021-12-10 03:41:17 +00:00
<a href="https://www.jetbrains.com/?from=HackBrowserData" target="_blank"><img src="https://raw.githubusercontent.com/moonD4rk/staticfiles/master/picture/jetbrains-variant-4.png" width="256" align="middle"/></a>
2020-12-20 07:19:41 +00:00