CVE-2021-35052:WinRAR遠程代碼執行漏洞分析
1.漏洞概述
WinRAR是一款功能強大的壓縮包管理工具,廣泛應用于Windows系統的RAR、ZIP等類型的壓縮文件的創建與解壓中。2021年10月20日,Positive Technologies公司的Psych0tr1a(https://twitter.com/Psych0tr1a)公開披露WinRAR 5.70試用版及以前版本存在遠程代碼執行漏洞,此漏洞允許攻擊者攔截和修改發送給用戶的請求,以達到執行遠程代碼的目的。該漏洞被分配編號為CVE-2021-35052,WinRAR 6.02及以后版本已經修補了此漏洞。

Positive Technologies已經要求WinRAR對此漏洞發表評論,WinRAR表示:“只有當入侵者設法欺騙或以其他方式控制用戶的DNS記錄時,才有可能進行此類攻擊。”
2. 復現環境
Windows 10虛擬機
WinRAR 5.70試用版
BurpSuite抓包工具
3. 分析過程
WinRAR允許用戶在設定的天數內體驗程序的全部功能,之后用戶可以在禁用某些功能的情況下繼續使用。一旦試用期結束,WinRAR.exe程序的三次啟動中大約會有一次會顯示如下圖所示的JavaScript錯誤的通知窗口:

使用ProcessMonitor查看可以發現,此通知窗口由MSHTML.dll實現。

將BurpSuite設置為默認的Windows代理,并嘗試攔截流量,以了解發生這種情況的原因。查看請求本身,可以看到WinRAR應用程序的版本(5.7.0)和體系結構(x64):

接下來試圖修改從WinRAR截獲的對用戶的響應。可以發現,如果把響應代碼更改為“301 Moved Permanently”,所有請求都將轉到惡意域“attacker.com”,并且惡意域“attacker.com”會被緩存下來。緩存下來以后,所有到默認域“notifier.rarlab.com”的流量會重定向到惡意域“attacker.com”。

這種中間人攻擊需要ARP欺騙,因此我們可以假定潛在攻擊者已經可以訪問同一局域網。可以嘗試幾種不同的攻擊向量,以了解這種訪問的可行性。

我們嘗試了幾種不同的攻擊向量,如運行應用程序、檢索本地主機信息和運行計算器應用程序等。彈出的鏈接可以運行各種應用程序或打開系統文件。

如下圖所示,可以在Windows系統中成功運行計算器程序。

大多數攻擊向量都是成功的,但值得注意的是,許多攻擊向量會導致額外的Windows安全警告。要使這些命令能夠成功執行,用戶需要點擊“運行”。

有些文件類型可以在不顯示安全警告的情況下運行,如以.docx、.pdf、.py、.rar為后綴的文件。rar文件可以利用CVE-2018-20250漏洞在WinRAR中執行遠程代碼,這兩個漏洞可以聯合起來,可以達到在不彈窗的情況下執行遠程代碼的目的。
4. 影響及緩解建議
幾年前,在WinRAR中發現了一個近兩年前的錯誤,影響了1990年代首次開發的古老文件壓縮格式。
至于Positive Technologies,這家俄羅斯公司今年早些時候受到了美國政府的制裁,美國聲稱該公司已將漏洞傳遞給俄羅斯國家黑客,而不是披露它們。該公司極力否認這一點,并繼續發布安全研究。
應用安全專家肖恩·賴特(Sean Wright)評論該漏洞時說:“遠程代碼執行漏洞應始終得到認真對待并及時處理,因為它們帶來的風險非常大。即便如此,在WinRAR的易受攻擊的試驗中,攻擊者成功利用該漏洞的可能性似乎相當有限,因為在攻擊者可以利用之前,受害者需要滿足許多條件和階段,才可能實現RCE。
另一個需要關注的是,該漏洞突出了開發人員在傳統桌面應用程序中結合 Web應用程序功能時面臨的一些挑戰。這使應用程序暴露了桌面應用程序中web應用程序所面臨的許多漏洞。最終的結果是安全威脅程度的增加。
該漏洞的有效緩解措施就是使用正式版本,或將WinRAR軟件更新到6.02版本以后。