黑客最常用的两个重要PowerShell命令
2023-12-26 17:16:42 Author: Ms08067安全实验室(查看原文) 阅读量:15 收藏

点击星标,即时接收最新推文

为什么需要学习PowerShell

Windows系统图形化界面(GUI)的优点和缺点都很明显。一方面,GUI给系统用户带来了操作上的极大便利,用户只需要单击按钮或图标就能使用操作系统的所有功能;另一方面,GUI给系统管理员带来了烦琐的操作步骤,例如修改Windows系统终端的登录密码,需要依次单击“控制面板”“用户账户”“修改账户密码”等一系列选项,如果需要修改100台终端的登录密码,将会耗费大量时间。

微软公司正是基于改进Windows操作系统的管理效率问题而研发了PowerShell。为了方便理解,我们可以把PowerShell当成一个命令行窗口(Shell),管理员既可以在这个Shell中输入命令运行,也可以直接执行脚本程序,从而自动化地完成GUI所能完成的所有操作,极大地提高了工作效率。例如,修改终端的登录密码,在PowerShell里输入如下命令就可以完成。

Set-LocalUser "administrator" -Password "password"

PowerShell具有无须安装、几乎不会触发杀毒软件、可以远程执行、功能齐全等特点,从网络安全攻防的角度,对攻击方和防守方来说,它都是不可多得的系统工具,值得读者研究学习。

Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的Windows版本中(Windows 7、Windows 2008 R2和更高版本)。PowerShell需要.NET环境的支持,同时支持.NET对象,使命令行用户和脚本编写者可以利用.NET Framework的强大功能,其可读性、易用性位居当前所有Shell之首。也可以把PowerShell看作命令行提示符cmd.exe的扩充。

可以输入Get-Host或者

$PSVersionTable.PSVERSION命令查看PowerShell的版本,如图所示。

PowerShell支持的命令非常多,难以记忆使用,我们经常需要借助Get-Help和Get-Command命令查找所需的命令,并正确使用。所以Get-Help和Get-Command这两个命令被称为“最重要的两个PowerShell命令”。

1. Get-Help命令

当对某个命令一无所知的时候,就用Get-Help命令试一下,如图所示,它能够列出命令的正确使用方法。

使用语法如下:

Get-Help [[-Name] <string>]

下面对参数进行说明。

— [-Name] <string>:功能是请求指定命令的帮助信息,例如-Name Get-Process。

— 参数为空时列出Get-Help自己的使用帮助。

2. Get-Command命令

Get-Command命令可以一键列出PowerShell支持的所有命令,同时能按照关键词缩小命令的查找范围,如图所示。

使用语法如下:

Get-Command [[-Name] <string[]>]

下面对参数进行说明。

— [-Name] <string[]>:检索指定名称的cmdlet或命令元素,参数“<string[]>”就是指定的名称,例如Get-Process。

— 参数为空时列出PowerShell支持的所有命令。

3. 小试牛刀

这里通过一个实例梳理Get-Help命令和Get-Command命令的使用技巧。

在本例中,假设我们在目标计算机中执行了恶意程序“Calculator”,需要查看Calculator进程是否正在运行,最后还需要结束该进程。与此同时,我们不知道应该使用哪个命令,所以只能借助Get-Help命令和Get-Command命令逐步查找,具体步骤如下。

第一步:通过Get-Command命令查找能够“查看进程信息”的命令。命令如下:

Get-Command -CommandType cmdlet Get-*

如前文所述,PowerShell使用统一的“动词-名词信息”命令格式,所以查看信息以“Get-”开头。通过查看命令列表,确定框中的Get-Process命令就是查看进程信息的命令,如图所示。

第二步:通过Get-Help命令查看如何使用Stop-Process命令,如图所示。

Get-Help Stop-Process

第三步:通过Get-Process命令查看是否存在Calculator进程。命令如下:

Get-Process -Name Calculator

如果存在Calculator进程,则列出;如果不存在,则报错,如图所示。

第四步:通过Get-Command命令查找能够“结束进程”的命令。命令如下:

方法同第一步,进而确定Stop-Process就是结束进程的命令,如图所示。

Get-Command Stop-Process

第五步:通过Get-Help命令查看如何使用Stop-Process命令。

方法同第二步,使用如下命令查看Stop-Process语法,如图8-30所示。

Get-Help Stop-Process

第六步:通过Stop-Process命令结束Calculator进程。

先使用Stop-Process命令结束进程,再使用Get-Process命令确定进程是否终结,如图所示。

Stop-Process -name CalculatorGet-Process Calculator

说到这里,部分读者可能发现了Stop-Process命令具有造成拒绝服务攻击的危险,这里简单介绍一下,假设我们运行了下面这条命令:

Get-Process | Stop-Process

你能想象结果会怎样吗?会宕机!操作系统会尝试逐个终止所有的进程,包括系统的核心进程,所以我们的计算机很快就会进入蓝屏“死机”状态。

MS08067安全实验室视频号已上线
欢迎各位同学关注转发~

—  实验室旗下直播培训课程  —

和20000+位同学加入MS08067一起学习


文章来源: http://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247516966&idx=1&sn=1b4f8b22cf0a30ee26f2a606e8329258&chksm=fd26b6810ed356f60f3875dab0582778ea65fe30b45d5ef3781f7ddd4fdcf971db0035bbf06a&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh