大家使用這個(gè)工具最多的就是提取密碼,可能對(duì)其中涉及到的windows協(xié)議不了解,mimikatz項(xiàng)目的介紹當(dāng)中:
mimikatz is a tool I’ve made to learn C and make somes experiments with Windows security.
我們就來(lái)從其中來(lái)了解下windows 的協(xié)議。
我們先來(lái)大致使用下mimikatz 的kerberos 模塊。
其中l(wèi)ist,tgt和purge
list 列舉出當(dāng)前會(huì)話的所有緩存憑證,tgt列出當(dāng)前會(huì)話的tgt信息:
purge 銷(xiāo)毀所有的緩存憑證:
ptt: pass the ticket 以及golden/silver,中都涉及到了kerberos 協(xié)議(V5)的部分,我們就先來(lái)看看kerberos 協(xié)議的實(shí)現(xiàn)。
圖的來(lái)源,說(shuō)明下這張圖:
主要包含了3個(gè)部分:1.AS 服務(wù) 2.TGS 服務(wù) 3.C/S 端
1,2兩個(gè)部分一起稱為KEY DISTRIBUTION CENTER簡(jiǎn)稱KDC,Client要向Server 請(qǐng)求數(shù)據(jù)就需要驗(yàn)證身份,在這個(gè)不安全的網(wǎng)絡(luò)環(huán)境下必須要證明自己。這就需要一個(gè)信任度第三方來(lái)幫助完成驗(yàn)證,KDC就是為了這種需求所設(shè)計(jì)的服務(wù)。我們來(lái)解析上圖中的流程(wireshark 抓包):
PAC:
這樣整個(gè)kerberos 協(xié)議的流程就完成了,其中都使用到了時(shí)間戳,所以域內(nèi)都要時(shí)間同步才可以,整個(gè)協(xié)議設(shè)計(jì)的很是巧妙。
我們來(lái)說(shuō)明下其中g(shù)olden與ptt的使用:
從上圖演示中,可以看出來(lái)在一個(gè)低權(quán)限域用戶提升到管理員了,后面想要執(zhí)行命令可以用psexec,也是不用輸入密碼的。其中g(shù)odlen票據(jù)導(dǎo)出的時(shí)候,sid與krbtgt的ntlm,可以在原來(lái)有DC權(quán)限的時(shí)候,使用lsadump::lsa /patch導(dǎo)出。
golden ticket 就是偽造了TGT,可以看到第二步中需要TGS服務(wù)密碼加密,然而TGS就是kerberos的密碼,修改PAC權(quán)限,這樣就合法的偽造了TGT,就完成了一個(gè)權(quán)限提升的過(guò)程。
Mimikatz其中一個(gè)重要的模塊:lsadump::dcsync ,使用DRSR向DC查詢用戶信息。我們先看一個(gè)使用例子:
for /f "tokens=1" %i in (username.txt) do @mimikatz.exe "lsadump::dcsync /user:%i /domain:localtest.com" exit >> info.txt
導(dǎo)出了第一列用戶的hash信息:
SRSR介紹:
The Directory Replication Service (DRS) Remote Protocol is an RPC protocol for replication and management of data in Active Directory.
使用RPC協(xié)議,不會(huì)產(chǎn)生LOG,但是必須要有:Administrator 和 Domain controller。其中主要的函數(shù):
客戶端通過(guò)調(diào)用IDL_DRSBind獲取特定DC的DRS_HANDLE,然后調(diào)用該DC上的任何其他drsuapi方法,并將DRS_HANDLE作為第一個(gè)參數(shù)傳遞。 直到客戶端調(diào)用IDL_DRSUnbind,或直到服務(wù)器的DRS_HANDLE無(wú)效(例如崩潰),客戶端的DRS_HANDLE仍然可用于進(jìn)行方法調(diào)用。
與DRS_HANDLE關(guān)聯(lián)的唯一狀態(tài)是由IDL_DRSBind建立的狀態(tài)。 只要DRS_HANDLE保持有效,該狀態(tài)就是不變的。 因此,如果客戶端通過(guò)對(duì)IDL_DRSBind使用相同的參數(shù)來(lái)為同一個(gè)DC創(chuàng)建兩個(gè)綁定句柄,則drsuapi方法的服務(wù)器行為不受客戶端傳遞給該方法的綁定句柄選擇的影響。其中大多都是涉及一些函數(shù)調(diào)用,例如IDL_DRSGetNT4ChangeLog 這個(gè)方法用于支持Active Directory復(fù)制到Windows NT 4.0備份域的控制器(BDC)的實(shí)現(xiàn)。以及其中關(guān)于兩個(gè)函數(shù)UUID的設(shè)置:
更多詳細(xì)的過(guò)程看這里:https://msdn.microsoft.com/en-us/library/cc228096.aspx。
? windows 應(yīng)該是還是現(xiàn)在主流的辦公系統(tǒng),所以公司中windows 的域?qū)ζ髽I(yè)就很重要,方便人員協(xié)作以及管理,但是如果不做好嚴(yán)格的權(quán)限控制,以及對(duì)服務(wù)器及時(shí) 的更新,就有可能這個(gè)企業(yè)內(nèi)網(wǎng)都會(huì)被一舉攻陷。例如ms14-068 和 ms11-013 都是出在windows 協(xié)議方面的漏洞,像MS17-010,也是SMB協(xié)議方面的問(wèn)題。所以我們就要對(duì)windows 下的協(xié)議更加了解,才能挖到0day嘛。這里有一份windows 下的所有協(xié)議介紹:
https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/Windows_Protocols.zip
1.https://github.com/gentilkiwi/mimikatz
2.https://msdn.microsoft.com/library/windows/desktop/aa378170.aspx
3.https://msdn.microsoft.com/en-us/library/cc228086.aspx
4.https://channel9.msdn.com/Events/Open-Specifications-Plugfests/Windows-Identity-and-Exchange-Protocols-Plugfest-2012/MS-DRSR-Windows-AD-Protocol-Test-Suite-Presentation-2012