中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

從Linux到Windows的PowerShell遠程處理是怎樣的

發布時間:2021-11-11 15:30:57 來源:億速云 閱讀:240 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關從Linux到Windows的PowerShell遠程處理是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

前提條件

1)后期利用期間可以通過目標NTLM身份驗證

2)重啟WinRM服務

3)使用此NTLM支持PowerShell Docker鏡像到Linux的PS-Remote,您可以從Linux到Windows進行PS遠程到Windows。

背景資料

偶然發現在我的測試中使用PowerShell遠程處理作為維護系統遠程代碼執行的主要方法很有用。它是一個內置的Windows功能。不幸的是,由于PowerShell Core的Linux分支支持的身份驗證機制,從我的Kali Linux遠程連接到我的目標并不是一件容易的事。

PowerShell遠程處理需要對Kerberos身份驗證,這意味著客戶端計算機和目標計算機必須都連接到同一域。如果我們沒有可以連接的機器來執行遠程處理,那么這對測試人員來說可能會造成問題。幸運的是,我們可以選擇將自己添加為目標配置中的“TrustedHost”,這將允許我們執行NTLM身份驗證而不是Kerberos,因此無需從域上的系統進行連接。

現在唯一的問題是,用于Linux的PowerShell核心(撰寫本文時為PowerShell 6.1.0)并未支持NTLM身份驗證。幸運的是,Redditors找到了在Centos上使用PowerShell進行NTLM身份驗證的方法,因此我將他們的發現整合到一個簡單的PowerShell Docker鏡像quickbreach / powershell-ntlm中。

如何使用從Linux到Windows的PowerShell遠程處理

本節將逐步介紹如何從Linux客戶端到Windows目標建立遠程PowerShell會話。假設您對目標PC具有管理訪問權限(RDP,payload等)。

1.在目標上啟用PowerShell遠程處理

Enable-PSRemoting –Force

2.獲取目標系統上當前TrustedHost的列表以供參考

Get-Item WSMan:\localhost\Client\TrustedHosts

3.將自己添加為目標上的TrustedHost。這是在Enter-PSSession設置階段使用NTLM身份驗證所必需的,這是唯一可用于通過PowerShell遠程連接從Linux連接到Windows的身份驗證機制。要完成此操作,請運行以下命令之一:使用通配符允許所有計算機在對此主機進行身份驗證時使用NTLM

Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Value

或者只將您的IP添加到NTLM身份驗證允許列表中

Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Concatenate -Value 192.168.10.100

從Linux到Windows的PowerShell遠程處理是怎樣的

4.設置并重新啟動WinRM服務

Set-Service WinRM -StartMode Automatic

Restart-Service -Force WinRM

5.放入PowerShell-NTLM Docker鏡像的實例。下面的示例命令還在docker鏡像內的/mnt路徑上安裝包含PowerShell腳本

docker run -it -v /pathTo/PowerShellModules:/mnt quickbreach/powershell-ntlm

6.現在我們一直在等待:使用以下命令進入遠程PowerShell會話 - 請注意,您必須指定-Authentication類型:

# Grab the creds we will be logging in with
$creds = Get-Credential

# Launch the session
# Important: you MUST state the  authentication type as Negotiate
Enter-PSSession -ComputerName (Target-IP) -Authentication Negotiate -Credential $creds

# i.e.

Enter-PSSession -ComputerName 10.20.30.190 -Authentication Negotiate -Credential $creds

您也可以以類似的方式使用Invoke-Command功能

Invoke-Command -ComputerName 10.20.30.190 -Authentication Negotiate -Credential $creds -ScriptBlock {Get-HotFix}

從Linux到Windows的PowerShell遠程處理是怎樣的

清除痕跡

如果您的命令之前存在TrustedHosts以自行添加,請更換您的IP并運行以下命令:

$newvalue = ((Get-ChildItem WSMan:\localhost\Client\TrustedHosts).Value).Replace(",192.168.10.100","")
Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Value $newvalue

或者,如果您是唯一的TrustedHosts,則可以刪除所有TrustedHosts

Clear-Item WSMan:\localhost\Client\TrustedHosts

重新啟動WinRM服務以完成更改(請注意,這將使您與Enter-PSSession斷開連接)

Restart-Service WinRM

關于從Linux到Windows的PowerShell遠程處理是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贵德县| 中卫市| 浠水县| 新竹市| 南靖县| 新密市| 五大连池市| 都江堰市| 南郑县| 通江县| 开封市| 徐水县| 城步| 南京市| 余庆县| 沧州市| 南川市| 玉田县| 新巴尔虎左旗| 鄯善县| 奇台县| 化德县| 卫辉市| 和静县| 万山特区| 贵阳市| 耿马| 临桂县| 都匀市| 湘潭市| 肥东县| 泾阳县| 平塘县| 滨海县| 朔州市| 满洲里市| 三穗县| 林口县| 张掖市| 定安县| 都昌县|