Powershell简介

Powershell简介
PowerShell是一种功能强大的脚本语言和shell程序框架,主要用于Windows计算机方便管理员进行系统管理并有可能在未来取代Windows上的默认命令提示符。PowerShell脚本因其良好的功能特性常用于正常的系统管理和安全配置工作,然而,这些特性被攻击者理解并转化为攻击特性,也就成为了攻击者手中的攻城利器,给企业网络造成威胁。

百度百科解释:
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。
它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。
Windows PowerShell v3将伴随着Microsoft Hyper-V 3.0和Windows Server 2012发布。PowerShell v3是一个Windows任务自动化的框架,它由一个命令行shell和内置在这个.NET框架上的编程语言组成。
PowerShell v3采用新的cmdlet让管理员能够更深入到系统进程中,这些进程可以制作成可执行的文件或脚本(script)。一条cmdlet是一条轻量命令,Windows PowerShell运行时间在自动化脚本的环境里调用它。
Cmdlet包括显示当前目录的Get-Location,访问文件内容的Get-Content和结束运行进程的Stop-Process。
PowerShell v3在Windows Server 8中装载了Windows Management Framework 3.0。PowerShell运行环境也能嵌入到其它应用。

Powershell版本特性
PowerShell V2
PowerShell V2提供事件记录能力,可以协助蓝队进行相关的攻击事件推断和关联性分析,但是其日志记录单一,相关Post-Exploitation可做到无痕迹;并且因为系统兼容性,在后续版本攻击者都会尝试降级至此版本去躲避日志记录。

PowerShell V3/V4
PowerShell V3/V4 相比之前提供了更全面的日志记录功能。Windows PowerShell 3.0 改进了对命令和模块的日志记录和跟踪支持。 自PowerShell v3版本以后支持启用PowerShell模块日志记录功能,并将此类日志归属到了4103事件。PowerShell模块日志可以配置为记录所有的PowerShell模块的活动情况,包括单一的PowerShell命令、导入的模块、远程管理等。可以通过GPO进行启用模块日志记录。

PowerShell V5
PowerShell V5加入了CLM和ScriptBlock日志记录功能,能去混淆PowerShell代码并记录到事件日志。随着PowerShell攻击技术的不断成熟,攻击者为了规避防护和日志记录进行了大量的代码混淆,在执行代码之前很难发现或确认这些代码实际上会做些什么事情,给攻击检测和取证造成了一定的困难,因此微软从PowerShell5.0开始加入了日志转储、ScriptBlock日志记录功能,并将其归入到事件4104当中,ScriptBlock Logging提供了在事件日志中记录反混淆的 PowerShell 代码的能力。

PowerShell V6
PowerShell V6 出于功能需求,提供了更全面的系统覆盖能力。由于PowerShell在Linux和MacOS等操作系统上的支持在MacOS上安装(pwsh),处于安全性考虑日志记录作为必不可少的一部分,PowerShell使用本机os_log API登录Apple的统一日志记录系统。在Linux上,PowerShell使用Syslog,微软将此上升成为一种几乎全平台支持的日志记录解决方案。

PowerShell V7
PowerShell V7(PS7)基于.NET Core 3.0,Microsoft旨在提供与Windows PowerShell模块更高的兼容性,高达90%。作为PowerShell 7的一部分,Microsoft在之前的日志记录基础上,增加了一种安全使用本地或远程存储中的凭据的方法,以便不需要将密码嵌入到脚本中。还将改进日志记录,以提供将本地计算机日志发送到远程设备的机制,而不管原始操作系统如何。

Powershell日志
Powershell审核策略
PowerShell安装完成之后,日志记录默认是不开启的,需要管理员用户手动开启日志记录功能。

  1. 按Win+R打开Windows运行窗口,在输入框里输入gepdit.msc,打开Windows本地组策略编辑器;
  2. 找到计算机配置/管理模板/Windows组件/Windows Powershell,根据需求打开右侧所需要的日志功能;

在这里插入图片描述

Powershell日志说明
在这里插入图片描述
在这里插入图片描述

简单的Powershell威胁狩猎
配置完Powershell审核策略后,我们可以进行一次简单的威胁狩猎来验证一下,通过Powershell模拟执行Get-process获取系统进程信息,然后观察Powershell日志能否记录此次测试行为。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Powershell是一种由微软开发的命令行Shell和脚本语言。它是Windows操作系统中的一种强大的管理工具,可以帮助用户自动化任务、管理系统、编写脚本等。 如果你的计算机运行的是Windows 8或更高版本,那么你应该已经安装了名为Windows PowerShellPowerShell版本。它与最新版本的PowerShell略有不同,但仍可用于学习和使用。 要启动PowerShell,有几种方法可以使用。一种方法是直接在命令提示符(cmd)中执行powershell命令,这将切换到PowerShell环境。另一种方法是在开始菜单中输入powershell并启动PowerShell应用程序。还可以通过开始菜单中的"附件"文件夹中的"PowerShell"启动PowerShell。 使用PowerShell,你可以执行各种系统管理任务,例如管理文件和文件夹、配置网络设置、安装和卸载软件等。你还可以编写和运行自己的脚本,以自动化重复性的任务。PowerShell提供了丰富的命令和功能,使得管理和配置Windows系统变得更加高效和便捷。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [PowerShell简介](https://blog.csdn.net/zaoyuxuan/article/details/129052643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Windows PowerShell命令大全](https://blog.csdn.net/zx77588023/article/details/120148287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值