网络安全

重现VIM漏洞CVE-2019-12735

2019-06-17  本文已影响290人  一只老不上架的鸭子

    VIM的漏洞自6月4日爆出来后,网上可以直接下载两个POC,网上有一篇翻译的文,刚好最近做了这个漏洞POC的重现尝试,分享之。

    测试环境:

    系统:4.18.0-kali2-amd64

    VIM:version 8.1.320

    背景知识:

    关于VIM的modeline的语法、功能相关的背景知识,参照链接如下

https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md

    测试准备:

    建立vimtest测试用户进行测试

    开启vimtest的modeline选项,在~/.vimrc中加入行:set modeline

    打开vim后,运行:set modeline?返回

图一 图二

(1)测试POC1 ,POC1是个检查是否vim存在漏洞的测试

图三

    可以看到使用vim打开poc.txt的时候,命令uname -a被自动执行,说明测试的vim存在漏洞。但是此poc.txt的内容可以用cat命令看到,其执行的命令很容易被发现。

(2)测试POC2 ,POC2是一个带反向Shell的攻击样例,当被攻击者使用vim打开shell.txt的恶意文件时,自动调用了nc命令生成一个用于黑客远程控制的反向Shell连接。下面是网上对POC2的描述:

图四

实际上,shell.txt不能直接拷贝上述网页上的文本来生成,如果拷贝网页上的内容,十六进制比如\x1b是需要通过二进制编辑器直接改成二进制的,并且需要处理命令中的反斜杠的字符“\”。这就比较啰嗦了。这里直接将shell.txt的原文从网上下载下来。

wget https://raw.githubusercontent.com/numirias/security/master/data/2019-06-04_ace-vim-neovim/shell.txt

图五

真实的shell.txt的内容如下:

图六

普通的cat命令不能看到这个文件的异常

图七

运行POC2,首先,启动本地9999的监听端口(实际应用中会是远程的9999监听),另开一个窗口,运行“vim shell.txt”,可以看到成功建立了反向Shell连接。

图八 图九
上一篇下一篇

猜你喜欢

热点阅读