# Windows Credential Manager: Management von Identitäten & Secrets
TL;DR / Management Summary Der Windows Credential Manager (Anmeldeinformationsverwaltung) ist der zentrale Tresor für Web-Logins, Netzwerk-Freigaben und Zertifikate. Unter der Haube nutzt er die DPAPI (Data Protection API), um Secrets mit dem Passwort des Users zu verschlüsseln. Für Admins ist er essentiell, um “Passwort-Hopping” auf Fileshares zu verwalten und Identitäten für automatisierte Tasks (Task Scheduler) sicher zu hinterlegen.
# 1. Einführung & Architektur
Wie Windows Geheimnisse bewahrt.
Passwörter in Windows werden nicht einfach in Textdateien gespeichert. Sie landen im Windows Vault.
# Die Data Protection API (DPAPI)
Jedes Secret im Credential Manager wird mit einem Schlüssel verschlüsselt, der vom User-Passwort abgeleitet ist.
- Vorteil: Selbst ein Administrator kann (ohne das User-Passwort) die Passwörter eines anderen Users nicht im Klartext lesen.
- Komponente: Der Dienst
lsass.exeverwaltet die Schlüssel im RAM.
# Architektur-Diagramm (Mermaid)
graph TD
APP[Browser / Outlook / Net Drive] -->|Request| WCM[Credential Manager]
WCM -->|Auth| VAULT[Windows Vault / Filesystem]
VAULT -->|Encrypted with| DPAPI[DPAPI Master Key]
DPAPI -->|Derived from| PWD[User Password / TPM]
subgraph "Storage Path"
VAULT_FILE[%AppData%\Microsoft\Protect]
end
# 2. Verwaltung in der Praxis
Aufräumen im Tresor.
# GUI Aufruf
control /name Microsoft.CredentialManager
Hier finden Sie:
- Webanmeldeinformationen: Gespeichert von Edge/Internet Explorer.
- Windows-Anmeldeinformationen: RDP-Logins, SMB-Shares, Zertifikats-Mappings.
# CLI Verwaltung (cmdkey)
Admins nutzen cmdkey, um Passwörter für Skripte oder automatische Verbindungen zu hinterlegen.
# Neue Anmeldeinformation für einen Fileserver hinzufügen
cmdkey /add:fs01.firma.de /user:DOMAIN\User /pass:MeinSicheresPasswort
# Liste aller gespeicherten Windows-Credentials
cmdkey /list
# Ein Secret löschen
cmdkey /delete:fs01.firma.de
# 3. Deep Dive: Secrets Management für Admins
Sicherheit in Automatisierung.
Wie hinterlegt man ein Passwort für ein PowerShell-Skript, ohne es im Klartext in die Datei zu schreiben?
# Die PowerShell-Lösung (SecureString)
Wir nutzen den DPAPI-Schutz von PowerShell:
# Passwort verschlüsselt in eine Datei exportieren (Nur dieser User auf diesem PC kann sie lesen!)
read-host -assecurestring | convertfrom-securestring | out-file "C:\Secrets\password.txt"
# Passwort im Skript wieder einlesen
$password = cat "C:\Secrets\password.txt" | convertto-securestring
$cred = New-Object System.Management.Automation.PSCredential ("AdminUser", $password)
# 4. Day-2 Operations: Identitätsschutz & Hardening
Den Safe verstärken.
# LSA Protection
Schützen Sie den Prozess, der die Keys im RAM hält, vor Diebstahl (Mimikatz):
- Registry:
HKLM\SYSTEM\CurrentControlSet\Control\Lsa->RunAsPPL = 1 - Effekt: Nur signierte Prozesse dürfen den LSA-Speicher lesen.
# Vault-Bereinigung via GPO
Sie können via GPO erzwingen, dass Netzwerk-Passwörter nach dem Abmelden gelöscht werden (besonders wichtig für Shared-Workstations).
# 5. Troubleshooting & “War Stories”
Wenn der Tresor klemmt.
# Top 3 Fehlerbilder
-
Symptom: User wird ständig nach dem Passwort für ein Netzlaufwerk gefragt, obwohl “Speichern” geklickt wurde.
- Ursache: Der Hostname in der GPO weicht vom Hostname im Credential Manager ab (z.B. IP vs. FQDN).
- Lösung: Credentials immer auf den FQDN registrieren.
-
Symptom: Passwort-Änderung im AD führt zu “Account Lockout” am PC.
- Ursache: Im Credential Manager ist noch das alte Passwort für Outlook oder ein Netzlaufwerk hinterlegt. Die App versucht ständig, sich mit dem alten Key anzumelden.
- Lösung: Den Tresor via
control userpasswords2(Erweitert -> Passwörter verwalten) leeren.
-
Symptom: Skripte schlagen fehl, wenn sie als “Scheduled Task” laufen.
- Ursache: Die DPAPI-Secrets des Admins sind nicht verfügbar, wenn kein interaktives Profil geladen ist.
- Lösung: Task mit “Run only when user is logged on” testen oder Managed Service Accounts (gMSA) nutzen.
# “War Story”: Der vergessene Test-Admin
Ein Admin hinterlegte sein Domain-Admin Passwort via cmdkey auf einem Webserver, um Daten von einem Share zu ziehen. Er vergaß es zu löschen. Ein Angreifer kompromittierte die Web-App, erlangte Shell-Zugriff und las via cmdkey /list das Ziel aus. Er brauchte zwar das Passwort im Klartext, konnte aber durch den hinterlegten Token den Fileserver direkt angreifen.
Lehre: Nutzen Sie niemals persönliche Admin-Accounts für automatisierte Aufgaben. Verwenden Sie Service-Accounts mit minimalen Rechten.
# 6. Monitoring & Auditing
Wer greift auf den Safe zu?
# Event ID 4648
Wird geloggt, wenn eine Anmeldung mit expliziten Anmeldeinformationen erfolgt (typisch für Credential Manager Nutzung).
# 7. Fazit & Empfehlung
Der Credential Manager ist ein Freund, wenn man seine Grenzen kennt.
- Empfehlung: Schulen Sie User darin, wie sie alte Passwörter aus der Verwaltung löschen, wenn Logins fehlschlagen.
- Enterprise-Tipp: Nutzen Sie für die Speicherung von Server-Secrets (z.B. API Keys) professionelle Lösungen wie HashiCorp Vault oder Azure Key Vault anstatt des lokalen Windows-Tresors.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Tresor öffnen | control keymgr.dll |
| Credential via PowerShell | Get-Credential |
| Alle gespeicherten Targets | cmdkey /list |
| LSA Status prüfen | `Get-Process lsass |