回到ActiveX的黑暗时代,如果用户真的想从不受信任的来源运行 ActiveX 控件,他们可以这样做。Internet Explorer 发出的警告是为了阻止用户无意中运行恶意代码,而不是阻止该代码在任何情况下运行。
最终它是用户的浏览器,用户的计算机,他们应该控制它所做的一切。浏览器只是说'嘿,这可能很糟糕......'
完全相同的原则也适用于 PowerShell 的执行策略。一旦 PowerShell 运行,它就可以访问用户有权访问的所有资源。
那么,作为管理员,为什么我不能阻止任何未签名的脚本运行呢?
完全阻止用户运行脚本是不可能管理的,因为如果他们有权访问 PowerShell shell,他们就可以逐行运行脚本中的命令。
作为管理员,通过授予用户对 PowerShell 的访问权限,您信任用户运行 PowerShell 代码。无论是脚本形式,还是在 PowerShell 提示符下坐下来破解。
执行策略的概念是一种确保脚本来自何处的方法。如果用户已在计算机上安装了适当的证书,并用它签署了脚本,那么 PowerShell 将信任该脚本。PowerShell 将信任脚本,因为用户信任证书,因为证书在用户证书存储中。如果该用户随后运行一个被认为受信任但未由受信任证书签名的脚本,它将警告用户该脚本不受信任。
一旦进入未经授权的进程可以运行的阶段,
PowerShell.exe –ExecutionPolicy Bypass –File c:\temp\bad-script.ps1
你已经失去了你的机器。如果用户运行它,那么遵循允许该用户运行恶意 ActiveX 代码的相同原则,他们将被允许运行恶意 PowerShell 脚本。
PowerShell 只会警告您即将做一些愚蠢的事情。它无法阻止一个坚定的白痴。
这主要是从PowerShell 的安全指导原则中重写(窃取)的。
用你的比喻来概括:一旦窃贼越过你的电栅栏、武装警卫和野狗,你不妨让他们按下按钮关闭警报。这将避免他们把它从墙上撕下来吃掉。