GHOST系统之家 - Windows系统光盘下载网站!
当前位置:GHOST系统之家>系统问题 > 设置PowerShell脚本块日志以加强安全

设置PowerShell脚本块日志以加强安全

来源:Ghost系统之家浏览:时间:2023-04-11 09:16:55

设置PowerShell脚本块日志以加强安全

译文作者:布加迪 2023-04-07 17:22:10安全 应用安全 本文介绍如何设置系统以捕获异常PowerShell行为,从而加强防御。

译者 | 布加迪

审校 | 重楼

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" -ForceSet-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -Name "EnableScriptBlockLogging" -Value 1 -Force

您可以在组策略中设置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.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的条目。针对该事件过滤日志,以加快搜索速度。

图片

图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:

在Linux上设置集中式服务器不一样,因为您默认使用syslog。您可以使用许多不同的工具将日志发送到日志聚合服务,以便从中心位置跟踪PowerShell活动。Rsyslog是一种流行的选择,但其他选项包括Dynatrace、New Relic和Datadog。

原文链接:https://www.techtarget.com/searchwindowsserver/tutorial/Set-up-PowerShell-script-block-logging-for-added-security

责任编辑:武晓燕 来源:51CTO技术栈 PowerShell脚本块日志

推荐系统

  • 微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载

    微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载

    语言:中文版系统大小:5.13GB系统类型:Win11

    微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化  1、保留 Edge浏览器。  2、隐藏“操作中心”托盘图标。  3、保留常用组件(微软商店,计算器,图片查看器等)。  5、关闭天气资讯。 

  • Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载

    Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载

    语言:中文版系统大小:4.75GB系统类型:Win11

    Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件

  • windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化

  • 微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载

  • 微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    语言:中文版系统大小:0MB系统类型:Win11

    微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为

  • 雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    语言:中文版系统大小:4.75GB系统类型:

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统

  • 雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    语言:中文版系统大小:5.91GB系统类型:Win7

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户

  • 番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载

    番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载

    语言:中文版系统大小:3.91GB系统类型:Win7

    欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统