Диспетчер учетных данных Windows: управление сохраненными паролями

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

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

Диспетчер учетных данных встроен в Windows и позволяет безопасно хранить три типа учетных данных:

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

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

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

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

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

Также в диспетчере паролей хранятся пароли пользователей, добавленные командой runas /savecred и используемые для запуска программ от имени другого пользователя.

Открыть диспетчер учетных данных в Windows можно:

  • из классической панели управления (Control Panel\User Accounts\Credential Manager, Панель управления -> Учетные записи пользователей -> Диспетчер учетных данных);
  • изкоманднойстроки: control /name Microsoft.CredentialManager

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

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

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

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

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

rundll32.exe keymgr.dll,KRShowKeyMgr

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

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

Управление сохраненными учетными данными Windows из командной строки

Вы можете добавить удалить и вывести сохраненные учетные данных в Credentil Manager из командной строки с помощью утилиты cmdkey.

Добавить в диспетчер учетные данные для доступа к серверу FS01:

cmdkey /add:FS01 /user:kbuldogov /pass:Passw0rdd1

Если нужно сохранить доменную учетную запись:

cmdkey /add:fs01.winitpro.local /user:[email protected] /pass:Passw0rdd1

Сохранить учетные данные для доступа к RDP/RDS серверу:

cmdkey /generic:termsrv/MSKRDS1 /user:kbuldogov /pass:Passw0rdd1

Для анонимного доступа к общей папке под гостевым аккаунтом, нужно добавить учетную запись guest без пароля:

cmdkey /add:192.168.13.200 /user:guest

Для удаленного управления гипервизором через консоль Hyper-V Manager, нужно сохранить пароль администраора Hyper-V:

cmdkey /add:hv19 /user:Administrator /pass:HVpas2ddr

Вывести список сохраненных учетных данных:

cmdkey /list

cmdkey list - вывести список сохраненных учетных записей Windows

Вывести список хранимых учетных данных для указанного компьютера:
cmdkey /list:fs01.winitpro.local

Удалить ранее сохраненные учетные данные:

cmdkey /delete:FS01

Удалить из Credential Manager все сохраненные пароли для RDP доступа:

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

Полностью очистить пароли в Credential Manager:

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

cmdkey - очистка сохраненных паролей в windows

Эта команда позволяет быстро очистить старые сохраненные пароли, из за-которых может постоянно блокировать учетная запись пользователя в AD.

Также для управления сохраненными учетными данными можно использовать утилиту vaultcmd.Вывести список сохраненных учетных данных типа Windows Credentials:

vaultcmd /listcreds:"Windows Credentials"

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

Все сохраненные пароли хранятся в защищенном хранилище Windows Vault. Путь к хранилищу можно получить с помощью команды:

vaultcmd /list

vaultcmd list: хранилище учетных записей и паролей в windows

По умолчанию это %userprofile%\AppData\Local\Microsoft\Vault . Ключ шифрования хранится в файле Policy.vpol. Клю шифровани используется для рашировки паролей в файлах .vcrd.

Для работы 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

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

С помощью командлета Get-StoredCredential вы можете вывести сохраненный пароль, хранящийся в диспетчере учетных данных в отрытом виде.

Выведите список сохраненных учетных данных:

cmdkey.exe /list

Скопируйте значение Target для объекта, пароль которого вы хотите извлечь и вставьте его в следующую команду:

$cred = Get-StoredCredential -Target  LegacyGeneric:target=termsrv/MSKRD2S1
[System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($cred.Password))

Команда выведет сохраненный пароль в открытом виде.

powershell: получить пароль в открытом виде из диспетчера учетных записей Wndows

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

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

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

Также вы можете использовать Get-StoredCredential для безопасного получения сохранённых учетных данных в заданиях планировщика.

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

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

Remove-StoredCredential -Target Contoso


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


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

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

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

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