Управление сохраненными паролями с помощью 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 '[email protected]' -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 в открытом виде (смотри пример).


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


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

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

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

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