译者 | 布加迪 审校 | 重楼 51CTO读者成长计划社群招募,设置咨询小助手(微信号 :TTalkxiaozhuli) PowerShell是脚本一种非常全面且易于使用的语言 。但是块日管理员需要保护组织远离不法分子,以免他们利用PowerShell搞破坏活动。志加 作为Windows中的强安全一路原生工具,PowerShell的设置广泛功能使得攻击者很容易利用该语言做文章。越来越多的脚本恶意软件和不法分子使用PowerShell将不同的攻击方法结合起来,或者完全通过PowerShell运行漏洞利用代码。块日这种攻击常常逃避检测,志加是源码下载强安全由于攻击者利用了操作系统的原生组件。 有许多方法和最佳实践可用于保护PowerShell。设置其中最有价值的脚本是PowerShell脚本块日志记录 。脚本块是块日作为一个整体使用的一组语句或表达式。脚本块是志加使用花括号{ }定义一个代码块。 从Windows PowerShell版本4.0开始,强安全脚本块日志记录会生成已执行代码的审计跟踪,但在Windows PowerShell版本5.0中得到了显著改进。Windows PowerShell版本5.0引入了一个日志引擎 ,源码库可以自动解密使用XOR 、Base64和ROT13等方法混淆处理的代码。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 -Force1.2.3.您可以在组策略中设置PowerShell日志记录设置 ,这可以在本地机器上设置 ,也可以通过面向全组织的策略来设置。 打开本地组策略编辑器 ,进入到“计算机配置>管理模板> Windows组件> Windows PowerShell >打开PowerShell脚本块日志记录”。
图1. 从Windows中的云计算本地组策略编辑器设置PowerShell脚本块日志记录 当您启用脚本块日志记录时,编辑器会开启一个额外的选项:当命令 、脚本块、函数或脚本启动和停止时 ,通过“日志脚本块调用启动/停止事件”来记录事件。这有助于跟踪事件发生的时间 ,尤其是针对长时间运行的后台脚本。这个选项在日志中生成大量的额外数据 。
图2. 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.json1.使用Nano文本编辑器等工具修改文件 ,并粘贴以下配置。 复制{ "PowerShellPolicies": { "ScriptBlockLogging": { "EnableScriptBlockInvocationLogging": false,"EnableScriptBlockLogging": true}},"LogLevel": "verbose"}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.三 、测试PowerShell脚本块日志记录测试配置很容易 。从命令行运行以下命令 。 复制PS /> { "log me!" }"log me!"1.2.3.四、查看Windows操作系统上的日志您如何知道要留意哪些条目?需要留意的主要事件ID是4104 。这是ScriptBlockLogging条目,对应含有用户和域 、记录的日期和时间、计算机主机以及脚本块文本的信息。 打开事件查看器 ,进入到以下日志位置 :“Applications and Services Logs > Microsoft > Windows > PowerShell > Operational” 。 点击事件 ,直到从测试中找到标为事件ID 4104的条目 。针对该事件过滤日志 ,以加快搜索速度 。
图3. Windows事件查看器中的事件4104详细说明了Windows计算机上的PowerShell活动 在Windows操作系统上的PowerShell Core中 ,日志位置是:Applications and Services Logs > PowerShellCore > Operational 。 五、非Windows系统上的日志位置在Linux上 ,PowerShell脚本块日志将记录到syslog。其位置将因发行版而异 。在本教程中,我们使用Ubuntu ,其syslog在/var/log/syslog目录下 。 运行以下命令显示日志条目 。值得注意的是,该命令需要提升的权限,因此您将需要使用sudo命令。 复制sudo cat /var/log/syslog | grep "{ log me! }"2019-08-20T19:40:08.070328-05:00 localhost powershell[9610]: (6.2.2:9:80) [ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose] Creating Scriptblock text (1 of 1):#012{ "log me!" }#012#012ScriptBlock ID: 4d8d3cb4-a5ef-48aa-8339-38eea05c892b#012Path:1.2.3.在Linux上设置集中式服务器不一样,因为您默认使用syslog 。您可以使用许多不同的工具将日志发送到日志聚合服务,以便从中心位置跟踪PowerShell活动。Rsyslog是一种流行的选择 ,但其他选项包括Dynatrace 、New Relic和Datadog。 原文链接:https://www.techtarget.com/searchwindowsserver/tutorial/Set-up-PowerShell-script-block-logging-for-added-security
|
iOS10.2.1省电的技巧(提高iPhone续航的有效方法)以梅捷主板装机教程为主题的详细指南(从选购到装配,助你轻松打造个人电脑)苹果7充电的实用指南(从选择充电器到延长电池寿命,助你解决苹果7充电难题)HPStream13(一款适合日常使用的经济实惠之选)选择虚拟光驱软件,享受便捷光盘管理(比较虚拟光驱软件,找到最佳解决方案)从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践使用U盘重装系统教程(简明易懂的U盘重装系统步骤及技巧)androidM有什么功能 安卓M系统功能一览安卓android5.0怎么样?七彩虹H81M主板的强大性能和稳定性(打造出色电脑体验的首选主板)企业服务器网站建设香港物理机亿华云云服务器b2b信息平台源码库