设定PowerShell脚本块日志以加强安全
PowerShell是一种非常全面且易于使用的语言。但是管理员需要保护组织远离不法分子,以免他们利用PowerShell搞破坏活动。 PowerShell脚本块日志有助于在安全泄密后分析事件,以便提供额外的洞察力。它还可以帮助IT人员更主动地监视恶意事件。比如说,如果您在Windows中设置了事件订阅,可以将感兴趣的事件发送到集中服务器,进行更仔细的观察。 一、设置Windows系统以实现日志功能 在Windows系统上配置脚本块日志的两种主要方法是直接设置注册表值,或在组策略对象中指定适当的设置。 要通过注册表配置脚本块日志记录,请在以管理员的身份登录时使用以下代码。 New-Item -Path "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -Force Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -Name "EnableScriptBlockLogging" -Value 1 -Force 您可以在组策略中设置PowerShell日志记录设置,这可以在本地机器上设置,也可以通过面向全组织的策略来设置。 打开本地组策略编辑器,进入到“计算机配置>管理模板> Windows组件> Windows PowerShell >打开PowerShell脚本块日志记录”。 二、如何在非Windows系统上配置脚本块日志记录? PowerShell Core是PowerShell的跨平台版本,适用于Windows、Linux和macOS。要在PowerShell Core上使用脚本块日志,您就需要在$PSHome目录下的PowerShell .config.json文件中定义配置,该文件对于安装的每个PowerShell都是唯一的。 从PowerShell会话进入到$PSHome,使用Get-ChildItem命令查看PowerShell.config.json文件是否存在。如果不存在,您需要创建该文件。这么做的方法因操作系统而异。虽然可以使用文本编辑器,但也可以从命令行创建所需的文件。比如在Linux机器上,您可以使用这个命令。 sudo touch powershell.config.json 使用Nano文本编辑器等工具修改文件,并粘贴以下配置。 { "PowerShellPolicies": { "ScriptBlockLogging": { "EnableScriptBlockInvocationLogging": false, "EnableScriptBlockLogging": true } }, "LogLevel": "verbose" 三、测试PowerShell脚本块日志记录 测试配置很容易。从命令行运行以下命令。 PS /> { "log me!" } "log me!" 四、查看Windows操作系统上的日志 您如何知道要留意哪些条目?需要留意的主要事件ID是4104。这是ScriptBlockLogging条目,对应含有用户和域、记录的日期和时间、计算机主机以及脚本块文本的信息。 打开事件查看器,进入到以下日志位置:“Applications and Services Logs > Microsoft > Windows > PowerShell > Operational”。 点击事件,直到从测试中找到标为事件ID 4104的条目。针对该事件过滤日志,以加快搜索速度。 (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |