CVE-2018-20250_WinRAR目錄穿越漏洞

# CVE-2018-20250 WinRAR目錄穿越漏洞
==漏洞原理==
該漏洞是由於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上受用戶名影響,無法猜測到準確的路徑,而服務器上一般不會修改用戶名,所以這個漏洞在服務器上利用度比較高。

==漏洞利用==
這裡我們寫一個bat,進行彈窗演示:

![](/static/pwnwiki/img/1266243-20190308101249378-2013483925.png )

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

![](/static/pwnwiki/img/1266243-20190308124414993-1147235497.png )

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

![](/static/pwnwiki/img/1266243-20190308144027681-585501340.png )

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

![](/static/pwnwiki/img/1266243-20190308133050691-1223667359.png )

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

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

![](/static/pwnwiki/img/1266243-20190310222141566-376777695.png )

修改完这两个地方之后点击保存,接着还需要修改hdr_size

![](/static/pwnwiki/img/1266243-20190310222410019-46466160.png )

![](/static/pwnwiki/img/1266243-20190310222513809-688780836.png )

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

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

![](/static/pwnwiki/img/1266243-20190308150606052-328146804.png )

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

![](/static/pwnwiki/img/1266243-20190310222732970-1725311033.png )

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

![](/static/pwnwiki/img/1266243-20190310222933918-1700514051.png )

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

![](/static/pwnwiki/img/1266243-20190308155112326-854060047.png.png )

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

![](/static/pwnwiki/img/1266243-20190309111018388-35896760.png )

重啟電腦查看效果

![](/static/pwnwiki/img/1266243-20190309112143784-391653487.png )

复现成功,自动运行bat文件弹窗。

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

https://github.com/QAX-A-Team/CVE-2018-20250

==參考==
https://wiki.bylibrary.cn/%E6%BC%8F%E6%B4%9E%E5%BA%93/03-%E4%BA%A7%E5%93%81%E6%BC%8F%E6%B4%9E/winrar/WinRAR%E7%A9%BF%E9%80%8F%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2018-20250%EF%BC%89/==漏洞原理==
該漏洞是由於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上受用戶名影響,無法猜測到準確的路徑,而服務器上一般不會修改用戶名,所以這個漏洞在服務器上利用度比較高。

==漏洞利用==
這裡我們寫一個bat,進行彈窗演示:

![](/static/pwnwiki/img/1266243-20190308101249378-2013483925.png )

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

![](/static/pwnwiki/img/1266243-20190308124414993-1147235497.png )

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

![](/static/pwnwiki/img/1266243-20190308144027681-585501340.png )

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

![](/static/pwnwiki/img/1266243-20190308133050691-1223667359.png )

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

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

![](/static/pwnwiki/img/1266243-20190310222141566-376777695.png )

修改完这两个地方之后点击保存,接着还需要修改hdr_size

![](/static/pwnwiki/img/1266243-20190310222410019-46466160.png )

![](/static/pwnwiki/img/1266243-20190310222513809-688780836.png )

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

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

![](/static/pwnwiki/img/1266243-20190308150606052-328146804.png )

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

![](/static/pwnwiki/img/1266243-20190310222732970-1725311033.png )

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

![](/static/pwnwiki/img/1266243-20190310222933918-1700514051.png )

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

![](/static/pwnwiki/img/1266243-20190308155112326-854060047.png )

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

![](/static/pwnwiki/img/1266243-20190309111018388-35896760.png )

重啟電腦查看效果

![](/static/pwnwiki/img/1266243-20190309112143784-391653487.png )

复现成功,自动运行bat文件弹窗。

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

https://github.com/QAX-A-Team/CVE-2018-20250

==參考==
https://wiki.bylibrary.cn/%E6%BC%8F%E6%B4%9E%E5%BA%93/03-%E4%BA%A7%E5%93%81%E6%BC%8F%E6%B4%9E/winrar/WinRAR%E7%A9%BF%E9%80%8F%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2018-20250%EF%BC%89/

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容