security - 在 $env 变量的中,存储密码是否安全?

  显示原文与译文双语对照的内容
0 0

我的$profile 中有一些脚本需要用于连接到企业VPN或者向虚拟虚拟机发送命令的密码。

我不想反复键入这些密码,并将密码存储在我的$profile 中不安全。 所以我找到了一个解决方案。 在 $profile 启动时,我做了如下


$env:VpnPassword = (Get-Credential DomainGeorge.Mauer).GetNetworkCredential().Password

所以当powershell开始我输入一个密码,在任何脚本我可以使用 $env:VpnPassword

我已经确认变量只能在PS会话中使用。 我的推理是,因为它似乎存在于记忆中,这是存储它的一个合理安全的地方。

我的逻辑声音我正在创建的值只存储在内存中? 那么页面文件是什么东西可以用来抓取这些字符串? 是否有更好的方法来实现我想要做的,而不引入整个系统?

时间: 原作者:

0 0

我验证了 $env 只在ram中。 当PS关闭时它没有留下指针。 基础析构函数即使将 PS exe打破进行冲突,它仍然会清理。 即使使用共享内存攻击,这个地址空间仅适用于bapi等内核模式驱动程序。 你需要知道数据的确切内存地址和大小,以便找到有足够高的进程。 也就是说,我没有看到任何需要加密的地方。

这个答案将在wm_close上开始自毁序列。

...