Управление сохраненными паролями с помощью Windows Credential Manager

Windows Credential Manager (диспетчер учетных данных) позволяет сохранять учетные записи и пароли для доступа к сетевым ресурсам, сайтам и приложениям. Благодаря диспетчеру учётных записей Windows вы можете подключаться к удаленным ресурсам автоматически, без ввода пароля. Приложения могут самостоятельно обращаться в Credential Manager и использовать сохраненный пароль.

Используем диспетчер учетных данных Windows для хранения паролей

Впервые Credential Manager появился в Windows 7 и позиционируется как достаточное безопасное место для хранения ваших паролей.

В диспетчере учетных данных могут хранится следующие типы аккаунтов:

  • Учетные данные Windows (Windows Credentials)– данные для входа в Windows, для доступа на удаленные компьютеры, сохраненные пароли для RDP подключений, пароли к сайтам, поддерживающих встроенную аутентификацию Windows и т.д;
    В Windows Credential не хранятся данные для автоматического входа в Windows или доменные Cached Credentials.
  • Учетные данные на основе сертификатов (Certificate-Based Credentials) – для аутентификации с помощью смарт-карт;
  • Общие учетные данные (Generic Credentials) – используются сторонними приложениями, совместимые с Credential Manager;
  • Учетные данные для интернета (Web Credentials) – сохранённые пароли в браузерах Edge и IE, приложениях Microsoft (MS Office, Teams, Outlook, Skype и т.д).

Например, если при доступе к сетевой папке вы включите опцию “Сохранить пароль”, то введенный вами пароли будет сохранен в Credential Manager.

сохранить пароль для доступа к сетевой папке в Windows

Аналогично пароль для подключения к удаленному RDP/RDS серверу сохраняется в клиенте Remote Desktop Connection (mstsc.exe).

сохранить пароль для RDP в Windows Credential Manager

Также в менеджере паролей сохраняются пароли пользователей при их сохранении командой runas /savecred.

Вы можете получить доступ к диспетчеру учетных данных в Windows 10 из классической панели управления (Control Panel\User Accounts\Credential Manager, Панель управления -> Учетные записи пользователей -> Диспетчер учетных данных).

Как вы видите, в Credential Manager теперь хранятся два пароля, которые мы сохранили ранее.

Менеджер учетных данных в Windows 10, список сохраненных пользователей и паролей

Сохраненный пароль для RDP подключения сохраняется в формате TERMSRV\hostname.

Здесь вы можете добавить сохранённый пароль, отредактировать (просмотреть сохраненный пароль из графического интерфейса нельзя) или удалить любую из записей.

Также для работы с сохраненными паролями можно использовать классический диалоговый интерфейс Windows – Stored User Names and Password. Для его вызова, выполните:

rundll32.exe keymgr.dll,KRShowKeyMgr

упправление сохраненными паролямя в windows credential manager

Здесь вы также можете управлять сохраненными учетными данными, а также есть функции резервного копирования и восстановления данных в Credential Manager (можно использовать для переноса базы Credential Manager на другой компьютер).

Для управления Credential Manager из командной строки используется утилита vaultcmd. Например, чтобы вывести список сохраненных учетных данных типа Windows Credentials выполните команду:

vaultcmd /listcreds:"Windows Credentials"

утилита vaultcmd для управления сохраненныймаи паролями из командой строки

Credential schema: Windows Domain Password Credential
Resource: Domain:target=msk-dc00
Identity: RESOURCE\anovak
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfc)

Следующая команда удалит из Credential Manager все сохраненные пароли для RDP доступа:

For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %H

Все сохраненные пароли хранятся в хранилище Windows Vault. Windows Vault это защищенное хранилище секретов, паролей и другой информации пользователя. Данные в Windows Vault структурированы и представляют собой набор записей, принадлежащих определенной схеме Vault. Набор ключей шифрования для записей Windows Vault хранится в файле Policy.vpol.

Для доменных он хранится в каталоге %userprofile%\AppData\Roaming\Microsoft\Vault. Для локальных пользователей в %userprofile%\AppData\Local\Microsoft\Vault.

файл Policy.vpol с ключами шифрования credential manager

Для работы Credential Manager должна быть запущена служба VaultSvc:

get-service VaultSvc

Если служба отключена, при попытке получить доступ к Credential Manager появится ошибка

Credential Manager Error
The Credential Manager Service is not running. You can start the service manually using the Services snap-in or restart your computer to start the service.
Error code: 0x800706B5
Error Message: The interface is unknown.

Если вы хотите заблокировать пользователям возможность сохранения сетевых паролей в Credential Manager, нужно включить политику Network access: Do not allow storage of passwords and credentials for network authentication в разделе GPO Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options.

отключить возможность сохранения паролей в Credential Manager через групповую политику

Теперь, если пользователь попытается сохранить пароль в хранилище, появится ошибка:

Credential Manager Error
Unable to save credentials. To save credentials in this vault, check your computer configuration.
Error code: 0x80070520
Error Message: A specified logon session does not exist. It may already have been terminated.

Доступ к менеджеру учетных данных Windows из PowerShell

В Windows нет встроенных командлетов для обращения к хранилищу PasswordVault из PowerShell. Но вы можете использовать модуль CredentialManager из галереи PowerShell.

Установите модуль:

Install-Module CredentialManager

Список командлетов в модуле можно вывести так:

get-command -module CredentialManager

powershell модуль CredentialManager

В модуле всего 4 командлета:

  • Get-StoredCredential – получить учетные данные из хранилища Windows Vault;
  • Get-StrongPassword – сгенерировать случайный пароль;
  • New-StoredCredential – добавить ученые записи;
  • Remove-StoredCredential – удалить учетные записи.

Чтобы добавить новые данные в хранилище CredentialManager, выполните команду:

New-StoredCredential -Target 'contoso' -Type Generic -UserName 'aivanov@contoso.com' -Password '123qwe' -Persist 'LocalMachine'

New-StoredCredential - добавить пароль в cred manager через powershell

Проверить, есть в хранилище сохраненные данные для пользователя:

Get-StoredCredential -Target contoso

Сохраненные пароли из Credential Manager можно использовать в ваших скриптах PowerShell. Например, в следующем примере я получаю сохраненные имя и пароль в виде объекта PSCredential и подключаюсь с ними к Exchange Online из PowerShell:

$psCred = Get-StoredCredential -Target "Contoso"
Connect-MSolService -Credential $psCred

Также обратите внимание на новый модуль, PowerShell Secret Management, который можно использовать для безопасного хранения паролей в Windows (поддерживает различные хранилища паролей: KeePass, LastPass, HashiCorp Vault, Azure Key Vault, Bitwarden.

Чтобы удалить определенную учетные данные из Windows Vault, выполните:

Remove-StoredCredential -Target Contoso

Отобразить пароли в открытом виде с помощью встроенных средств нельзя. Но вы можете использовать утилиты типа Mimikatz для получения сохраненных паролей из credman в открытом виде (смотри пример).


Предыдущая статья Следующая статья


Комментариев: 1 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)