前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >黑客最常用的两个重要PowerShell命令

黑客最常用的两个重要PowerShell命令

作者头像
Ms08067安全实验室
发布2023-12-27 14:28:48
1710
发布2023-12-27 14:28:48
举报

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

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

代码语言:javascript
复制
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命令试一下,如图所示,它能够列出命令的正确使用方法。

使用语法如下:

代码语言:javascript
复制
Get-Help [[-Name] <string>]

下面对参数进行说明。

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

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

2. Get-Command命令

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

使用语法如下:

代码语言:javascript
复制
Get-Command [[-Name] <string[]>]

下面对参数进行说明。

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

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

3. 小试牛刀

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

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

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

代码语言:javascript
复制
Get-Command -CommandType cmdlet Get-*

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

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

代码语言:javascript
复制
Get-Help Stop-Process

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

代码语言:javascript
复制
Get-Process -Name Calculator

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

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

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

代码语言:javascript
复制
Get-Command Stop-Process

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

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

代码语言:javascript
复制
Get-Help Stop-Process

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

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

代码语言:javascript
复制
Stop-Process -name Calculator
Get-Process Calculator

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

代码语言:javascript
复制
Get-Process | Stop-Process

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Get-Help命令
  • 2. Get-Command命令
  • 3. 小试牛刀
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档