如何理解Windows認(rèn)證及抓密碼

如何理解Windows認(rèn)證及抓密碼,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了萬(wàn)山免費(fèi)建站歡迎大家使用!

 1. windows的認(rèn)證方式主要有哪些?

windows的認(rèn)證方式主要有NTLM認(rèn)證、Kerberos認(rèn)證兩種。同時(shí),Windows Access  Token記錄著某用戶的SID、組ID、Session、及權(quán)限等信息,也起到了權(quán)限認(rèn)證的作用。

其中,NTLM認(rèn)證主要有本地認(rèn)證和網(wǎng)絡(luò)認(rèn)證兩種方式。本地登錄時(shí),用戶的密碼存儲(chǔ)在%SystemRoot%\system32\config\sam這個(gè)文件里。當(dāng)用戶輸入密碼進(jìn)行本地認(rèn)證的過(guò)程中,所有的操作都是在本地進(jìn)行的。他其實(shí)就是將用戶輸入的密碼轉(zhuǎn)換為NTLM  Hash,然后與SAM中的NTLM  Hash進(jìn)行比較。而網(wǎng)絡(luò)認(rèn)證則是基于一種Challenge/Response認(rèn)證機(jī)制的認(rèn)證模式。他的認(rèn)證過(guò)程我們下邊會(huì)詳細(xì)講。

Kerberos認(rèn)證用于域環(huán)境中,它是一種基于票據(jù)(Ticket)的認(rèn)證方式。他的整個(gè)認(rèn)證過(guò)程涉及到三方:客戶端、服務(wù)端和KDC(Key  Distribution Center)。在Windows域環(huán)境中,由DC(域控)來(lái)作為KDC。

Access  Token(訪問(wèn)令牌)是用來(lái)描述進(jìn)程或線程安全上下文的對(duì)象,令牌所包含的信息是與該用戶賬戶相關(guān)的進(jìn)程或線程的身份和權(quán)限信息。當(dāng)用戶登陸時(shí),系統(tǒng)生成一個(gè)Access  Token,然后以該用戶身份運(yùn)行的的所有進(jìn)程都擁有該令牌的一個(gè)拷貝。這也就解釋了A用戶創(chuàng)建一個(gè)進(jìn)程而B用戶沒(méi)有該進(jìn)程的權(quán)限。

2. NTLM的認(rèn)證過(guò)程是怎樣什么?

首先是本地認(rèn)證,也就是NTLM Hash的生成方式。

當(dāng)用戶注銷、重啟、鎖屏后,操作系統(tǒng)會(huì)讓winlogon顯示登錄界面,也就是輸入框。當(dāng)winlogon.exe接收輸入后,將密碼交給LSASS進(jìn)程,這個(gè)進(jìn)程中會(huì)存一份明文密碼,將明文密碼加密成NTLM  Hash,對(duì)SAM數(shù)據(jù)庫(kù)比較認(rèn)證。(winlogon.exe即Windows Logon Process,是Windows  NT用戶登陸程序,用于管理用戶登錄和退出。

LSASS用于微軟Windows系統(tǒng)的安全機(jī)制。它用于本地安全和登陸策略。)

比如當(dāng)用戶輸入密碼123456后,那么操作系統(tǒng)會(huì)將123456轉(zhuǎn)換為十六進(jìn)制,經(jīng)過(guò)Unicode轉(zhuǎn)換后,再調(diào)用MD4加密算法加密,這個(gè)加密結(jié)果的十六進(jìn)制就是NTLM  Hash

123456 -> hex(16進(jìn)制編碼) = 313233343536 313233343536 -> Unicode = 610064006d0069006e00 610064006d0069006e00 -> MD4 = 209c6174da490caeb422f3fa5a7ae634

看明白本地認(rèn)證的過(guò)程后,再說(shuō)一下網(wǎng)絡(luò)認(rèn)證的具體過(guò)程。

NTLM協(xié)議的認(rèn)證共需要三個(gè)消息完成:協(xié)商、挑戰(zhàn)、認(rèn)證。

協(xié)商:主要用于確認(rèn)雙方協(xié)議版本、加密等級(jí)等

挑戰(zhàn):服務(wù)器在收到客戶端的協(xié)商消息之后, 會(huì)讀取其中的內(nèi)容,并從中選擇出自己所能接受的服務(wù)內(nèi)容,加密等級(jí),安全服務(wù)等等。  并生成一個(gè)隨機(jī)數(shù)challenge, 然后生成challenge消息返回給客戶端。該消息就是挑戰(zhàn)/響應(yīng)認(rèn)證機(jī)制的主要功能體現(xiàn)。

認(rèn)證:驗(yàn)證主要是在挑戰(zhàn)完成后,驗(yàn)證結(jié)果,是認(rèn)證的***一步。

詳細(xì)過(guò)程如下:

***步,輸入密碼,然后LSASS會(huì)把密碼的NTLM Hash后的值先存儲(chǔ)到本地。

第二步,客戶端把用戶名的明文發(fā)送給服務(wù)端

第三步,服務(wù)端會(huì)生成一個(gè)16位的隨機(jī)數(shù),即challenge,再傳回給客戶端

第四步,當(dāng)客戶端收到challenge后,用在***步中存儲(chǔ)的NTLM  Hash對(duì)其加密,然后再將加密后的challenge發(fā)送給服務(wù)器,也就是response。

第五步,服務(wù)端在收到response后,會(huì)向DC發(fā)送針對(duì)客戶端的驗(yàn)證請(qǐng)求。該請(qǐng)求主要包含以下三方面的內(nèi)容:客戶端用戶名、客戶端NTLM  Hash加密的Challenge、原始的Challenge。

第六步,當(dāng)DC接到過(guò)來(lái)的這三個(gè)值的以后,會(huì)根據(jù)用戶名到DC的賬號(hào)數(shù)據(jù)庫(kù)(ntds.dit)里面找到該用戶名對(duì)應(yīng)的NTLM  Hash,然后把這個(gè)hash拿出來(lái)和傳過(guò)來(lái)的challenge值進(jìn)行比較,相同則認(rèn)證成功,反之,則失敗。

上邊說(shuō)的是NTLM v1認(rèn)證方式,NTLM v2和v1最顯著的區(qū)別就是Challenge與加密算法不同,共同點(diǎn)就是加密的key都是NTLM  Hash。NTLM v1的Challenge有8位,NTLM v2的Challenge為16位。NTLM v1的主要加密算法是DES,NTLM  v2的主要加密算法是HMAC-MD5。

3. 針對(duì)NTLM的姿勢(shì)主要有哪些?

當(dāng)我們通過(guò)dump hash拿到了NTLM Hash后,我通常首先嘗試能不能直接在線破解。常用的破解網(wǎng)站:

https://www.objectif-securite.ch/en/ophcrack.php/

http://www.cmd5.com/

https://www.somd5.com/

如果不能破解,那可以嘗試Pass The Hash(hash傳遞)。

哈希傳遞就是使用用戶名對(duì)應(yīng)的NTLM Hash將服務(wù)器給出的Chanllenge加密,生成一個(gè)Response,來(lái)完成認(rèn)證。Pass The  Hash能夠完成一個(gè)不需要輸入密碼的NTLM協(xié)議認(rèn)證流程,所以不算是一個(gè)漏洞,算是一個(gè)技巧。

常用的pth的工具主要有:mimikatz(***)、wmiexec/psexec、exploit/windows/smb/psexec_psh、powershell  invoke系列小腳本。

當(dāng)然,pth也是有利用條件的。如果目標(biāo)機(jī)器安裝了KB2871997,那我們就不能pth了。那我們還有另一個(gè)姿勢(shì):Pass The  Key。對(duì)于8.1/2012r2,安裝補(bǔ)丁kb2871997的Win 7/2008r2/8/2012,可以使用AES keys代替NTLM  Hash。在mimikatz抓hash時(shí),可以一并抓到。其實(shí),mimikatz中的pth本身就是ptk了。

命令:

mimikatz “privilege::debug” “sekurlsa::pth /user:a /domain:test.local /aes256:f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c”

除這些外,還有很多其他姿勢(shì),比如打了補(bǔ)丁有administrator帳號(hào)扔可pth、當(dāng)開啟Restricted Admin  Mode后,win8.1和server12 R2默認(rèn)支持pth、啟用WDigest劫持winlogon仙人跳等。

4. Kerberos認(rèn)證中主要有哪些知識(shí)點(diǎn)需要注意?

首先解釋一些名詞:

基本概念:

KDC: Key Distribution  Center,密鑰分發(fā)中心,負(fù)責(zé)管理票據(jù)、認(rèn)證票據(jù)、分發(fā)票據(jù),但是KDC不是一個(gè)獨(dú)立的服務(wù),它由AS和TGS組成。

AS: Authentication Service,驗(yàn)證服務(wù),為client生成TGT的服務(wù)

TGS: Ticket Granting Service,票據(jù)授予服務(wù),為client生成某個(gè)服務(wù)的ticket

TGT: Ticket Granting Ticket,入場(chǎng)券,通過(guò)入場(chǎng)券能夠獲得票據(jù),是一種臨時(shí)憑證的存在。

Ticket:票據(jù),是網(wǎng)絡(luò)中各對(duì)象之間互相訪問(wèn)的憑證

AD: Account Database,存儲(chǔ)所有client的白名單,只有存在于白名單的client才能順利申請(qǐng)到TGT。

DC: Domain Controller,域控

KRBTGT: 每個(gè)域控制器都有一個(gè)krbtgt賬戶,是KDC的服務(wù)賬戶,用來(lái)創(chuàng)建TGS加密的密鑰。

Kerberos提供了一個(gè)集中式的認(rèn)證方式,在整個(gè)認(rèn)證過(guò)程中總共要涉及到三方:客戶端,服務(wù)端和KDC,  在Windows域環(huán)境中,KDC的角色由DC來(lái)?yè)?dān)任,Kerberos是一種基于票據(jù)的認(rèn)證方式,票據(jù)(Ticket)是用來(lái)安全的在認(rèn)證服務(wù)器和用戶請(qǐng)求的服務(wù)之間傳遞用戶的身份,同時(shí)也會(huì)傳遞一些附加信息,用來(lái)保證使用Ticket的用戶必須是Ticket中指定的用戶,Ticket一旦生成,在生存時(shí)間內(nèi)可以被Client多次使用來(lái)申請(qǐng)同一個(gè)Server的服務(wù)。這里就存在一個(gè)票據(jù)竊取問(wèn)題。

說(shuō)下kerberos的大致工作流程,域中的客戶端要想訪問(wèn)同域中的某個(gè)服務(wù)器資源時(shí),需要首先購(gòu)買該服務(wù)端認(rèn)可的票據(jù)(Ticket),也就是說(shuō),客戶端在訪問(wèn)服務(wù)器之前需要預(yù)先買好票,等待服務(wù)驗(yàn)票之后才能入場(chǎng),但是這張票不能直接購(gòu)買,還需要一張認(rèn)購(gòu)權(quán)證(TGT),也就是說(shuō)客戶端在買票之前需要預(yù)先獲得一張認(rèn)購(gòu)權(quán)證,這張認(rèn)購(gòu)權(quán)證和進(jìn)入服務(wù)器的入場(chǎng)券均由KDC發(fā)售。引用網(wǎng)絡(luò)上一張思路很清晰的圖。

如何理解Windows認(rèn)證及抓密碼

5. 域滲透中針對(duì)Kerberos的姿勢(shì)主要有哪些?

說(shuō)完認(rèn)證過(guò)程后,就要說(shuō)下經(jīng)常用的兩種票據(jù):白銀票據(jù)和黃金票據(jù)了。

白銀票據(jù)的特點(diǎn)是:不需要與KDC進(jìn)行交互、需要目標(biāo)服務(wù)的NTLM Hash。因此當(dāng)擁有Server  Hash時(shí),我們就可以偽造一個(gè)不經(jīng)過(guò)KDC認(rèn)證的一個(gè)Ticket。

利用:

kerberos::golden /domain:<域名> /sid:<域SID> /target:<服務(wù)器主機(jī)名>  /service:<服務(wù)類型> /rc4: /user:<用戶名> /ptt

由于白銀票據(jù)需要目標(biāo)服務(wù)器的Hash,所以沒(méi)辦法生成對(duì)應(yīng)域內(nèi) 所有服務(wù)器的票據(jù),也不能通過(guò)TGT申請(qǐng)。因此只能針對(duì)服務(wù)器  上的某些服務(wù)去偽造。如cifs服務(wù)用于Windows主機(jī)間的文件共享,用其他如LDAP等服務(wù)則無(wú)法訪問(wèn)server的文件系統(tǒng)。

與白銀票據(jù)相比,黃金票據(jù)的特點(diǎn)是需要與DC通信、需要krbtgt用戶的hash,也就是需要拿下域控。

利用:

lsadump::dcsync /domain:域名 /user:krbtgt

kerberos::golden /domain:<域名> /sid:<域SID> /rc4:  /user:<任意用戶名> /ptt

拿到黃金票據(jù)后,就可以偽造黃金票據(jù),然后就能獲取任何Kerberos服務(wù)權(quán)限,登錄任意域內(nèi)任意一臺(tái)主機(jī)。mimikatz導(dǎo)出域內(nèi)所有主機(jī)的票據(jù),命令是sekurlsa::tickets  /export,或者dump NTDS.dit也可以。

那***就要說(shuō)下拿域控的姿勢(shì)了。

最常用的毫無(wú)疑問(wèn)是ms14068。主要利用工具是goldenPac.py或者kekeo/PyKEK。利用方式網(wǎng)上很多文章,這里不詳細(xì)說(shuō)。

6. Windows Access Token主要知識(shí)點(diǎn)淺談

Windows Access Token(訪問(wèn)令牌)有兩種,一種是Delegation  token(授權(quán)令牌),主要用于交互會(huì)話登錄(例如本地用戶直接登錄、遠(yuǎn)程桌面登錄),另一種是Impersonation  token(模擬令牌),主要用于非交互登錄(利用net use訪問(wèn)共享文件夾)。

每個(gè)進(jìn)程創(chuàng)建時(shí)都會(huì)根據(jù)登錄會(huì)話權(quán)限由LSA(Local Security  Authority)分配一個(gè)Token。如果CreaetProcess時(shí)自己指定了 Token, LSA會(huì)用該Token,  否則就用父進(jìn)程Token的一份拷貝。當(dāng)用戶注銷后,系統(tǒng)將會(huì)使授權(quán)令牌切換為模擬令牌,不會(huì)將令牌清除,只有在重啟機(jī)器后才會(huì)清除。

一般通過(guò)incognito.exe或者msf中的incognito模塊來(lái)竊取令牌(Metasploit中的incognito,是從windows平臺(tái)下的incognito移植過(guò)來(lái)的),從而獲得令牌對(duì)應(yīng)的權(quán)限,比如已獲得admin權(quán)限,然后通過(guò)竊取令牌然后令牌假冒來(lái)獲得system權(quán)限。

除此之外,推薦看一下3gstudent大佬的Windows-Token九種權(quán)限的利用一文。個(gè)人感覺(jué)到了內(nèi)網(wǎng)滲透的后期,想要更好的理解、利用相關(guān)漏洞,還是需要對(duì)win32有一定的熟悉,否則會(huì)一直浮于表面,并不能做的很深入。

***附上自己總結(jié)的Windows認(rèn)證的思維導(dǎo)圖。

如何理解Windows認(rèn)證及抓密碼

如何理解Windows認(rèn)證及抓密碼

關(guān)于如何理解Windows認(rèn)證及抓密碼問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

新聞標(biāo)題:如何理解Windows認(rèn)證及抓密碼
鏈接URL:http://muchs.cn/article2/isjoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站建設(shè)、云服務(wù)器建站公司、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司