????VIM的漏洞自6月4日爆出來后,網(wǎng)上可以直接下載兩個(gè)POC,網(wǎng)上有一篇翻譯的文,剛好最近做了這個(gè)漏洞POC的重現(xiàn)嘗試,分享之。
? ? 測試環(huán)境:
? ? 系統(tǒng):4.18.0-kali2-amd64
????VIM:version 8.1.320
? ? 背景知識(shí):
? ? 關(guān)于VIM的modeline的語法、功能相關(guān)的背景知識(shí),參照鏈接如下
https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md
? ? 測試準(zhǔn)備:
????建立vimtest測試用戶進(jìn)行測試
? ? 開啟vimtest的modeline選項(xiàng),在~/.vimrc中加入行:set modeline
? ? 打開vim后,運(yùn)行:set modeline?返回


(1)測試POC1 ,POC1是個(gè)檢查是否vim存在漏洞的測試

????可以看到使用vim打開poc.txt的時(shí)候,命令uname -a被自動(dòng)執(zhí)行,說明測試的vim存在漏洞。但是此poc.txt的內(nèi)容可以用cat命令看到,其執(zhí)行的命令很容易被發(fā)現(xiàn)。
(2)測試POC2 ,POC2是一個(gè)帶反向Shell的攻擊樣例,當(dāng)被攻擊者使用vim打開shell.txt的惡意文件時(shí),自動(dòng)調(diào)用了nc命令生成一個(gè)用于黑客遠(yuǎn)程控制的反向Shell連接。下面是網(wǎng)上對(duì)POC2的描述:

實(shí)際上,shell.txt不能直接拷貝上述網(wǎng)頁上的文本來生成,如果拷貝網(wǎng)頁上的內(nèi)容,十六進(jìn)制比如\x1b是需要通過二進(jìn)制編輯器直接改成二進(jìn)制的,并且需要處理命令中的反斜杠的字符“\”。這就比較啰嗦了。這里直接將shell.txt的原文從網(wǎng)上下載下來。
wget?https://raw.githubusercontent.com/numirias/security/master/data/2019-06-04_ace-vim-neovim/shell.txt

真實(shí)的shell.txt的內(nèi)容如下:

普通的cat命令不能看到這個(gè)文件的異常

運(yùn)行POC2,首先,啟動(dòng)本地9999的監(jiān)聽端口(實(shí)際應(yīng)用中會(huì)是遠(yuǎn)程的9999監(jiān)聽),另開一個(gè)窗口,運(yùn)行“vim shell.txt”,可以看到成功建立了反向Shell連接。

