Управление сохраненными паролями с помощью Windows Credential Manager
09.08.2021
itpro
PowerShell, Windows 10, Windows Server 2019
комментария 3
Windows Credential Manager (диспетчер учетных данных) позволяет сохранять учетные записи и пароли для доступа к сетевым ресурсам, сайтам и приложениям. Благодаря диспетчеру учётных записей Windows вы можете подключаться к удаленным ресурсам автоматически, без ввода пароля. Приложения могут самостоятельно обращаться в Credential Manager и использовать сохраненный пароль.
Используем диспетчер учетных данных Windows для хранения паролей
Впервые Credential Manager появился в Windows 7 и позиционируется как достаточное безопасное место для хранения ваших паролей.
В диспетчере учетных данных могут хранится следующие типы аккаунтов:
-
Учетные данные Windows (Windows Credentials)– данные для входа в Windows, для доступа на удаленные компьютеры, сохраненные пароли для RDP подключений, пароли к сайтам, поддерживающих встроенную аутентификацию Windows и т.д;
Например, если при доступе к сетевой папке вы включите опцию “Сохранить пароль”, то введенный вами пароли будет сохранен в Credential Manager.

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

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

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

Здесь вы также можете управлять сохраненными учетными данными, а также есть функции резервного копирования и восстановления данных в Credential Manager (можно использовать для переноса базы Credential Manager на другой компьютер).
Для управления Credential Manager из командной строки используется утилита vaultcmd . Например, чтобы вывести список сохраненных учетных данных типа Windows Credentials выполните команду:
vaultcmd /listcreds:»Windows Credentials»

Следующая команда удалит из 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 .

Для работы Credential Manager должна быть запущена служба VaultSvc:
Если служба отключена, при попытке получить доступ к Credential Manager появится ошибка
Если вы хотите заблокировать пользователям возможность сохранения сетевых паролей в 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.

Теперь, если пользователь попытается сохранить пароль в хранилище, появится ошибка:
Доступ к менеджеру учетных данных Windows из PowerShell
В Windows нет встроенных командлетов для обращения к хранилищу PasswordVault из PowerShell. Но вы можете использовать модуль CredentialManager из галереи PowerShell.
Список командлетов в модуле можно вывести так:
get-command -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
Сохраненные пароли из Credential Manager можно использовать в ваших скриптах PowerShell. Например, в следующем примере я получаю сохраненные имя и пароль в виде объекта PSCredential и подключаюсь с ними к Exchange Online из PowerShell:
$psCred = Get-StoredCredential -Target «Contoso»
Connect-MSolService -Credential $psCred
Чтобы удалить определенную учетные данные из Windows Vault, выполните:
Remove-StoredCredential -Target Contoso
Отобразить пароли в открытом виде с помощью встроенных средств нельзя. Но вы можете использовать утилиты типа Mimikatz для получения сохраненных паролей из credman в открытом виде (смотри пример).
Предыдущая статья Следующая статья
Как извлечь данные из диспетчера учетных данных Windows

Диспетчер учетных данных Windows (Credential Manager), — это механизм, который позволяет управлять регистрационными данными пользователей (логин и пароль) для доступа к сетевым ресурсам, а также сертификатами и учетными данными для различных приложений (электронной почты, веб-сервисов и прочих).
В этой статье я покажу, как вытащить информацию из диспетчера учетных данных Windows.
Как извлечь данные из диспетчера учетных данных Windows
Рассмотрим работу с диспетчером учетных данных на примере RDP.

Сохраненные учетные данные в WCM через графический интерфейс
Найти те же данные с помощью командной строки можно следующим образом (для английской локалки следует использовать строку /listcreds:»Windows Credentials».):

Сохраненные учетные данные в WCM через командную строку
Эти учетные данные хранятся в каталоге пользователя:

Учетные данные пользователя
Посмотрим на эти данные.

Содержимое хранилища учетных данных
Самое интересное здесь — это pbData (данные, которые нужно расшифровать) и guidMasterKey. Как получить мастер-ключ, мы рассмотрели раньше (эту стадию мы пропустим). Давайте расшифруем учетные данные.

Расшифрованные учетные данные пользователя
Подобным образом можно извлечь любые данные, сохраненные в WCM.
На этом все. Теперь вы знаете, как расшифровать и просмотреть пароль в диспетчере учетных данных Windows.
Эффективное получение хеша паролей в Windows. Часть 6
Windows сохраняет пароли в обратимом виде не только в секретах LSA, но и в других местах.
Учетные записи сетевых служб
Когда вы заходите на сетевой ресурс, например, общую папку, прокси-сервер с NTLM-аутентификацией, СУБД, почтовый сервер и.т.п, то часто вы можете сохранить свой пароль, просто поставив галочку в поле “Запомнить пароль”.
На самом деле в таких случаях Windows сохраняет имена пользователей и пароли в диспетчере учетных данных (Credential Manager). Хранение учетных данных позволяет Windows использовать технологию единого доступа (SSO), введенную еще в Windows XP. Благодаря SSO, каждый раз, когда пользователю необходимо аутентифицироваться на сетевом ресурсе, ему не нужно заново вводить свои учетные данные.
Пароли в диспетчере учетных данных шифруются с помощью подсистемы DPAPI, и их можно получить в незашифрованном виде.
В диспетчере учетных данных вы можете также просматривать, редактировать и добавлять информацию. На системах Windows Vista и выше диспетчер доступен в Control Panel\User Accounts and Family Safety\Credential Manager или Control Panel\User Accounts and Family Safety\User Accounts \\Manage your credentials (Панель управления\Учетные записи пользователей\Администрирование учетных записей).
Для схожих целей в Windows существует Защищенное хранилище (Protected Storage). Приложения типа Internet Explorer и Outluook Express сохраняют в защищенном хранилище пароли от почтовых учетных записей; почтовые пароли шифруются с помощью CryptoAPI, причем ключ шифрования генерируется из пользовательского пароля, следовательно, почтовые пароли также можно получить в незашифрованном виде.
Сторонние программы (Chrome, RealVNC Client, Thunderbird и др.) сохраняют пароли от web-сайтов разными способами: некоторые в реестре, другие с помощью Windows API сохраняют их в диспетчере учетных записей или в защищенном хранилище, третьи хранят пароли в файлах. Но в независимости от того, какой именно способ используется программой, пароли хранятся в обратимом виде, и, значит, у нас есть возможность получить незашифрованные пароли от сайтов.
Получение информации из диспетчера учетных записей
В первую очередь я рекомендую Network Password Recovery (netpass) от NirSoft. Утилита работает стабильно и представляет собой самостоятельный EXE-файл. Убедитесь, что на 64-разрядных архитектурах вы запускаете 64-разрядную версию программы.
Cain & Abel также может успешно слить информацию из диспетчера учетных данных. Единственная проблема заключается в том, что утилита работает только локально, и поэтому, если на целевой системе прав устанавливать программное обеспечение у вас нет, лучше утилиту не использовать.
Также рекомендую Network Password Recovery (не путать с одноименной утилитой от NirSoft) от Passcape. Но имейте в виду, что пробная версия показывает только три первых символа полученных паролей.
Не следует использовать пост-эксплойт модуль windows/gather/credentials/enum_cred_store из фреймворка Metasploit, так как модуль всегда завершается аварийно, вне зависимости от версии Windows.
Получение информации из защищенного хранилища
Еще одна рекомендуемая утилита (в действительности пакет утилит) – это carrot.
А вот утилита fgdump в данном случае неэффективна, ее использовать не советую.
Получение учетных данных из сторонних программ
Также если удалось запустить Meterpreter на целевой системе, то вам очень пригодятся фреймворк Metasploit: во фреймворке есть несколько пост-эксплойт модулей, специально для таких целей. Некоторые из модулей работают стабильно, а другие пока бета-версии и часто завершаются аварийно.
К каким угрозам ведет получение учетных записей сетевых служб
Важный шаг на пути к компрометации всей сети – это получение информации о том, какую роль играет именно захваченная вами машина. Если рабочая станция используется ежедневно, то высоки шансы, что пользователь этой рабочей станции имеет доступ к корпоративной почте, внутренним web-сайтам, корпоративному прокси-серверу и другим службам. И, что еще более вероятно, пользователь везде, где можно выбрал “Запомнить пароль”.
“Бесплатный” доступ к таким корпоративным сервисам даже с правами низкопривилегированного пользователя на самом деле бесценен. Автоматический ввод учетных данных поможет вам расширить контроль в сети, а также показать заказчику, что к защите даже самой незначительной, удаленной от демилитаризованной зоны рабочей станции нужно подходить с особой внимательностью.
Очень часто пользователи для доступа к почте, общим папкам и другим сетевым ресурсам используют одни и те же пароли (иногда даже пароль совпадает с паролем учетной записи доменного пользователя), поэтому получение учетных записей сетевых служб имеет огромное значение во время теста на проникновение.
Описанные в этой статье утилиты я добавил в таблицу. Буду рад вашим отзывам и предложениям!
Диспетчер учетных данных в Windows 7
Диспетчер учетных данных, или Credential Manager — это механизм, который позволяет управлять регистрационными данными пользователей (логин и пароль) для доступа к сетевым ресурсам, а также сертификатами и учетными данными для различных приложений (электронной почты, веб-сервисов и т. п.).
Например, мы хотим получить доступ к папке, находящейся на другом компьютере, и удаленный компьютер запрашивает наши учетные данные. Вводим логин, пароль и отмечаем галочкой пункт «Запомнить учетные данные».

Или, при подключении к удаленному рабочему столу разрешаем сохранение учетных данных, чтобы не вводить их каждый раз.

Все сохраненные таким образом учетные данные попадают в так называемое Хранилище Windows (Windows Vault), в котором по умолчанию хранятся все учетные данные. На самом деле, хранилище — это просто более понятное название папки Credentials. Для доменных пользователей эта папка находится по адресу: C:\Пользователи\Имя_пользователя\AppData\Roaming\Microsoft (в англ. версии C:\Users\Имя_пользователя\AppData\Roaming\Microsoft), для локальных — C:\Пользователи\Имя_пользователя\AppData\Local\Microsoft (в англ. версии C:\Users\Имя_пользователя\AppData\Local\Microsoft). Все файлы в этой папке, естесственно, зашифрованы, и доступ к ним осуществляется как раз с помощью Диспетчера учетных данных.
Открыть его можно через Панель управления, или просто набрав в строке поиска Диспетчер учетных данных (Credentials Manager для англоязычной версии).

Вот так выглядит Диспетчер учетных данных. Все данные в нем сгруппированы по трем категориям:
• Учетные данные Windows (Windows Credentials) — это имена и пароли, которые используются для доступа к общим сетевым папкам, веб-сайтам, применяющим интегрированную аутентификацию Windows (Windows Integrated Authentication), а также при подключении к удаленному рабочему столу;
• Учетные данные на основе сертификатов (Certificate-Based Credentials) — предназначены для аутентификации с помощью смарт-карт;
• Общие учетные данные (Generic Credentials) — используются сторонними приложениями, для которых требуется отдельная авторизация с учетными данными, отличными от тех, что применяются для входа в систему. В этом разделе могут храниться практически любые учетные данные, соответствующие стандартам Microsoft.

Все учетные данные можно развернуть и подробно посмотреть, а при желании и отредактировать.

Учетные данные можно не только сохранять в процессе подключения, но и вводить прямо в диспетчере. Для этого надо выбрать раздел и нажать на ссылку «Добавить учетные данные». В качестве примера добавим учетные данные для подключения к закрытому веб-сайту http://contoso.com в раздел «Общие учетные данные».

Теперь данные сохранены в хранилище, и при подключении к данному ресурсу не потребуется их вводить.

Строго говоря, с веб-сайтами история отдельная. Диспетчер учетных данных отвечает далеко не за все данные, используемые для для доступа к интернет-ресурсам. Большинство этих данных обрабатываются и хранятся в самом браузере. В Internet Explorer, например, есть для этого специальная функция автозаполнения (AutoComplete).
Этот недостаток попытались исправить в Windows 8, где в Диспетчере учетных данных есть отдельный раздел под названием «Учетные данные для Интернета». И если вы укажете сохранить, к примеру пароль от Яндекс-почты, то он будет сохранен именно здесь. Однако работает эта возможность только с Internet Explorer, остальные браузеры ей не пользуются и по прежнему хранят все данные у себя.

Архивирование и восстановление
Прямо под значком «Хранилище Windows» расположены две ссылки: «Архивирование хранилища» и «Восстановление хранилища». Таким образом учетные данные можно забекапить на случай удаления или повреждения хранилища, или перенести с одного компьютера на другой.
Архивирование данных осуществляется специальным мастером. Процедура несложная — указываем, куда сохранить архив (рекомендуется на съемный носитель), затем задаем пароль для доступа к нему. Пароль задается обязательно с использованием безопасного рабочего стола (Secure Desktop). Это необходимо даже в том случае, если безопасный рабочий стол отключен.

Восстановление проходит по схожему сценарию — указываем месторасположение архива и вводим пароль, также на Secure Desktop.

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