
Solte qualquer artefato DPAPI do Windows e ele identifica o formato e a chave mestra exata necessária, depois descriptografa assim que você fornece a chave. Offline, CLI + interface web.
Um toolkit offline para evidências do Windows DPAPI. Você coleta os arquivos, aponta a ferramenta para um artefato, e ela reconhece o formato e informa exatamente qual master key é necessária; você fornece o material da chave e ela descriptografa.
A maioria das ferramentas DPAPI é um script por formato, ou um recurso enterrado dentro de um framework
ofensivo maior. Esta é uma ferramenta para toda a gama — master keys, blobs
DPAPI, Credential Manager, Vault, CREDHIST, Wi-Fi, RDP/RDCMan, chaves e
certificados CAPI/CNG, PowerShell SecureStrings, KeePass, chaves os_crypt do Chromium,
SCCM, e (com um plugin opcional) DPAPI-NG — operada apenas a partir de arquivos coletados, com uma
interface de linha de comando e uma UI web local de arrastar-e-soltar sobre o mesmo núcleo.
É construída para red team e testes de penetração, DFIR, e pesquisa de segurança. Nenhum acesso a host ativo, controlador de domínio, rede, BKRP ou LSASS é usado, e ela não faz força bruta de senhas ou PINs: você fornece os artefatos coletados e o material de chave explicitamente.
Use isto apenas contra sistemas e evidências que você possui ou está explicitamente autorizado a examinar.

Você coletou a pasta Protect de um usuário e um arquivo do Credential Manager offline
e sabe a senha da conta. Inspecione a credencial primeiro — nenhuma chave é necessária:
python3 dpapi_toolkit.py CREDENTIAL_FILE
Ela imprime o blob DPAPI embutido e o GUID da master key que ele requer. Aponte-a
para o diretório Protect e deixe-a corresponder e desbloquear essa master key, então
descriptografe:
python3 dpapi_toolkit.py CREDENTIAL_FILE --type credential \
--masterkey-dir Protect-S-1-5-21-... \
--sid S-1-5-21-... \
--password 'password'
O resultado é JSON com o alvo, nome de usuário e credencial recuperada. O mesmo fluxo de inspecionar-e-descriptografar se aplica a todos os formatos suportados.
Python 3.10 ou mais recente. A única dependência obrigatória é
cryptography:
python3 -m pip install cryptography
Dependências opcionais habilitam recursos específicos:
python3 -m pip install python-registry # read Outlook data from NTUSER.DAT
python3 -m pip install dpapi-ng # offline DPAPI-NG plugin
python3 -m pip install impacket # offline SYSTEM/SECURITY/SAM hive plugin
Nenhum host Windows ativo, controlador de domínio, conexão de rede ou acesso ao LSASS é necessário. Segredos de registro e master keys já devem ter sido coletados.
ConvertFrom-SecureString /
Export-Clixml..vpol/.vcrd), e histórico de senhas
CREDHIST..rdp do Remote Desktop e .rdg/.settings do RDCMan.ProtectedUserKey.bin, segredos de política SCCM, IMAP do Outlook,
chaves Windows Hello / NGC com suporte de software, e chaves os_crypt do Chromium.$DPAPImk$ (Hashcat 15300/15310/15900/15910), $MSONLINEACCOUNT$ CacheData
(modo 33700), e hashes NT do SAM local. Veja docs/hashes.md.O método de desbloqueio depende do que você já tem. Isto o mapeia para a opção da CLI; as mesmas escolhas aparecem na UI web em 2. Unlock key.
| O que você tem | Tamanho / forma | Opção |
|---|---|---|
| Master key do Windows criptografada | arquivo com nome GUID sob Protect | --masterkey FILE mais um método de desbloqueio |
| Master key descriptografada | 64 bytes | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| Mapeamento SHA1 de uma master key descriptografada | 20 bytes | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| Segredo DPAPI_SYSTEM | MachineKey || UserKey de 40 bytes, uma chave de 20 bytes, ou 44 bytes com versão | --dpapi-system FILE_OR_HEX_OR_TEXT |
| Prekey final de usuário vinculada ao SID | 20 bytes | --prekey FILE_OR_HEX |
| Hash NT | 16 bytes | --nt-hash FILE_OR_HEX --sid SID |
| Hash SHA1 de senha local | SHA1(password as UTF-16LE) de 20 bytes | --sha1-hash FILE_OR_HEX --sid SID |
| Credential key não vinculada | 16–128 bytes | --credkey FILE_OR_HEX --sid SID |
| Material de backup DPAPI do AD | PEM, DER, PVK, CAPI PRIVATEKEYBLOB, ou chave ServerWrap de 256 bytes | --domain-backup-key VALUE ou --pvk VALUE |
O valor DPAPI_SYSTEM de 40/44 bytes não é uma master key descriptografada. Use-o para descriptografar uma master key SYSTEM com nome GUID, então use a master key resultante de 64 bytes para descriptografar o artefato.
A UI web é um front end fino sobre o mesmo núcleo offline, então seus resultados correspondem exatamente à linha de comando:
python3 dpapi_web.py # http://127.0.0.1:8765/
Ela se vincula apenas a 127.0.0.1, não tem opção de bind em LAN/público, mantém resultados
descriptografados em memória limitada para um único download único, e nunca grava
saída descriptografada persistente. Veja docs/web-ui.md para o fluxo de trabalho
completo, os fluxos por formato, e a postura de segurança.
| Guia | Conteúdo |
|---|---|
| docs/cli-reference.md | Inspeção, desbloqueio de master-key, opções de saída, entropia, exportação Hashcat, modo de lote, locais de coleta padrão, solução de problemas. |
| docs/artifacts.md | Exemplos de comando por formato para cada artefato suportado. |
| docs/web-ui.md | A UI web local: fluxo de trabalho completo, fluxos de artefatos principais, recuperação encadeada, e seu modelo de segurança. |
| docs/plugins.md | Plugins offline removíveis (Certificate/PFX, CacheData, Windows hives, DPAPI-NG) e o passo a passo do DPAPI-NG. |
| docs/hashes.md | Obtendo hashes quebráveis para recuperação de senha offline — $DPAPImk$, $MSONLINEACCOUNT$, e hashes NT do SAM, com os comandos Hashcat. |
Ajuda rápida também é integrada: python3 dpapi_toolkit.py -h para ajuda curta, -hh
para ajuda detalhada de chave/artefato/local/limitação, e anexar --structure
a qualquer artefato imprime seus campos analisados sem descriptografar.