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直按通過應用程序執行。
·做好戰鬥準備,訓練用戶。如果他們看到某些東西(例如一個奇怪的彈窗口),應該說點什麼!


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