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连接。
图八 图九
网友评论