
Extraer y descifrar datos del navegador, compatible con múltiples tipos de datos, ejecutable en varios sistemas operativos (macOS, Windows, Linux).
HackBrowserData es una herramienta de línea de comandos para descifrar y exportar datos del navegador (contraseñas, historial, cookies, marcadores, tarjetas de crédito, historial de descargas, localStorage, sessionStorage y extensiones) desde el navegador. Es compatible con los navegadores basados en Chromium más populares y Firefox en Windows, macOS y Linux, además de Safari en macOS.
También puede descifrar datos entre máquinas y sistemas operativos: exporte las claves maestras en el host de origen, luego descifre una copia de los datos fuera de línea en cualquier otro host, incluso para un navegador que el sistema operativo del host de análisis no pueda ejecutar (consulte Descifrado entre hosts).
Aviso: Esta herramienta está destinada únicamente a la investigación de seguridad. Los usuarios son responsables de todas las obligaciones legales y responsabilidades derivadas del uso de esta herramienta. El autor original no asume ninguna responsabilidad legal.
En macOS, algunos navegadores basados en Chromium requieren la contraseña del usuario actual para descifrar.
El descifrado de contraseñas puede fallar en macOS 26.4 o posterior.
¹ Safari requiere Acceso completo al disco; actívelo en Configuración del Sistema → Privacidad y Seguridad → Acceso completo al disco si la extracción devuelve resultados vacíos.
² En Windows, descifrar cookies de Chromium 127+ (Chrome / Chrome Beta / Edge / Brave / CocCoc) requiere el payload de App-Bound Encryption creado mediante
make build-windows— consulte Compilación desde el código fuente más abajo.³ Estos navegadores solo se distribuyen en Windows, pero sus datos son descifrables en cualquier OS: extraiga los archivos con
archive, exporte las claves condumpkeys, luego descifre en macOS o Linux conrestore— consulte Descifrado entre hosts.
La instalación de HackBrowserData es muy sencilla: simplemente descargue la versión para su sistema y ejecute el binario.
En algunas situaciones, esta herramienta de seguridad será tratada como un virus por Windows Defender u otro software antivirus y no podrá ejecutarse. El código es completamente de código abierto; puede modificarlo y compilarlo usted mismo.
Requiere Go 1.20+.```bash
git clone https://github.com/moonD4rk/HackBrowserData
cd HackBrowserData
go build ./cmd/hack-browser-data/
#### Compilación multiplataforma```bash
# For Windows (standard build, no Chromium 127+ ABE cookie support)
GOOS=windows GOARCH=amd64 go build ./cmd/hack-browser-data/
# For Linux
GOOS=linux GOARCH=amd64 go build ./cmd/hack-browser-data/
Chrome / Chrome Beta / Edge / Brave / CocCoc 127+ protegen las cookies con cifrado App-Bound. Descifrar esas cookies requiere un pequeño payload en C — Zig (0.13+) es la cadena de herramientas C recomendada (el Makefile llama a zig cc). MinGW-w64 gcc también puede compilar las fuentes manualmente si omites make payload.```bash
brew install zig # macOS scoop install zig # Windows (scoop)
make payload
make build-windows
El archivo `hack-browser-data.exe` resultante incluye el descifrado completo de cookies ABE en Chromium 127+.
## Uso```
$ hack-browser-data -h
hack-browser-data decrypts and exports browser data from Chromium-based
browsers and Firefox on Windows, macOS, and Linux.
GitHub: https://github.com/moonD4rk/HackBrowserData
Usage:
hack-browser-data [flags]
hack-browser-data [command]
Available Commands:
archive Pack decryption-relevant profile files into a zip for cross-host restore
dump Extract and decrypt browser data (default command)
dumpkeys Export Chromium master keys as JSON for cross-host decryption
help Help about any command
list List detected browsers and profiles
restore Decrypt copied profile data using exported master keys
version Print version information
Flags:
-b, --browser string target browser: all|chrome|firefox|edge|... (default "all")
-c, --category string data categories (comma-separated): all|password,cookie,... (default "all")
-d, --dir string output directory (default "results")
-f, --format string output format: csv|json|cookie-editor (default "json")
-h, --help help for hack-browser-data
--keychain-pw string macOS keychain password
-p, --profile-path string custom profile dir path, get with chrome://version
-v, --verbose enable debug logging
--zip compress output to zip
Use "hack-browser-data [command] --help" for more information about a command.
dump - Extraer y descifrar datos del navegador (predeterminado)Ejecutar hack-browser-data sin un subcomando utiliza por defecto dump.
--format cookie-editorescribe solo cookies, como un arreglo JSON que coincide con el formato de importación de la extensión Cookie-Editor del navegador; las categorías que no son cookies se omiten.
Descifre datos del navegador en un host analista que fueron recolectados en un host de origen diferente, incluido un navegador cuyo motor el sistema operativo del analista ni siquiera puede instalar (por ejemplo, descifrar datos de Sogou o QQ Browser en macOS). Nada vinculado a la plataforma (DPAPI, macOS Keychain, Chrome App-Bound Encryption) tiene que salir del origen: las claves maestras se exportan una vez, y el descifrado se ejecuta completamente sin conexión a partir de una copia de los datos.
El flujo de trabajo utiliza tres comandos y dos artefactos transportables:
hack-browser-data dumpkeys -o keys.json hack-browser-data archive -o browser-data.zip
hack-browser-data restore --keys keys.json --data-zip browser-data.zip
> `keys.json` contiene claves maestras en texto plano — trátalo como un secreto. `dumpkeys -o` lo escribe con permisos `0600`; prefiere transmitirlo por un canal seguro en lugar de dejarlo en el disco.
#### `dumpkeys` - Exportar claves maestras para descifrado entre hosts
Deriva las claves maestras de cada instalación de Chromium en el host de origen y las escribe como JSON (Firefox / Safari no tienen clave portátil y se omiten). Por defecto usa stdout para que pueda ser canalizado por SSH.
| Flag | Short | Default | Description |
|-----------------|-------|----------|-------------------------------------------------|
| `--browser` | `-b` | `all` | Navegador objetivo (all\|chrome\|edge\|...) |
| `--output` | `-o` | *stdout* | Archivo de salida (escrito con `0600`); stdout si se omite |
| `--keychain-pw` | | | Contraseña del llavero de macOS |
#### `archive` - Empaquetar archivos relevantes para el descifrado para su transporte
Recolecta solo los archivos que una restauración realmente necesita (cookies, datos de inicio de sesión, historial, …) a través del mismo bypass de archivos bloqueados utilizado para la extracción, por lo que los archivos SQLite en vivo se leen de forma segura en Windows. El zip está organizado como `<browser-key>/<User Data layout>`, por lo que un archivo puede contener varios navegadores y la restauración permanece sin ambigüedades. Los nombres de las entradas siempre usan barra inclinada, por lo que un archivo producido en Windows se restaura en macOS / Linux.
| Flag | Short | Default | Description |
|--------------|-------|--------------------|-----------------------------------------|
| `--browser` | `-b` | `all` | Navegador objetivo (all\|chrome\|edge\|...) |
| `--category` | `-c` | `all` | Categorías de datos, separadas por comas |
| `--output` | `-o` | `browser-data.zip` | Ruta del archivo de salida |
#### `restore` - Descifrar datos copiados con claves exportadas
Reconstruye cada motor Chromium directamente desde `keys.json` y descifra los datos suministrados — nunca consulta la tabla local del navegador del analista, por lo que **los navegadores que puedes restaurar son exactamente los cofres en tu `keys.json`**. Proporciona los datos de una de dos maneras (se requiere exactamente una):
- `--data-zip` — un zip producido por `archive`; se extrae a un directorio temporal y se elimina después.
- `--data-dir` — un directorio. Ya sea la estructura de `archive` (`<browser-key>/...`, varios navegadores a la vez), o la raíz `User Data` copiada manualmente de un navegador, que solo es inequívoca para un solo navegador — así que combínalo con `-b`.
`-b` es un **filtro opcional** sobre los cofres del volcado, no un selector obligatorio.
| Flag | Short | Default | Description |
|--------------|-------|------------|------------------------------------------------------------|
| `--keys` | | *required* | Archivo de claves de `dumpkeys` (usa `-` para stdin) |
| `--data-zip` | | | Zip de `archive` (excluyente mutuo con `--data-dir`) |
| `--data-dir` | | | Directorio de datos copiados (excluyente mutuo con `--data-zip`) |
| `--browser` | `-b` | | Restaurar solo este navegador; debe coincidir con un cofre en `--keys` |
| `--category` | `-c` | `all` | Categorías de datos, separadas por comas |
| `--format` | `-f` | `json` | Formato de salida (csv\|json\|cookie-editor) |
| `--dir` | `-d` | `results` | Directorio de salida |
| `--zip` | | `false` | Comprimir salida a zip |
#### Ejemplos entre hosts```bash
# Stream keys over SSH (no keys.json on disk), data copied separately
ssh origin "hack-browser-data dumpkeys" | \
hack-browser-data restore --keys - --data-zip browser-data.zip
# Restore one browser from a hand-copied User Data folder (no archive)
hack-browser-data restore --keys keys.json --data-dir ./chrome-userdata -b chrome
list - Listar navegadores y perfiles detectados| Flag | Default | Description |
|---|---|---|
--detail | false | Mostrar recuentos de entradas por categoría |
version - Imprimir información de versión```bashhack-browser-data version
### Banderas globales
| Bandera | Corto | Descripción |
|--------------|-------|-----------------------|
| `--verbose` | `-v` | Habilitar registro de depuración |
### Ejemplos```bash
# Extract all data from all browsers (default)
hack-browser-data
# Extract specific browser and categories
hack-browser-data dump -b chrome -c password,cookie
# Export in CSV format to a custom directory (JSON is the default)
hack-browser-data dump -b chrome -f csv -d output
# Export cookies in CookieEditor format
hack-browser-data dump -f cookie-editor
# Compress output to zip
hack-browser-data dump --zip
# List detected browsers and profiles
hack-browser-data list
# List with per-category entry counts
hack-browser-data list --detail
# Use custom profile path
hack-browser-data dump -b chrome -p "/path/to/User Data/Default"
Agradecemos y valoramos cualquier contribución realizada por la comunidad (issues/pull requests de GitHub, comentarios por correo electrónico, etc.).
Consulte la Guía de Contribución antes de contribuir.
HackBrowserData es parte de 404Team StarLink-Galaxy. Si tienes alguna pregunta sobre HackBrowserData o deseas encontrar un compañero con quien comunicarte, consulta el grupo Starlink.

HackBrowserData se ha estado desarrollando con el IDE GoLand bajo las licencias de código abierto gratuitas de JetBrains otorgadas por JetBrains s.r.o., por lo que me gustaría expresar mi agradecimiento aquí.
| Categoría | Chromium | Firefox | Safari |
|---|
| Contraseña | ✅ | ✅ | ✅ |
| Cookie | ✅ | ✅ | ✅ |
| Marcador | ✅ | ✅ | ✅ |
| Historial | ✅ | ✅ | ✅ |
| Descarga | ✅ | ✅ | ✅ |
| Tarjeta crédito | ✅ | - | - |
| Extensión | ✅ | ✅ | ✅ |
| LocalStorage | ✅ | ✅ | ✅ |
| SessionStorage | ✅ | - | - |
| Navegador | Windows | macOS | Linux |
|---|
| Chrome | ✅² | ✅ | ✅ |
| Chrome Beta | ✅² | ✅ | ✅ |
| Chromium | ✅ | ✅ | ✅ |
| Edge | ✅² | ✅ | ✅ |
| Brave | ✅² | ✅ | ✅ |
| Opera | ✅ | ✅ | ✅ |
| OperaGX | ✅ | ✅ | - |
| Vivaldi | ✅ | ✅ | ✅ |
| Yandex | ✅ | ✅ | - |
| CocCoc | ✅² | ✅ | - |
| Arc | ✅ | ✅ | - |
| DuckDuckGo³ | ✅ | - | - |
| QQ³ | ✅ | - | - |
| 360 ChromeX³ | ✅ | - | - |
| 360 Chrome³ | ✅ | - | - |
| DC Browser³ | ✅ | - | - |
| Sogou Explorer³ | ✅ | - | - |
| Firefox | ✅ | ✅ | ✅ |
| Safari¹ | - | ✅ | - |
| Flag | Corto | Predeterminado | Descripción |
|---|
--browser | -b | all | Navegador objetivo (all|chrome|firefox|edge|...) |
--category | -c | all | Categorías de datos, separadas por comas (all|password|cookie|bookmark|history|download|creditcard|extension|localstorage|sessionstorage) |
--format | -f | json | Formato de salida (csv|json|cookie-editor) |
--dir | -d | results | Directorio de salida |
--profile-path | -p | Ruta personalizada del directorio de perfil, obténgala con chrome://version | |
--keychain-pw | Contraseña del llavero de macOS | ||
--zip | false | Comprimir la salida en un archivo zip |
| Paso | Host | Comando | Produce |
|---|
| 1 | origen | dumpkeys | keys.json — claves maestras portátiles |
| 2 | origen | archive | browser-data.zip — solo los archivos necesarios para descifrar |
| 3 | analista | restore | salida descifrada (csv / json / cookie-editor) |
Roger |
Aquilao Official |
uinfziuna8n |
Cyrus |
stevenlele |
Carlo Mandelli |
slimwang |
zznQ |
YuXJ |
mirefly |
LC |
zhe6652 |
guoguangwu |
beichen |
Santiago Ramirez |
Ciprian Conache |
a-urth |
Amir. |