任务计划程序如何在 Windows 7 上保存密码?

任务计划程序如何在 Windows 7 上保存密码?

如果我保存了计划任务或服务登录凭据的密码,这样安全吗?

在我看来,Windows 以某种方式加密保存了该密码,但由于 Windows 必须解密它,因此任何可以离线访问计算机的人也都可以解密它。

这是真的吗?有工具可以恢复这些密码吗?

答案1

使用任务计划程序 2.0(Vista 及更新版本)时,密码使用Windows 凭据管理器

Windows Vista 中的任务计划程序支持新的凭据管理器,它是安全隔离模型的一部分。在此模型中,在特定安全上下文中运行的每组任务都在单独的会话中启动。密码现在存储在凭据管理器 (CredMan) 服务中。您可以将加密接口与 CredMan 结合使用,以防止恶意软件窃取存储的密码。

从技术上讲,凭证管理器(“凭证柜”在较新的 Windows 版本中) 将密码存储在本地磁盘上

用户可以选择使用应用程序或通过凭据管理器控制面板小程序在 Windows 中保存密码。这些凭据存储在硬盘驱动器上,并使用数据保护应用程序编程接口 (DPAPI) 进行保护。以该用户身份运行的任何程序都将能够访问此存储中的凭据

(强调添加)

尽管凭据管理器改进了加密方法和安全架构,优于任务计划程序早期版本中使用的已弃用的受保护存储 (PStore) 服务,但格鲁瑟所写的内容仍然有效:无论是否有可用于此任务的公开工具,都可以检索已保存的任何内容。

答案2

是的,有一些工具可以提取为计划任务存储的凭据。这些工具需要提升权限,就像其他凭据提取工具一样。

例如:

那么!如果 psexec 在我的 PATH 中,并且 netpass.exe 在 C:\ 中,我可以运行以下命令:

psexec -i -s -d C:\netpass.exe

这将打开 netpass,您将在其中看到使用 runas 帐户执行计划任务的凭据。我已经在 Windows Server 2008 R2 和 Windows Server 2012 R2 上使用标准域帐户对此进行了测试。较新的操作系统或某些类型的帐户可能会存在限制。

干杯!

答案3

我的理解是密码存储在数据处理应用程序接口。所以是的,它们存储在本地,但它们不是以纯文本形式存储的,需要正确的加密密钥才能调用/解密它们。从处理这些东西的遥远记忆中,加密密钥是从存储信息的当前登录用户的凭据中派生出来的,因此,理论上,只有该用户可以提取数据并解密。

在任务调度程序的情况下,我想象数据由任务调度程序运行的帐户存储,因此任何可以模仿该帐户(可能是SYSTEM默认)的人都可以检索数据。

“是否安全”是一个完全主观的问题。除非你加密磁盘上的数据并将密钥远离磁盘,否则理论上数据是可以被恢复的。

相关内容