WinRAR曝遺留19年重大漏洞,可完全控制電腦(附解決方法)

AI科技大本營發表於2019-02-22

640?wx_fmt=jpeg


整理 | 琥珀

出品 | AI科技大本營(ID:rgznai100)


作為目前最受歡迎的電腦解壓縮工具之一,WinRAR 號稱在全球擁有 5 億使用者。不過最近的情況表明,如果你正在使用這款軟體,建議立即升級到 5.70 Beta 1 版本,否則將有可能受到攻擊者利用 WinRAR 的程式碼執行漏洞進行的對計算機的控制。


近日,安全公司 Check Point 安全研究員 Nadav Grossman 在一篇文中披露,WinRAR 中存在嚴重漏洞,可完全控制受害者的計算機。而且,該漏洞已經存在了近 19 年,並迫使 WinRAR 完全放棄對易受攻擊 ACE 格式的支援。


640?wx_fmt=png


傳送門:

https://research.checkpoint.com/extracting-code-execution-from-winrar/


目前這個漏洞存在於 WinRAR 的 UNACEV2.dll 程式碼庫中,該程式碼庫用於解析 ACE 格式,在解壓處理的過程中存在一處目錄穿越漏洞,允許解壓過程中將檔案寫入啟動資料夾中,導致系統重啟後導致程式碼執行。然後,攻擊者可製作一個 ACE 惡意檔案,當被 WinRAR 開啟時,會利用 UNACEV2.dll 的目標路徑,將檔案解壓到攻擊者選擇的路徑中。視訊演示如下:



值得一提的是,早在此前,針對這種型別的漏洞,Zerodium 還給出了漏洞懸賞計劃。


640?wx_fmt=png


研究人員在文中具體介紹了 WinRAR 程式碼執行漏洞的發現過程。幾個月前,他們先利用 Winafl fuzz 對 Windows 環境下的二進位制檔案進行了模糊測試。


傳送門:https://github.com/googleprojectzero/winafl


以下為準備過程:


  1. 在 WInRAR 注函式內建立 hareness,使其能夠模糊任何存在當型別而無需為每種格式構造單獨的 harness。

  2. 消除使用者互動的對話方塊等 GUI 元素。

  3. 使用奧盧大學 2005 年左右進行的一項有趣研究釋出的超大型語料庫。

  4. 在 WinRAR 命令列模式下使用 WinAFL 對程式進行模糊處理。


通過以上操作後,研究人員發現了 RAR、LZH、ACE 等壓縮格式的崩潰,並且在解析 ACE 格式的崩潰時,WinRAR 使用名為 unacev2.dll 的 dll 來解析 ACE 格式檔案。這個 dll 從 2006 年起就沒有保護機制。


在漏洞利用過程中,研究人員試圖將 ACE 惡意檔案放到啟動資料夾中以便在系統啟動時執行。


示例:


研究人員將 .ace 副檔名更改為 .rar 副檔名,因為 WinRAR 會根據檔案內容而不是副檔名測試格式。


下圖為 acefile 的輸出:


640?wx_fmt=png

通過檔名欄位中精心構造的字串(綠色部分)觸發漏洞


無論目標資料夾的路徑是什麼,該存檔都將解壓縮到 C:\some_folder\some_file.txt


那麼真實的漏洞利用過程是怎樣的?


研究人員表示,可以通過從 ACE 存檔中提取壓縮的可執行檔案到其中一個啟動資料夾(Startup Folders),從而獲得程式碼執行。


製作一個將壓縮檔案提取到啟動資料夾的 ACE 存檔,在以下路徑中至少有 2 個啟動資料夾:


C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

C:\Users\<使用者名稱>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup


第一個啟動資料夾的路徑需要高許可權/高完整性級別。但是,WinRAR 預設以中等完整性級別執行。


第二個啟動資料夾的路徑需要知道使用者的名稱。


不過,研究人員向 WinRAR 報告這個程式碼執行漏洞之後, WinRAR 官方也對此進行了回應表示,目前給出的修復方法就是從軟體包中刪除 UNACEV2.dll,或者可以下載最新的 5.70 Beta 1 版本。


由於 UNACEV2.dll 自 2005 年以來就沒有更新,尚無法訪問其原始碼,因此對於使用這個庫來壓縮 ACE 格式的使用者來說,官方表示只能放棄對其支援。


640?wx_fmt=png

官網預設下載的 5.61 版本並非最新版本


WinRAR 5.70 Beta 1 下載地址如下:


32 位:http://win-rar.com/fileadmin/winrar-versions/wrar57b1.exe

64 位:http://win-rar.com/fileadmin/winrar-versions/winrar-x64-57b1.exe


相關連結:

https://research.checkpoint.com/extracting-code-execution-from-winrar/


(*本文為 AI科技大本營整理文章,轉載請聯絡微信 1092722531)

精彩推薦

640?wx_fmt=jpeg

640?wx_fmt=jpeg

推薦閱讀:

                         640?wx_fmt=png

點選“閱讀原文”,檢視歷史精彩文章。

相關文章