【发布时间】:2019-08-02 18:53:59
【问题描述】:
在 PowerShell 中,除了尝试控制哪些脚本文件可以运行之外,限制性执行策略还有其他优势吗?
默认情况下,不允许运行 PowerShell 脚本,但似乎如果恶意方想要运行 PowerShell 脚本,他们可以使用调用 PowerShell 且 -ExecutionPolicy 参数设置为“绕过”的 BAT 文件引导进入该脚本.
我是否遗漏了什么,或者这是否破坏了执行策略机制?当您可以减少执行策略的限制时,为什么要签署脚本(looks like quite a hassle)?
下面是我编写的一个 BAT 脚本,它创建一个未签名的 .ps1 文件并运行它。它在执行策略为Restricted 的机器上工作,这应该禁止脚本。 UAC 已打开且不显示任何提升提示。它甚至可以拨出到 Internet 并获取 "Hey, Scripting Guy!" 博客的最新标题。
echo write-host "`r`nPowershell code running on $(hostname).`r`n`r`nHere's the latest headline from the 'Hey, Scripting Guy!' blog: '$(([xml](New-Object Net.WebClient).DownloadString("http://blogs.technet.com/b/heyscriptingguy/atom.aspx")).feed.entry[0].title)'.`r`n`r`nPress Enter to close.`r`n"; read-host > script.ps1
powershell -ExecutionPolicy bypass -Command .\script.ps1
【问题讨论】:
-
请注意,当执行策略通过本地/组策略定义时,绕过执行策略将失败。
标签: powershell