Build Requirements
Visual Studio
Visual Studio 2019 Community Edition or later
.NET Framework
.NET Framework 3.5 (default) or .NET 4.0/4.5
Git
For cloning the repository
Windows OS
Windows build environment required
Compilation Steps
1
Clone Repository
2
Open Solution
Open
SharpDPAPI.sln in Visual Studio 2019 or later3
Select Build Configuration
- Choose Release configuration (not Debug)
- Target platform: Any CPU
4
Build Projects
- Build → Build Solution (or press Ctrl+Shift+B)
- Both SharpDPAPI.exe and SharpChrome.exe will be compiled
5
Locate Binaries
Compiled binaries will be in:
Targeting Different .NET Versions
SharpDPAPI defaults to .NET Framework 3.5 for maximum compatibility. However, you can retarget to newer versions:- .NET 3.5 (Default)
- .NET 4.0 / 4.5
Advantages:
- Maximum compatibility
- Runs on most Windows systems by default
- Preferred for operational use
- May not be installed on newer systems
- Requires installation if not present
Binary Distribution
SpecterOps does not provide pre-compiled binaries for SharpDPAPI or SharpChrome. You must compile from source.
- Encourages understanding of the code
- Prevents signature-based detection
- Allows for customization
- Avoids potential legal issues
Running SharpDPAPI
- Direct Execution
- PowerShell Wrapper
- PSRemoting
- Execute-Assembly
Command Line Syntax
SharpDPAPI
backupkey- Retrieve domain DPAPI backup keymasterkeys- Decrypt user masterkeyscredentials- Decrypt Credential Manager credentialsvaults- Decrypt Windows Vault datardg- Decrypt RDP connection passwordskeepass- Extract KeePass master keyscertificates- Decrypt certificate private keystriage- Run all user commandsps- Decrypt PowerShell credential XMLblob- Decrypt arbitrary DPAPI blobsearch- Search for DPAPI blobssccm- Extract SCCM credentialsmachinemasterkeys- Decrypt machine masterkeysmachinecredentials- Decrypt system credentialsmachinevaults- Decrypt system vaultsmachinetriage- Run all machine commands
SharpChrome
logins- Extract and decrypt saved passwordscookies- Extract and decrypt cookiesstatekeys- Extract AES state keysbackupkey- Retrieve domain DPAPI backup key
Quick Start Examples
Local User Triage (No Privileges)
Local User Triage (No Privileges)
Local Admin Triage
Local Admin Triage
Domain Admin Triage
Domain Admin Triage
Offline Analysis
Offline Analysis
Common Workflows
Workflow 1: Domain Compromise
Workflow 2: Local System Compromise
Workflow 3: Credential-Based Access
Output Management
- Console Output
- File Output
- Formatted Output
Default behavior - prints to console:Good for: Interactive use, immediate feedback
Troubleshooting
Build Errors
Build Errors
Problem: Solution won’t buildSolutions:
- Ensure Visual Studio 2019+ is installed
- Verify .NET Framework 3.5 is installed
- Clean solution (Build → Clean Solution)
- Rebuild solution (Build → Rebuild Solution)
- Check for missing NuGet packages
.NET Framework Not Found
.NET Framework Not Found
Problem: Target system doesn’t have .NET FrameworkSolutions:
- Install .NET Framework 3.5:
- Or recompile for .NET 4.0/4.5
No Data Decrypted
No Data Decrypted
Problem: Commands run but no data is decryptedSolutions:
- Verify decryption method is correct:
- Using
/unprotect? Must run as target user - Using
/pvk? Must have valid backup key - Using masterkeys? Must have correct GUIDs
- Using
/password? Must be correct password
- Using
- Check if DPAPI data exists:
- Credentials:
%LOCALAPPDATA%\Microsoft\Credentials\ - Vaults:
%LOCALAPPDATA%\Microsoft\Vault\ - Chrome:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\
- Credentials:
Access Denied Errors
Access Denied Errors
Problem: Access denied when reading filesSolutions:
- For user DPAPI: Run as target user or use valid decryption method
- For machine DPAPI: Must run as Administrator
- For remote systems: Must have admin access to target
- For domain backup key: Must have Domain Admin privileges
Chrome 80+ Not Decrypting
Chrome 80+ Not Decrypting
Problem: Chrome logins/cookies won’t decryptSolutions:
- First decrypt the state key:
- Then use the state key:
- Or use automatic decryption:
(SharpChrome will automatically handle state key decryption)
Operational Security
- Detection Vectors
- Mitigation Strategies
- Alternative Execution
- File reads of sensitive DPAPI locations
- LSASS access for DPAPI_SYSTEM secret
- Process execution of SharpDPAPI.exe/SharpChrome.exe
- Network SMB access to remote systems
- Domain controller backup key retrieval
- Bulk credential file access
Additional Resources
GitHub Repository
Source code and latest releases
DPAPI Attack Guide
Operational guidance for DPAPI abuse
Mimikatz Wiki
Understanding Credential Manager and DPAPI
Visual Studio Community
Download Visual Studio for compilation