溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

發(fā)布時(shí)間:2021-11-11 11:53:15 來源:億速云 閱讀:200 作者:柒染 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

首先,在這里我要向大家道聲抱歉!原本在去年圣誕節(jié)時(shí),我就承諾要為大家做這個(gè)分享的。但由于一直忙于手頭的各種瑣事,所以一直拖到了現(xiàn)在。話不多說,我們直切正題!

什么是XML/XXE注入

外部實(shí)體注入攻擊:XML文件的解析依賴libxml庫,而libxml2.9以前的版本默認(rèn)支持并開啟了外部實(shí)體的引用,服務(wù)端解析用戶提交的xml文件時(shí)未對(duì)xml文件引用的外部實(shí)體(含外部普通實(shí)體和外部參數(shù)實(shí)體)做合適的處理,并且實(shí)體的URL支持file://和php://等協(xié)議,攻擊者可以在xml文件中聲明URI指向服務(wù)器本地的實(shí)體,從而就會(huì)發(fā)生這種攻擊。

例如,以下是一個(gè)用于漏洞利用的PoC代碼:

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

任務(wù):

在滲透測(cè)試期間,我需要對(duì)一個(gè)托管文檔和文件的Web應(yīng)用程(如SharePoint)進(jìn)行審計(jì),以將其分享給其他的同事使用。經(jīng)過一番測(cè)試,我找到了一些XSS/CSRF漏洞,并成功繞過防護(hù)機(jī)制。這個(gè)應(yīng)用有一個(gè)特性引起了我的關(guān)注,它可以上傳Microsoft文檔格式,如.Docx。

我記得,我的一個(gè)朋友當(dāng)時(shí)通過一個(gè)嵌入的XML代碼就成功拿下了Facebook的服務(wù)器。

感謝@bbuerhaus 和 @nahamsec托管XXE服務(wù)(一個(gè)可以通過XXE預(yù)定義payload生成Microsoft文件的服務(wù))。

以下是我的第一個(gè)payload:

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

可以看到通過NC,172.28.1.116成功與我建立了連接!

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

現(xiàn)在,我們能做些什么呢?

由于我知道當(dāng)前我處理的系統(tǒng)為Windows,因此不能像在Linux中那樣讀取像/etc/passwd這樣的敏感文件路徑。我唯一想到的就是,Windows的系統(tǒng)配置文件/windows/win.ini。還好當(dāng)時(shí)坐在我旁邊的同事提醒我:“關(guān)于Windows最重要的是NTLM哈希”。

這一次我修改了我的payload,并將其指向了我的共享IP地址:

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

B00M :D

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

我能夠從SSL證書掃描中識(shí)別其他服務(wù)器(處理不同環(huán)境的相同角色),以及最重要的是SMB消息沒有簽名!

這些信息足以讓我們對(duì)其發(fā)起SMB中繼攻擊:

首先,讓我們嘗試做一些基本的RCE :( Ping)

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

通過抓包工具可以清楚的看到ping的完整過程:

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

讓我們來創(chuàng)建一個(gè)用戶:

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

將他添加到管理員組后,我可以在服務(wù)器上做一個(gè)RDP遠(yuǎn)程桌面連接。

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

好吧,我承認(rèn)當(dāng)時(shí)我還并不知道Impacket有一個(gè)很nice的用于轉(zhuǎn)儲(chǔ)SAM文件的功能。如果我們只是想指向中繼服務(wù)器的IP,則不需要添加任何其它參數(shù):

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

現(xiàn)在我們獲取到了管理員的哈希。讓我們?cè)诰W(wǎng)絡(luò)中刪除哈希,看看會(huì)有什么結(jié)果。

使用Metasploit中的smb掃描模塊,我命中了41個(gè)掃描結(jié)果。真的是太棒了!

在對(duì)這些服務(wù)器使用PSExec exploit后,其中一個(gè)引起了我的關(guān)注:

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

B00M !!

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

此帳戶是域管理員的成員,讓我們通過創(chuàng)建另一個(gè)用戶來模擬該會(huì)話,但這次是:域管理員的成員;

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

讓我們來驗(yàn)證下:

如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限

使用此帳戶,我可以訪問所有DC,PC,甚至轉(zhuǎn)儲(chǔ)包含用戶所有哈希值的NTDS.DIT文件 :D

XXE漏洞對(duì)于企業(yè)內(nèi)部網(wǎng)絡(luò)來說破壞性不可小覷,特別是在滿足所有條件的情況下(解析外部XML實(shí)體+SMB消息未簽名)。

上述就是小編為大家分享的如何利用XXE漏洞獲取NetNTLM Hash并通過SMB Relay取得權(quán)限了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI