偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何恢復(fù)網(wǎng)絡(luò)令牌,你學(xué)會(huì)了嗎?

安全 應(yīng)用安全
在這篇文章中,我將介紹我在逆轉(zhuǎn)Office的身份驗(yàn)證機(jī)制時(shí)發(fā)現(xiàn)的兩個(gè)問(wèn)題,并提供一些不需要?jiǎng)h除內(nèi)存的POC工具來(lái)幫助恢復(fù)存儲(chǔ)的令牌。

在這篇文章中,我將介紹我在逆轉(zhuǎn)Office的身份驗(yàn)證機(jī)制時(shí)發(fā)現(xiàn)的兩個(gè)問(wèn)題,并提供一些不需要?jiǎng)h除內(nèi)存的POC工具來(lái)幫助恢復(fù)存儲(chǔ)的令牌。

微軟賬戶服務(wù)

我必須承認(rèn),當(dāng)我第一次開始研究這個(gè)問(wèn)題時(shí),刪除我正在運(yùn)行的Word進(jìn)程的內(nèi)存并沒(méi)有發(fā)現(xiàn)文檔簽名eyJ0eX。這是當(dāng)前工具用來(lái)識(shí)別活動(dòng)令牌的主要方法,我在Windows登錄時(shí)使用Microsoft 365帳戶。

事實(shí)證明,Microsoft Account (MSA)的身份驗(yàn)證令牌處理方式與通常的Azure AD SSO帳戶不同。

讓我們從查看經(jīng)過(guò)MSA驗(yàn)證的Office會(huì)話開始,啟動(dòng)Microsoft Office并查看加載的DLL。其中最突出的是MicrosoftAccountWAMExtension.dll。將這個(gè)DLL加載到Ghidra中,我們可以開始尋找為MSA帳戶生成身份驗(yàn)證令牌的原因。

如果我們?cè)谶@個(gè)DLL中尋找RPC調(diào)用,就可以看到一堆被定向到名為wlidsvc的服務(wù):

如何恢復(fù)網(wǎng)絡(luò)令牌

不幸的是,微軟并沒(méi)有為RPC調(diào)用此服務(wù)提供IDL(或者根本沒(méi)有提供很多信息),所以我們將不得不做一些逆向工程來(lái)解決這個(gè)問(wèn)題。

讓我們將WinDBG附加到wlidsc并監(jiān)視正在進(jìn)行的RPC調(diào)用。在任何Office進(jìn)程中進(jìn)行身份驗(yàn)證之后,我們看到第一個(gè)調(diào)用是RPC方法WLIDCCreateContext以創(chuàng)建上下文,然后是WLIDCAcquireTokensWithNGC,最后是一系列其他調(diào)用,我們將暫時(shí)忽略這些調(diào)用。

如果我們?cè)诤笠环N方法中添加一個(gè)斷點(diǎn),那登錄到Office中的MSA帳戶會(huì)導(dǎo)致命中:

如何恢復(fù)網(wǎng)絡(luò)令牌

步進(jìn)式(Stepping )直到我們點(diǎn)擊ret并檢查填充的參數(shù),在參數(shù)12的內(nèi)存區(qū)域中會(huì)顯示一些有趣的東西。

如何恢復(fù)網(wǎng)絡(luò)令牌

對(duì)我來(lái)說(shuō),這確實(shí)是一個(gè)象征!如果我們打開像Fiddler這樣的代理,我們會(huì)看到它與Office訪問(wèn)web服務(wù)時(shí)使用的身份驗(yàn)證令牌格式相匹配:

如何恢復(fù)網(wǎng)絡(luò)令牌

那么,我們?nèi)绾螐奈覀冏约旱墓ぞ咧姓{(diào)用它呢?讓我們使用James Forshaw的NtObjectManager生成一個(gè)可以使用的存根。

如何恢復(fù)網(wǎng)絡(luò)令牌

生成的RPC存根根據(jù)Windows版本的不同而不同,這是毫無(wú)價(jià)值的,例如,在Windows 10中,我們發(fā)現(xiàn)字段計(jì)數(shù)在輸入結(jié)構(gòu)上發(fā)生了變化,因此,如果你收到可怕的(0x800706F7) - The stub received bad data. 錯(cuò)誤,請(qǐng)多家留意。

使用RPC客戶端存根創(chuàng)建一個(gè)快速的C#應(yīng)用程序,我們將重播我們之前觀察到的入站RPC調(diào)用,并添加參數(shù),這將給我們提供如下內(nèi)容:

如何恢復(fù)網(wǎng)絡(luò)令牌

如果我們稱之為:

如何恢復(fù)網(wǎng)絡(luò)令牌

由于這是MSA身份驗(yàn)證請(qǐng)求,我們將不得不使用Substrate等服務(wù)來(lái)訪問(wèn)Microsoft 365服務(wù)。旋轉(zhuǎn)一個(gè)代理并在Office中導(dǎo)航是確定調(diào)用什么以及這些web服務(wù)采用什么參數(shù)的最佳方式。但你可以看到,passport令牌返回后,我們可以很好地進(jìn)行身份驗(yàn)證和交互:

如何恢復(fù)網(wǎng)絡(luò)令牌

令牌緩存

現(xiàn)在我們已經(jīng)了解了如何恢復(fù)MSA,那么Azure AD呢?通過(guò)Lee Christensen的帖子知道,我們可以很容易地按需請(qǐng)求新令牌,但是我們?cè)贠ffice進(jìn)程中看到的緩存令牌被轉(zhuǎn)儲(chǔ)了,它們是如何在啟動(dòng)時(shí)加載的呢?

讓我們提供一個(gè)新的主機(jī)并將我們的用戶帳戶與AzureAD相關(guān)聯(lián),然后登錄到Office,再嘗試找出令牌存儲(chǔ)的位置。

如何恢復(fù)網(wǎng)絡(luò)令牌

為了確保我們?cè)谡_的軌道上,讓我們從內(nèi)存中轉(zhuǎn)儲(chǔ)一些字符串,并確保eyJ0eX簽名存在。

如何恢復(fù)網(wǎng)絡(luò)令牌

我們?cè)俅紊钊胨阉鱠ll,但這次我們將重點(diǎn)關(guān)注Windows.Security.Authentication.Web.Core.dll。

這是一個(gè)WinRT庫(kù),因此我們需要深入Ghidra了解正在發(fā)生的事情。

AddWebTokenResponseToCache方法如下:

如何恢復(fù)網(wǎng)絡(luò)令牌

如果我們進(jìn)一步研究,會(huì)發(fā)現(xiàn)此方法實(shí)際上負(fù)責(zé)將憑據(jù)緩存到序列化文件,這些文件可以在%LOCALAPPDATA%\Microsoft\TokenBroker\Cache中找到。

如何恢復(fù)網(wǎng)絡(luò)令牌

好的,讓我們看看這些TBRES文件:

如何恢復(fù)網(wǎng)絡(luò)令牌

如果我們使用ProcMon,我們會(huì)看到這些文件確實(shí)在進(jìn)程啟動(dòng)時(shí)被Office訪問(wèn):

如何恢復(fù)網(wǎng)絡(luò)令牌

可以看到,這就是我們的身份驗(yàn)證信息存儲(chǔ)的地方!查看JSON會(huì)發(fā)現(xiàn)一個(gè)IsProtected字段。在WinDBG中,我們將附加到Office,在CryptUnprotectData上添加斷點(diǎn)并重新啟動(dòng)。果然,我們發(fā)現(xiàn)base64解密數(shù)據(jù)的內(nèi)容被解密了。

如何恢復(fù)網(wǎng)絡(luò)令牌

JSON文件中我們特別感興趣的字段是ResponseBytes,我添加了一個(gè)帶有快速工具的repo,該工具可以解密這些文件,可以在這里找到。

在使用ProtectedData.Unprotect解密此數(shù)據(jù)后,我們看到了明文JWT。果然,解密它們會(huì)得到我們之前從內(nèi)存中看到的相同信息:

如何恢復(fù)網(wǎng)絡(luò)令牌

來(lái)自不同提供者和應(yīng)用程序的其他令牌也存儲(chǔ)在這些文件中,包括MSA令牌,這也是毫無(wú)價(jià)值的。

現(xiàn)在我們知道了,Windows和Office用于Live和Azure的認(rèn)證和緩存會(huì)話的幾種不同方法。

POC可以在https://github.com/xpn/WAMBam上找到。

本文翻譯自:https://blog.xpnsec.com/wam-bam/如若轉(zhuǎn)載,請(qǐng)注明原文地址

責(zé)任編輯:武曉燕 來(lái)源: 嘶吼網(wǎng)
相關(guān)推薦

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2023-01-10 08:43:15

定義DDD架構(gòu)

2022-09-22 12:03:14

網(wǎng)絡(luò)安全事件

2022-08-29 08:05:44

Go類型JSON

2023-03-17 16:44:44

Channel進(jìn)程模型

2024-01-05 07:46:15

JS克隆對(duì)象JSON

2022-11-23 14:57:04

2024-11-29 08:53:46

2023-01-28 10:40:56

Java虛擬機(jī)代碼

2024-09-30 09:05:46

Linux網(wǎng)絡(luò)延遲

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2024-01-02 12:05:26

Java并發(fā)編程

2023-10-10 11:04:11

Rust難點(diǎn)內(nèi)存

2024-05-06 00:00:00

InnoDBView隔離

2023-01-30 09:01:54

圖表指南圖形化

2024-07-31 08:39:45

Git命令暫存區(qū)

2023-12-12 08:02:10

2022-07-08 09:27:48

CSSIFC模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)