
Keepassのメモリダンプからマスターパスワードを取得し、ブルートフォースのヒントを使用します。
vdohney/keepass-password-dumper のPython移植版 (CVE-2023-32784) — オリジナルのC#実装とその基盤となる技術のすべての功績は vdohney に帰属します。
このスクリプトは、プロセスメモリダンプをスキャンして、KeePass 2.x の SecureTextBoxEx がマスターパスワードの入力中に残すレンダリング文字列の残骸を探し、最初の文字を除くパスワードの全文字を復元します。オプションで、keepassxc-cli を使用して KDBX ファイルに対して不明な最初の文字をブルートフォースします。
この欠陥はカスタムの SecureTextBoxEx コントロールにあります。入力された各文字について、.NET はマネージドメモリ内に ●a、●●s、●●●s、… という形式の残存文字列を保持し、そこから最初の文字以降のすべてのパスワード文字を復元できます。
KeePass ≤ 2.53.1 を使用していた場合は、マスターパスワードが漏洩したと想定してください:
C:\Windows\memory.dmp)、powercfg /h off)、cipher /w: など)— 以前に割り当てられたセクタから残骸を復元できないようにします、$PATH 内の keepassxc-cli(--kdbx にのみ必要)Debian / Ubuntu で、ブルートフォースを計画している場合は KeePassXC CLI をインストールします:
sudo apt install keepassxc
# 候補文字を復元して表示
python3 keepass_dumper.py memory.dmp
# 生成された候補リストをファイルに出力
python3 keepass_dumper.py memory.dmp -p candidates.txt
# 復元し、KDBX に対して欠落した最初の文字をブルートフォース
python3 keepass_dumper.py memory.dmp --kdbx db.kdbx
完全なオプション一覧は python3 keepass_dumper.py --help を実行してください。