Если я сохраню пароль для запланированной задачи или в учетных данных службы, безопасно ли это?
Мне кажется, что Windows каким-то образом сохраняет этот пароль в зашифрованном виде, но поскольку Windows должна его расшифровать, то это может сделать любой, у кого есть автономный доступ к компьютеру.
Это правда? Есть ли инструменты для восстановления этих паролей?
В Task Scheduler 2.0 (Vista и новее) пароли сохраняются с помощью Диспетчер учетных данных Windows:
Планировщик задач в Windows Vista поддерживает новый диспетчер учетных данных, который является частью модели изоляции безопасности. В этой модели каждый набор задач, выполняемых в определенном контексте безопасности, запускается в отдельном сеансе. Пароли теперь хранятся в службе Credentials Manager (CredMan). Вы можете использовать интерфейсы шифрования с CredMan, чтобы предотвратить кражу сохраненных паролей вредоносными программами.
Технически диспетчер учетных данных («Ящик для учетных данных» в более новых версиях Windows) является хранение паролей на локальном диске:
Пользователи могут выбрать сохранение паролей в Windows с помощью приложения или апплета панели управления Credential Manager. Эти учетные данные хранятся на жестком диске и защищены с помощью интерфейса прикладного программирования защиты данных (DPAPI). Любая программа, запущенная от имени этого пользователя, сможет получить доступ к учетным данным в этом магазине..
(курсив мой)
Хотя Credential Manager улучшает методы шифрования и архитектуру безопасности по сравнению с устаревшей службой защищенного хранилища (PStore), используемой с более ранней версией планировщика заданий, что расти Написанное остается в силе: все, что было сохранено, можно получить, независимо от того, доступны ли еще инструменты для этой задачи.
Да, есть инструменты для извлечения учетных данных, хранящихся для запланированной задачи. Эти инструменты требуют повышенных привилегий, как и другие инструменты для извлечения учетных данных.
Например:
Так! Если psexec находится в моем PATH, а netpass.exe находится в C: \, я мог бы запустить это:
psexec -i -s -d C:\netpass.exe
Это откроет netpass, где вы увидите учетные данные для запланированных задач с учетной записью runas. Я тестировал это со стандартными учетными записями домена в Windows Server 2008 R2 и Window Server 2012 R2. Могут быть ограничения в новых операционных системах или для определенных типов учетных записей.
Ура!
Насколько я понимаю, пароли хранятся в DPAPI. Так что да, они хранятся локально, но они не хранятся в виде открытого текста и требуют правильного ключа шифрования, чтобы их можно было отозвать / расшифровать. Из удаленной памяти при работе с этим материалом ключ шифрования извлекается из учетных данных текущего зарегистрированного пользователя, который хранит информацию, поэтому, теоретически, только этот пользователь может извлечь данные и расшифровать их.
В случае планировщика задач я предполагаю, что данные хранятся в учетной записи, под которой запускается планировщик задач, поэтому любой, кто может олицетворять эту учетную запись (может быть SYSTEM
по умолчанию) может извлекать данные.
«Насколько это безопасно?» - вопрос полностью субъективный. Если вы не зашифруете данные на диске и не храните ключ подальше от диска, теоретически его можно получить.