Диспетчер учетных данных Windows (Credential Manager) позволяет безопасно хранить учетные записи и пароля для доступа к сетевым ресурсам, веб сайтам и приложениям. Благодаря сохраненным в Credential Manager паролям вы можете подключаться без ввода пароля к сетевым ресурсам, которые поддерживаются проверку подлинности Windows (NTLM или Kerbersos), аутентификацию по сертификату, или базовую проверку подлинности.
Содержание:
- Используем диспетчер учетных данных Windows для хранения паролей
- Управление сохраненными учетными данными Windows из командной строки
- Доступ к менеджеру учетных данных Windows из PowerShell
Используем диспетчер учетных данных Windows для хранения паролей
Диспетчер учетных данных встроен в Windows и позволяет безопасно хранить три типа учетных данных:
- Учетные данные Windows (Windows Credentials) — учетные данные доступа к ресурсам, которые поддерживаются Windows аутентификацию (NTLM или Kerbersos). Это могут быть данные для подключения сетевых дисков или общим SMB папкам, NAS устройствам, сохраненные пароли для RDP подключений, пароли к сайтам, поддерживающих проверку подлинности Windows и т.д;
- Учетные данные сертификатов (Certificate-Based Credentials) – используются для доступа к ресурсам с помощью сертификатов (из секции Personal в Certificate Manager);
- Общие учетные данные (Generic Credentials) – хранит учетные данные для доступа к сторонним приложениям, совместимым с Credential Manager и поддерживающим Basic аутентификацию;
- Учетные данные для интернета (Web Credentials) – сохранённые пароли в браузерах Edge и Internet Explorer, приложениях Microsoft (MS Office, Teams, Outlook, Skype и т.д).
Например, если при доступе к сетевой папке вы включите опцию “Сохранить пароль”, то введенный вами пароли будет сохранен в Credential Manager.
Аналогично пароль для подключения к удаленному RDP/RDS серверу сохраняется в клиенте Remote Desktop Connection (mstsc.exe).
Открыть диспетчер учетных данных в Windows можно:
- из классической панели управления (Control Panel\User Accounts\Credential Manager, Панель управления -> Учетные записи пользователей -> Диспетчер учетных данных);
- изкоманднойстроки:
control /name Microsoft.CredentialManager
На скриншоте видно, что в Credential Manager хранятся два пароля, которые мы сохранили ранее.
Сохраненный пароль для RDP подключения сохраняется в формате
TERMSRV\hostname
.
Здесь вы можете добавить сохранённый пароль, отредактировать (просмотреть сохраненный пароль в открытом виде из графического интерфейса нельзя) или удалить любую из записей.
Для управления сохраненными паролями можно использовать классический диалоговый интерфейс Stored User Names and Password. Для его запуска выполните команду:
rundll32.exe keymgr.dll,KRShowKeyMgr
Здесь вы также можете управлять сохраненными учетными данными, а также выполнить резервное копирование и восстановление записей в 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
Вывести список сохраненных учетных данных:
cmdkey /list
Вывести список хранимых учетных данных для указанного компьютера:
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
Также для управления сохраненными учетными данными можно использовать утилиту vaultcmd.Вывести список сохраненных учетных данных типа Windows Credentials:
vaultcmd /listcreds:"Windows Credentials"
Все сохраненные пароли хранятся в защищенном хранилище Windows Vault. Путь к хранилищу можно получить с помощью команды:
vaultcmd /list
По умолчанию это
%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 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
В модуле всего 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'
Проверить, есть в хранилище сохраненные данные:
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))
Команда выведет сохраненный пароль в открытом виде.
Также для получения сохраненных паролей из 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
Сброс изменение кэша подключений, паролей, настроек Windows Reset changing the connection cache , passwords, and Windows settings
«Кэш (кеш) — промежуточный буфер с быстрым доступом, содержащий информацию,
которая может быть запрошена с наибольшей вероятностью.»
Из Wiki.
Удаляем ранее введенную связку пользователь/пароль на сетевую папку Windows
1. Пуск — Выполнить — control userpasswords2
Вкладка «Дополнительно» и «Управление паролями».
2. Пуск — Настройка — Панель Управления — Пользователи и Пароли. Менеджер паролей.
3. Командная строка:
net use * /del
Очищаем кэш DNS
1. Отключаем сетевое подключение, включаем его заново.
2. Командная строка:
ipconfig /flushdns
Изменяем или удаляем настройки ранее использованного сетевого подключения, в частности меняем тип сети
1. Regedit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
Ищем по ProfileName название нужной сети. Меняем её тип в параметре Category, где
0 — Общественная, 1 — Частная, 2 — Доменная.
2. С помощью изменения локальных политик безопасности:
secpol.msc или Панель управления — Система и безопасность — Администрирование — Локальная политика безопасности. Находим требуемую сеть и меняем её настройки через свойства.
Последние записи текущего разделаrecent posts chapter
- RDP Wrapper (терминальный сервер для домашней Windows)
- После обновления Windows 7 x64 система не загружается
- Инструменты панели управления Windows из командной строки
- Инструменты и утилиты Windows из командной строки
- Невозможно подключиться к удаленному рабочему столу Windows
В операционной системе Windows для удаления сохраненных паролей можно удалить определенные файлы в папке вашего пользователя.
Нужно зайти сюда:
C:\Users\<Имя пользователя>\AppDat
При этом папка AppData является скрытой — чтобы зайти в неё, надо или включить отображение скрытых элементов, или дописать путь напрямую в адресной строке.
Теперь удаляем или всю папку с названием интересующей вас программы, или определенные файлы и вложенные папки.
Чтобы избежать ошибок при удалении данных, нужно предварительно закрыть все программы (или удалять сразу после включения компьютера и запуска операционной системы).
Другой вариант — это использовать бесплатную программу CCleaner и аналогичные ей.
В CCleaner имеется инструмент «Стандартная очистка», позволяющая удалить данные браузеров и некоторых приложений.
Нужно отметить галочками интересующие вас пункты и нажать на кнопку «Очистка».
Но и при ручном удалении файлов, и при использовании программ-чистильщиков всё равно могут остаться приложения, где будут сохранены данные для входа.
К примеру, если у вас установлены Вайбер или Телеграм, то придётся дополнительно запускать их и выходить из своего аккаунта.
А что касается Linux-подобных операционных систем, то можно попробовать зайти в папку /home/<Имя пользователя> и покопаться там.
Или сброситься все настройки на начальные путём копирования файлов из папки /etc/skel/.
Хотя для Linux тоже есть программы, позволяющие удалять сохраненные пользовательские данные, — например, BleachBit.
Cached credentials make users’ lives easier, but they can be a security issue in Windows if a device falls into the wrong hands. IT can manage them on a large scale with PowerShell.
Users like cached credentials because they are convenient and keep them from having to type in their login information every time they access their devices. For IT, however, cached credentials are problematic if the credential and the actual password are out of sync or if the computer is lost or stolen.
Cached credentials are securely stored on a computer, but if a determined person wants the information badly enough, he could find a way to translate encrypted credentials into cleartext passwords.
As a result, IT administrators must know how to clear cached credentials from Windows machines. Doing so manually requires logging into the console of each computer individually, going to the Credential Manager in the Control Panel and removing each credential one at a time. The process would be extremely time-consuming for IT pros to do across a large number of computers. They can simplify the process with the cmdkey utility and automate the entire procedure with PowerShell.
Get to know the cmdkey utility
IT can manage or clear cached credentials in a few ways, but the easiest method is to use the command-line cmdkey utility. IT can use the cmdkey tool to list cached credentials, as well as add or remove them. Although cmdkey is not PowerShell, IT can use PowerShell to create a wrapper around it to make the process a little easier.
On its own, the syntax for the cmdkey utility is fairly straightforward. Just use C:\> cmdkey /? to create, display and delete stored usernames and passwords.
The syntax of the command is:
CMDKEY [{/add | /generic}:targetname {/smartcard | /user:username {/pass{:password}}} | /delete{:targetname | /ras} | /l
ist{:targetname}]
To list available credentials:
cmdkey /list
cmdkey /list:targetname
To create domain credentials:
cmdkey /add:targetname /user:username /pass:password
cmdkey /add:targetname /user:username /pass
cmdkey /add:targetname /user:username
cmdkey /add:targetname /smartcard
To create generic credentials:
The /add switch may be replaced by /generic to create generic credentials.
To delete existing credentials:
cmdkey /delete:targetname
To delete remote access server (RAS) credentials:
cmdkey /delete /ras
Bring PowerShell into the mix
It is even easier to use cmdkey with PowerShell. IT can build a small wrapper script that can manage cached credentials on one remote computer at a time and perform the action just as quickly on multiple computers at once.
The following example uses a PowerShell module called PSCredentialManager. IT pros can download the module from the PowerShell Gallery by running Install-Module.
PS> Install-Module -Name PSCredentialManager
Build a Windows automation foundation with PowerShell objects
Once they install the module, they now have all of the commands available inside of it. To query all the locally cached credentials on a computer, simply run Get-CachedCredential, for example. IT pros can also enumerate cached credentials on a remote computer with Get-CachedCredential -ComputerName FOO. This also works for lots of computers at once. Instead of passing a single computer name to the ComputerName parameter, an IT pro can add as many as he’d like separated by a comma:
PS> Get-CachedCredential -ComputerName FOO,BAR,BAZ
The same general method also applies to Remove-CachedCredential, which IT can use to clear cached credentials, as well as the Add-CachedCredential command. All the commands have the same general parameters.
Next Steps
Boost cybersecurity with identity management
What open source identity management options are there?
Four common identity management mistakes to avoid
Dig Deeper on Unified endpoint management
-
Learn to use PowerShell Invoke-RestMethod for API calls
By: Anthony Howell
-
How to set a Git username and password in Git config
By: Cameron McKenzie
-
How to upload and download files with PowerShell FTP script
By: Brien Posey
-
Hone your PowerShell text manipulation skills
By: Richard Siddaway