Winrar目錄穿越漏洞復現


Winrar目錄穿越漏洞復現

 

 

1、漏洞概述

  WinRAR 是一款功能強大的壓縮包管理器,它是檔案工具RAR在Windows環境下的圖形界面。2019年 2 月 20 日Check Point團隊爆出了一個關於WinRAR存在19年的漏洞,用它來可以獲得受害者計算機的控制。攻擊者只需利用此漏洞構造惡意的壓縮文件,當受害者使用WinRAR解壓該惡意文件時便會觸發漏洞。

  該漏洞是由於 WinRAR 所使用的一個陳舊的動態鏈接庫UNACEV2.dll所造成的,該動態鏈接庫在 2006 年被編譯,沒有任何的基礎保護機制(ASLR, DEP 等)。動態鏈接庫的作用是處理 ACE 格式文件。而WinRAR解壓ACE文件時,由於沒有對文件名進行充分過濾,導致其可實現目錄穿越,將惡意文件寫入任意目錄,甚至可以寫入文件至開機啟動項,導致代碼執行。

影響版本:

  WinRAR < 5.70 Beta 1

  Bandizip < = 6.2.0.0

  好壓(2345壓縮) < = 5.9.8.10907

  360壓縮 < = 4.0.0.1170

漏洞危害:

  通過這個漏洞黑客可以將惡意程序放入用戶啟動項,當目標電腦重新啟動時獲取目標主機的權限。替換任意dll文件或覆蓋任意配置文件。

漏洞細節: 

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

  漏洞主要是由Winrar用來解壓ACE壓縮包采用的動態鏈接庫unacev2.dll這個dll引起的。unacev2.dll中處理filename時只校驗了CRC,黑客可以通過更改壓縮包的CRC校驗碼來修改解壓時候的filename來觸發這個Path Traversal漏洞。但是Winrar本身檢測了filename,有一些限制並且普通用戶解壓RAR文件時候不能將我們惡意的Payload解壓到需要System權限的文件夾。所以當用戶將文件下載到默認的C:\Users\Administrator\Downloads 目錄下時,我們通過構造

    C:\C:C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\test.exe

  經過Winrar的CleanPath函數處理會變成

    C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\test.exe

  其中C:會被轉換成當前路徑,如果用Winrar打開那么當前路徑就是C:\Program Files\WinRAR,要是在文件夾中右鍵解壓到xxx\那么當前路徑就是壓縮包所在的路徑。

  當用戶在文件夾中直接右鍵解壓到xx那么我們惡意的payload解壓地址就會變成

    C:\Users\Administrator\Downloads../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\test.exe

  就是當前用戶的啟動項。這樣一個利用完成了從一個Path Traversal到任意命令執行的過程。

 

2、漏洞復現

   所需軟件:WinACE、Winhex/010Editor、Winrar5.50

(1)在桌面創建一個txt文件,hello.txt

(2)使用WinACE將hello.txt壓縮,注意選擇store full path.

(3)使用010Editor打開hello.txt,修改原路徑為以下路徑(啟動項)

C:\C:C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hello.txt

 

(4)修改長度,選中路徑,可見修改之前文件長度為29

(5)修改后選中文件長度為81

(6)因此修改以下位,值為51(因為81是十進制,所以要改為hex的16進制)

 

(7)同樣,將以下文件長度改為70

(8)使用acefile.py進行解析ace文件,acefile.py文件地址(https://github.com/backlion/CVE-2018-20250/blob/master/acefile.py)

命令:

python acefile.py --headers hello.ace

報錯,且提示正確的crc為0xa350,修改文件crc為50 a3 順序從右到左。

修改后未報錯則說明修改成功

 (9)使用Winrar解壓縮即可將hello.txt釋放到C:\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

(10)如果將hello.txt換為后門則可以配合msf遠程控制受害機器

https://github.com/backlion/CVE-2018-20250

GitHub的POC-exp.py可以制作一個含有exe文件的漏洞壓縮包,只要用戶使用低版本的Winrar即可被種下exe后門。

 

3、修復建議:

 

  1. 升級到最新版本,WinRAR 目前版本是 5.70 Beta 1

  2. 刪除其安裝目錄下的UNACEV2.dll文件

4、參考:

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

 https://www.cnblogs.com/backlion/p/10417985.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM