Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
wa-crypt-tools — Gestiona archivos .crypt12, .crypt14 y .crypt15 de WhatsApp. | Kitploit
Herramientas/GitHubGitHub/eldavoo/wa-crypt-tools
Seguridad AndroidHerramientas de Cifrado/DescifradoForensia MóvilRecuperación de DatosForensia DigitalCriptografía
GitHubeldavoo/wa-crypt-tools

wa-crypt-tools

Gestiona archivos .crypt12, .crypt14 y .crypt15 de WhatsApp.

Ver Repositorio
1.1k157125hace 15 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Coverage Status

WhatsApp Crypt Tools

¡Descifra y cifra archivos .crypt12, .crypt14 y .crypt15 de WhatsApp y WA Business con facilidad!
Para el descifrado, NECESITAS el archivo de clave o la clave de 64 caracteres (o una captura de pantalla de ella).
El archivo de clave se llama "key" si la copia de seguridad es crypt14 o
"encrypted_backup.key" si la copia de seguridad es crypt15 (copias de seguridad E2E cifradas).
Aquellos que busquen una suite más completa para forense de WhatsApp, echen un vistazo a whapa.

Instalación rápida

Nube - Google Colab

Si no quieres instalar programas en tu ordenador, puedes ejecutar este programa en Google Colab .

Local - Jupyter

Si estás familiarizado con Jupyter (lee aquí si no lo estás), puedes usar la versión notebook del programa.

Local - pip

Puedes instalar este script como un paquete a través de pip. Solo ejecuta:

python -m pip install wa-crypt-tools

para la versión estable y

python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools

para la versión de desarrollo.

Es posible que tengas que crear un entorno virtual para evitar conflictos con otros paquetes.

La ventana: wagui

Si prefieres no usar una terminal en absoluto, wagui es una pequeña ventana que descifra una copia de seguridad: elige tu clave, elige la copia de seguridad, pulsa Descifrar.

La ventana wagui

Descárgala y haz doble clic en ella. Cada release incluye una compilación autocontenida que no necesita Python ni instalación:

ArchivoPara
wagui-windows-x64.exeWindows
wagui-macos-arm64.zipmacOS (Apple Silicon)
wagui-linux-x64Linux (chmod +x primero)

La compilación para macOS no está firmada con código, así que la primera vez que la abras macOS la rechazará: haz clic derecho en la aplicación y elige Abrir, luego confirma.

Si ya instalaste el paquete con pip, la misma ventana está a un comando de distancia:

wagui

En Linux, una instalación con pip también necesita el paquete tkinter de tu distribución (python3-tk en Debian/Ubuntu, python3-tkinter en Fedora) -- forma parte de Python pero se empaqueta por separado. La compilación descargable lo tiene integrado y no necesita nada.

La ventana cubre el descifrado, que es para lo que la mayoría de la gente está aquí. También te dice qué es un archivo tan pronto como lo eliges, igual que hace wainfo. El cifrado, la creación de archivos de clave y la adivinación de offsets se quedan en las herramientas de línea de comandos de abajo.

Inicio rápido

Descifrar un archivo con wadecrypt

usage: wadecrypt [-h] [-nm] [-bs BUFFER_SIZE] [-nd] [-v] [-f] [-y] [keyfile] [encrypted] [decrypted]

Así, para descifrar un crypt12/14/15, le damos al programa el archivo de clave, el archivo cifrado y el nombre del archivo de salida. No sobrescribirá un archivo que ya exista; pasa -y/--yes si eso es lo que quieres.

Ejemplo

$ wadecrypt encrypted_backup.key msgstore.db.crypt15 msgstore.db
key15.py:51     : [I] Crypt15 / Raw key loaded
wadecrypt.py:271        : [I] Done

Cifrar un archivo con waencrypt (BETA)

usage: waencrypt [-h] [-f] [-y] [-v] [--enable-features [ENABLE_FEATURES ...]] [--max-feature MAX_FEATURE]
                 [--multi-file] [--type {12,14,15}] [--iv IV] [--reference REFERENCE] [--noparse]
                 [--wa-version WA_VERSION] [--jid JID] [--backup-version BACKUP_VERSION] [--no-compress]
                 [-c [0-9]] [keyfile] [decrypted] [encrypted]

waencrypt no sobrescribirá un archivo que ya exista; pasa -y/--yes si eso es lo que quieres.

Con --reference, waencrypt reproduce la copia de seguridad referenciada byte a byte: el IV, la cabecera (incluyendo campos que esta biblioteca no modela) y el nivel de compresión provienen de ella, así que volver a cifrar una base de datos sin modificar te devuelve el md5 con el que empezaste.

-c/--compression-level es el nivel de zlib, 9 por defecto, que es lo que WhatsApp usa ahora. Históricamente comprimía a 1. Con --reference el nivel se toma de la referencia, así que reproducir una copia de seguridad antigua no necesita nada extra; pasa -c para sobrescribirlo.

El cifrado es más complejo y no está probado: se aconseja usar otro archivo cifrado de la misma cuenta, al que llamaremos "referencia".

Con un archivo de referencia (solo base de datos crypt15 probada)

waencrypt --reference msgstore.db.crypt15 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57         : [W] This script is in beta stage
waencrypt.py:89         : [I] Done!

Sin un archivo de referencia

Necesitas proporcionar los siguientes parámetros:

  1. La lista de características: Solo para bases de datos de 2019 en adelante. Estos son realmente los indicadores de migración de base de datos que WhatsApp registra en la cabecera, y no hay forma de inferirlos desde un archivo de base de datos. Los valores por defecto son los que lleva un msgstore 2.26.34.7, que son todos. Solo un msgstore los tiene. Cualquier otra copia de seguridad -- wa.db, stickers.db, el resto de WhatsApp/Backups/ -- no lleva ninguna información de características, que es lo que wainfo significa con "No feature table found (not a msgstore DB or very old)". Para escribir una cabecera de esa forma, pasa --enable-features sin nada después: una lista vacía no escribe ni los indicadores de migración ni la versión de copia de seguridad, y --max-feature entonces no hace nada.
  2. El número máximo de característica, que es 39 en el momento de escribir esto
  3. La versión de la aplicación que cifró el archivo: por defecto 2.26.34.7.
  4. Jid: Los últimos 2 números de tu número de teléfono -- este sí es tuyo, y por defecto es 00
  5. Versión de copia de seguridad: Usa 1.

Se usarán los valores por defecto si se omiten parámetros, y están tomados de una copia de seguridad real 2.26.34.7: dados el --iv y el --jid correctos, waencrypt escribe los mismos bytes de cabecera que el teléfono, sin ninguna referencia. Pasar --reference sigue siendo la mejor forma, ya que toma el IV, el nivel de compresión y toda la cabecera de una copia de seguridad que ya tienes.

Para resumir:

$ waencrypt --enable-features 5 6 7 8 9 10 11 12 13 14 15 16
 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 --type 15 --wa-version 2.26.34.7 --jid 00 --backup
-version 1 encrypted_backup.key msgstore.db msgstore-new.db.crypt15 
waencrypt.py:57         : [W] This script is in beta stage
waencrypt.py:89         : [I] Done!

Puedes obtener información sobre un archivo de copia de seguridad con la herramienta wainfo.

Leer la clave desde una captura de pantalla

WhatsApp muestra la clave de 64 dígitos una vez y nunca más, así que la mayoría de la gente le hace una captura. Puedes dar esa captura a cualquiera de las herramientas dondequiera que vaya el archivo de clave -- no hay ningún flag extra, las herramientas averiguan qué les han entregado:

Descargar herramienta