Windows NT LAN Manager (NTLM)安全特征繞過漏洞

ang010ela
NTLM中繼攻擊是中間人攻擊的一種,攻擊者利用該攻擊可以訪問網(wǎng)絡來攔截客戶端和服務器之間合法的認證流量,并對經(jīng)過驗證的認證請求進行中繼以訪問相關的網(wǎng)絡服務。

微軟在本月的微軟補丁日修復了一個Windows NT LAN Manager(NTLM)安全特征繞過漏洞。該漏洞CVE編號為CVE-2021-1678,CVSS評分為4.3分。攻擊者利用該漏洞可以中繼NTLM認證會話到攻擊者的機器,使用printer spooler MSRPC接口來在被攻擊的機器上遠程執(zhí)行代碼。

NTLM中繼攻擊是中間人攻擊的一種,攻擊者利用該攻擊可以訪問網(wǎng)絡來攔截客戶端和服務器之間合法的認證流量,并對經(jīng)過驗證的認證請求進行中繼以訪問相關的網(wǎng)絡服務。

Print Spooler權限提升

漏洞利用中,攻擊者使用了來自特權用戶賬戶的NTLM會話來執(zhí)行一系列的RPC操作。整個漏洞利用的步驟如下所示:

·建立于攻擊者控制的中繼機器的NTLM會話;

·攻擊者綁定目標的IRemoteWinspool接口,選擇RPC_C_AUTHN_LEVEL_CONNECT的認證級別;

·攻擊者通過建立的RPC信道來中繼NTLM認證;

·執(zhí)行一系列的RPC命令:

·RpcAsyncInstallPrinterDriverFromPackage(Opnum 62)—安裝“Generic/Text”打印機驅動;

·RpcAsyncOpenPrinter(Opnum 0)

·RpcAsyncXcvData(Opnum 33)—添加端口

·RpcAsyncAddPrinter(Opnum 1)—用前面提到的驅動添加打印機;

·RpcAsyncStartDocPrinter(Opnum 10)—打開新文檔;

·RpcAsyncWritePrinter(Opnum 12)—在新文檔中寫入內(nèi)容。

2345截圖20200908083720.png

圖CVE-2021-1678漏洞利用流圖

補丁分析

微軟在補丁中對定時任務服務使用的IfCallback加入了檢查,同時對RPC運行時間沒有太大的影響。研究人員逆行了Spoolsv.exe中IRemoteWinspool的實現(xiàn),發(fā)現(xiàn)了一個名為RpcManager::VerifyRpcValidProtocolSequence的共享函數(shù),該函數(shù)被多個不同的RPC接口所使用,其中就包括IRemoteWinSpool。

本來該函數(shù)會驗證ncacn_ip_tcp協(xié)議序列是否用于IRemoteWinspool,以確保只有遠程的TCP/IP客戶端才會被接受。但是,在認證安全級中沒有相關的檢查。

在補丁中,二進制文件中加入了一個新的IfCallback函數(shù),偽代碼如下所示:

2345截圖20200908083720.png

圖安裝補丁后IRemoteWinspool使用的新的RPC驗證流

從中可以看出,驗證協(xié)議序列的調(diào)用被擴展了,如下所示:

2345截圖20200908083720.png

圖安裝補丁后安全級別驗證

如上圖所示,HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrint key中的REG_DWORD value RpcAuthnLevelPrivacyEnabled必須設置為1,否則其他的檢查就不會執(zhí)行,系統(tǒng)仍然會受到攻擊。

更多技術細節(jié)參見:https://www.crowdstrike.com/blog/cve-2021-1678-printer-spooler-relay-security-advisory/

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論