首页 文章

PowerShell执行策略被powershell.exe参数破坏了吗?

提问于
浏览
2

在PowerShell中,除了试图控制哪些脚本文件可以运行之外,限制性执行策略是否有优势?默认情况下,不允许运行PowerShell脚本,但似乎恶意方想要运行PowerShell脚本,他们只需使用BAT文件引导到它,该文件调用PowerShell并将-ExecutionPolicy参数设置为“bypass” .

我错过了什么,或者这是否打败了执行政策机制?为什么在只能使执行策略限制较少时签署脚本(looks like quite a hassle)?

下面是我编写的BAT脚本,它创建一个未签名的ps1文件并运行它 . 它适用于执行策略为Restricted的计算机,该策略应该禁止脚本 . UAC已启用,未显示任何提升提示 . 它甚至拨打互联网并获得"Hey, Scripting Guy!"博客的最新 Headers .

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

2 回答

  • 0

    执行策略将阻止某人修改由其他人运行的现有脚本,或者作为自动过程(例如,计划任务) . 从安全角度来看,使用该.bat文件与编译代码以在.exe中执行相同操作没有什么不同 .

    此外,当机器上的the execution policy is set via local/group policy时,-ExecutionPolicy参数不起作用(根据Ansgar对该问题的评论) .

  • 0

    禁止脚本的默认PowerShell执行策略仅用于防止意外调用脚本 . 通过执行以下操作,即使在没有每个实例参数的早期版本的powershell上,也可以轻易地违反它

    • 打开要在记事本中运行的任何脚本

    • 将内容复制到剪贴板

    • 将剪贴板粘贴到powershell实例

    任何真正想要运行脚本的人都可以使用这个或其他各种机制来实现 . 它对防止无意执行脚本非常有用

相关问题