【技術分享】丟掉PSEXEC來橫向滲透


轉載自:http://bobao.360.cn/learning/detail/3201.html

2016-11-18 11:42:25 來源:安全客 作者:qingxp9 · 360無線電安全研究部@無線攻防團隊 

 

0. 前言


在滲透測試時,很多人還是在使用PSEXEC類工具。PSEXEC類的工具有各種語言的實現,如Metasploit的psexec psexec_psh,Impacket psexec,pth-winexe,Empire Invoke-Psexec,最早Sysinternals公司pstools工具包當中的psexec。 

這些工具都非常出色,但經過這么多年的發展,在各種防御軟件環境下psexec類工具很多時候已經無法開展滲透測試工作。

在win下要想執行命令有幾種方法:

IPC上傳at&schtasks遠程執行

PSEXEC 這也是用的最多,但是會留下痕跡

WMI 最安全方法,沒有任何知覺,所有window系統啟用服務,但防火牆開啟將會無法連接

PsRemoting posershel遠程執行命令

 

1. PSEXEC


PSEXEC執行原理

通過ipc$連接,然后釋放psexesvc.exe到目標機器。

通過服務管理SCManager遠程創建psexecsvc服務,並啟動服務。

客戶端連接執行命令,服務端啟動相應的程序並執行回顯數據。

這里描述的是Sysinternals中的psexec,不過MSF、Impacket、pth 工具中的psexec用的都是同種思路。

為什么丟棄PSEXEC

psexec類工具會釋放文件,特征明顯,專業的殺毒軟件都能檢測到。

需要安裝服務,會留下日志,並且退出時偶爾會出現服務不能刪除的情況。

需要開啟admin$ 445端口共享。

在事后攻擊溯源時,調查人員會通過日志信息來推測出你的攻擊過程。但是它的優點在於,能直接給我們提供目標主機的system權限。

http://p4.qhimg.com/t0107a9c944ec158195.png

http://p8.qhimg.com/t01e98cfeeef7bf34dd.png

 

2. 使用WMI來執行命令


WMI 的全稱是 Windows Management Instrumentation,它出現在所有的 Windows 操作系統中,由一組強大的工具集合組成,用於管理本地或遠程的 Windows 系統。當攻擊者使用wmiexec來進行攻擊時,Windows系統默認不會在日志中記錄這些操作,這意味着可以做到攻擊無日志,同時攻擊腳本無需寫入到磁盤,具有極高的隱蔽性。越來越多的APT事件中也出現了WMI攻擊的影子,利用WMI可以進行信息收集、探測、反病毒、虛擬機檢測、命令執行、權限持久化等操作。

最開始我不太喜歡WMI,因為通過WMI執行的命令是沒有回顯的,這會帶來很大的不便。不過在HES2014上有研究者提出了回顯的思路,加上psexec類的攻擊已被很多的殺軟查殺,研究下WMI攻擊還是很有必要的。

《WMI SHELL》 - new way to get shells on remote Windows machines using only the WMI service

 

常見的WMI攻擊工具有這些
PTH-WMIS (最早wmi攻擊的工具,單條命令執行,無回顯,需要pth-smbget配合讀取結果)
impackets wmiexec(Linux跨window經常用)
wmiexec.vbs (國人制造 為了回顯會寫文件)
Invoke-WmiCommand&Invoke-PowerShellWmi

window本地的測試工具wmic默認情況下是無法得到回顯的,顯然這不是我們想要的

wmic /node:192.168.38.137 /user:administrator /password:123456 process call create cmd.exe

http://p1.qhimg.com/t01490d7dff151d628c.png

使用wmiexec.vbs執行命令測試。 

http://p2.qhimg.com/t01e091cdfff09a1efa.png

使用impackets wmiexec執行命令測試,執行命令可以回顯。在Linux跨window滲透時候經常使用。

wmiexec.py administrator:pass@192.168.38.137

http://p5.qhimg.com/t01a575c58c388c654c.png

 

3. 使用PsRemoting來執行命令


PowerShell遠程命令執行基於WinRM。WinRM指的是Windows遠程管理服務,它會監聽HTTP(5985)、HTTPS(5986),不過此服務除了Windows Server 2012及R2默認啟用外,其他默認都是禁用的。管理員為了方便對服務器的遠程管理,也許將此端口開啟,這種事就像內網弱口令一樣,做滲透嘛,什么奇跡都有可能發生。 

利用PowerShell滲透可以繞過殺軟、繞過白名單防護設備,並且還可以得到返回的數據,簡直是殺人越貨神器。但由於默認禁用的原因,在內網滲透測試時,我暫時還未使用過這種技術。

Enter-PSSession 192.168.38.137 -Credential  administrator

http://p6.qhimg.com/t01461f7ac28d4c5d6c.png

 

4. 總結


其實說了這么多,在內網滲透的時候更推薦使用WMI。WMI的好處有很多,但WMI也不是萬能的,還是需要根據具體的網絡環境來調整滲透手法,滲透測試過程中要牢記擦掉自己痕跡,不使用ARP等動靜特別大攻擊手法。

對於不知道psexec執行會留下什么痕跡的同學可以看看 http://bobao.360.cn/learning/detail/3186.html。昨天剛和同事討論研究完psexec的執行過程后便發現這篇文章,但是它沒有講清其執行原理。


 

本文由 安全客 原創發布,如需轉載請注明來源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/3201.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM