當前位置:
首頁 > 新聞 > DiskShadow使用大全 基於IOCs的防禦

DiskShadow使用大全 基於IOCs的防禦

一、簡介

不久前,我發表了一篇關於Vshadow的文章:Vshadow: Abusing the Volume Shadow Service for Evasion, Persistence, and Active Directory Database Extraction。該工具非常有趣,因為它是執行卷影複製操作的一個實用工具,還支持一些其他攻擊功能。坦率地說,隱蔽和持久可能不是Vshadow.exe的強項,但其中的一些技巧與其替代產品DiskShadow.exe有著更多的相關性。

本文將討論DiskShadow,展示相關特徵和能力,提出基於IOCs的防禦。

二、何為DiskShadow

DiskShadow.exe是一個由卷影複製服務(VSS)提供的公開工具。默認情況下,DiskShadow使用類似於DiskRaid或DiskPart的互動式命令解釋器。此外,DiskShadow還包含腳本模式。

– Microsoft Docs

DiskShadow包含在Windows Server 2008、Windows Server 2012和Windows Server 2016中,是Windows簽名的二進位文件。

DiskShadow的VSS功能需要特權才能訪問(使用UAC提升),但是,非特權用戶也可調用多個實用命令。這使得DiskShadow成為命令執行、隱藏以及持久化的一個非常好的選擇。

三、DiskShadow命令行執行

作為特徵之一,互動式命令解釋程序和腳本模式支持EXEC命令。特權用戶或非特權用戶,都可以在交互模式或腳本文件中調用命令和批處理腳本。讓我們來演示一下這些功能:

註:前面的例子是在最新安裝/更新的Windows Server 2016上的非特權/非管理員帳戶中執行的。依賴於操作系統版本和/或配置,以中等程序完整性運行此程序可能會失敗。

交互模式

在下例中,普通用戶調用calc.exe:

腳本模式

在下例中,普通用戶使用腳本選項通過diskshadow.txt調用calc.exe和notepad.exe:

diskshadow.exe / s c: test diskshadow.txt

與Vshadow一樣,DiskShadow.exe是生成的可執行文件的父進程。此外,DiskShadow將繼續運行,直到其子進程執行完畢。

四、自啟動及隱藏

由於DiskShadow是Windows簽名的二進位文件,讓我們來看看幾個關於持久性和隱辟性的AutoRuns。結合前面的例子,更新腳本,然後創建一個RunKey和Scheduled Task。

準備

由於DiskShadow是「窗口向前」的(例如,彈出一個命令窗口),因此我們需要修改腳本,以便以儘可能快的方式調用poc pass-thru並關閉父DiskShadow和後續payload。在某些情況下,如果窗口打開時間過長(如果這個行為被用戶注意到並報告,這對防禦者來說是好的),則此技術就不太隱蔽。但是,如果用戶在登錄時看到這樣的提示,就可能會忽略。

注意:前面的例子是在最新安裝/更新的Windows Server 2016上的非特權/非管理用戶帳戶的下執行的。根據操作系統版本和/或配置,以中等程序完整性運行此程序可能會失敗。

首先,讓我們修改腳本(diskshadow.txt)來演示這項基本技術:

EXEC "cmd.exe" /c c: estevil.exe

*為支持命令開關,我們必須引用EXEC的初始二進位文件,這也適用於交互模式。

其次,使用以下命令添加自啟動:

- 添加註冊表項-

reg add HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun /v VSSRun /t REG_EXPAND_SZ /d "diskshadow.exe /s c: estdiskshadow.txt"

- 用戶級Scheduled Task -

schtasks /create /sc hourly /tn VSSTask /tr "diskshadow.exe /s c: estdiskshadow.txt"

進一步看看這些...

AutoRuns – 添加註冊表項

創建鍵值後,可以看到我們的key在打開AutoRuns並選擇登錄選項卡時隱藏。默認情況下,Windows簽名的可執行文件在視圖中隱藏(有一些值得注意的例外),如下屏幕截圖所示:

取消「Hide Windows Entry」後,可以看到AutoRuns Entry:

AutoRuns – Scheduled Tasks

與Run Key方法一樣,可以看到我們的條目隱藏在默認的AutoRuns視圖中:

取消「Hide Windows Entry」後,可以看到AutoRuns Entry:

五、提取AD資料庫

結合卷影複製工具的用法,我們來展示(另一個)用於提取AD資料庫ntds.dit的VSS方法。在下面的演練中,假設我們成功地控制了Active Directory域控制器(Win2k12)並在腳本模式下的特權中運行DiskShadow。

首先,準備腳本。我們已經做了一些初步偵察確定用於shadow的目標驅動器號(用於包含AD資料庫的邏輯驅動器),以及發現未在系統上使用的邏輯驅動器號。這是DiskShadow腳本(diskshadow.txt):

set context persistent nowriters

add volume c: alias someAlias

create

expose %someAlias% z:

exec "cmd.exe" /c copy z:windows
tds
tds.dit c:exfil
tds.dit

delete shadows volume %someAlias%

reset

在這個腳本中,我們創建了一個持久的影子副本,以便我們可以執行複製操作來捕獲敏感的目標文件。通過載入一個(唯一的)邏輯驅動器,保證目標文件的複製路徑,在刪除由someAlias標識的影子副本之前將其提取到exfil目錄。

*註:可以通過指定影子設備名稱/唯一標識符來嘗試複製目標文件。這稍微隱蔽點,但需確保標籤/ UUID是正確的(通過初步偵察),否則腳本將無法運行。這種用法可能更適合於交互模式。

DiskShadow操作的命令和結果顯示在屏幕截圖中:

除AD資料庫外,還需要提取SYSTEM註冊表配置單元:

reg.exe save hklmsystem c:exfilsystem.bak

從目標機傳輸完這些文件後,使用SecretsDump.py提取NTLM哈希:

secretsdump.py -ntds ntds.dit -system system.bak LOCAL

成功了!我們已使用另一種方法來提取AD資料庫和哈希值。現在,讓我們來比較一下DiskShadow和Vshadow ...

六、DiskShadow vs. Vshadow

DiskShadow.exe和VShadow.exe有著非常相似的功能。但是,他們之間也有一些區別,可以證明哪一個是更好的選擇。我們來更詳細地探討一下:

操作系統

DiskShadow.exe包含在Windows Server 2008及其後的操作系統中,而Vshadow.exe包含在Windows SDK中。除非目標機器安裝了Windows SDK,否則必須將Vshadow.exe上傳到目標機器。在這一點上,DiskShadow.exe具有明顯的優勢。

用法

在普通用戶下,可以使用多個DiskShadow功能,而不會產生特權(UAC)影響。在以前的測試中,Vshadow具有特權約束(例如,只能在運行VSS操作後調用外部命令執行)。此外,如前所述,DiskShadow具有靈活的命令交換支持。DiskShadow.exe在這點上有優勢。

命令行方面

Vshadow是「命令行友好的」,而DiskShadow需要互動式或腳本文件。除非有(遠程)TTY訪問目標計算機的許可權,否則DiskShadow的互動式可能不適用(例如,某些後門)。此外,創建文件或將文件上傳到目標機器時會增加檢測風險。在這種嚴格限制情況的下,Vshadow具有優勢(儘管創建文本文件可能比上傳二進位文件的影響更小——請參閱上一節)。

自啟動和隱藏

在之前的Vshadow博客文章中提及Vshadow是使用Microsoft簽名證書籤署的。這具有AutoRuns含義,因此它將顯示在默認視圖中,因為Microsoft簽名的二進位文件不會隱藏。由於DiskShadow是使用Windows證書籤名的,因此它將隱藏在默認視圖中。在這點上,DiskShadow具有優勢。

AD資料庫提取

如果腳本模式是DiskShadow用法的唯一選項,則在假定默認值無效的情況下(例如Shadow Volume磁碟名稱不符合我們的預期),提取AD資料庫可能需要執行額外的操作。除了製作和運行腳本之外,邏輯驅動器可能必須映射到目標機器上才能複製ntds.dit。這確實為卷影複製操作增加了額外的難度。Vshadow在這點上有優勢。

七、總結

如果將所有事情都考慮周全,則DiskShadow似乎更便於操作。然而,這並不妨礙將Vshadow(還有其他VSS方法)作為威脅攻擊中使用的備用工具。出於其他原因,Vshadow過去一直被惡意使用。對於DiskShadow,藍軍和網路運維人員應該考慮以下幾點:

·監視卷影服務(VSS)的隨機shadow創建/刪除以及任何涉及AD資料庫文件(ntds.dit)的行為。

·監視系統事件ID 7036(「卷影複製服務進入運行狀態」)與調用VSSVC.exe進程的可疑進程。

·監視diskshadow.exe和衍生子進程的進程創建事件。

·監視進程的完整性。如果diskshadow.exe以中等完整性運行,那很可能是紅色預警。

·監視客戶端上的diskshadow.exe。除非有必要,否則diskshadow.exe 應該不會出現在客戶端Windows操作系統上。

·監視新的和有趣的邏輯驅動器映射。

·檢查可疑的AutoRuns項。仔細檢查簽名的二進位文件及腳本文件。

·強制應用程序白名單。嚴格的策略可能會阻止DiskShadow直按通過應用程序執行。

·做好戰鬥準備,訓練用戶。如果他們看到某些東西(例如一個奇怪的彈窗口),應該說點什麼!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

分析惡意軟體GoScanSSH如何通過掃描SSH伺服器暴力破解憑證進行傳播的
報名通道即將關閉!抓住尾巴快上車啦!

TAG:嘶吼RoarTalk |