2019年3月13号,国外一名安全研究员在他的博客上公布了zimbra的这起漏洞,但是其中并未提到一些漏洞的利用细节,ScanV团队成员将整个漏洞的利用过程进行复现。
原文链接:https://blog.tint0.com/2019/03/a-saga-of-code-executions-onzimbra.html#href1_ret1..
• Zimbra < 8.7.1 攻击者可以在无需登录的情况下,实现getshell
• Zimbra<8.8.11 在服务端使用Memcached做缓存的情况下,经过登录认证后可以实现远程代码执行
• Zimbra 8.5.0
• ubuntu 14.04(172.16.123.134)(受害者服务器)
• ubuntu 18.04 (172.16.123.1)(攻击者服务器)
此处特别强调Zimbra只能安装在特定版本的linux发行版上,与ubuntu适配最佳,且zimbra8.5不支持ubuntu14以上发行
Zimbra的环境搭建比较麻烦,在此推荐几篇有关zimbra搭建的优质博文 https://www.jianshu.com/p/722bc70ff426 关键在于选择合适版本ubuntu虚拟机,主机hosts配置,dnsmasq的配置,最后的环境可以不配置ssl.
原文中需要利用xxe来读取目标主机的 localconfig.xml文件,此文件有一个类似超级管理员用户的密码,而超级管理员的用户名默认为zimbra,所以只要拿到zimbra的密码就等同于已经获得zimbra的最高权限。但是,Zimbra使用token进行权限管理,而管理员的token只可能分配给来自7071端口的请求,而这个端口通常不会对外开放,所以需要使用ssrf。但是ssrf利用需要一些条件,ssrf的利用点存在于源码中的 ProxyServlet.doProxy() 函数处,源码如下:
从上面的代码逻辑中可以看出,只有在token作为parameter传递过来时才会对其进行验证,否则,如果token是从cookie传递过来则不会进入验证,所以只需要得到合法的普通token,而获取token则要利用到Zimbra的特性。
由于doProxy会从服务端发送一个请求到目标主机,为了安全起见,Zimbra为可访问的目标主机设置了白名单,所以还需要绕过白名单,具体方法是修改host,因为 Zimbra默认管理员可以合法进行任何请求,而判断是否为管理员的方式就是获取host中的port(如果是7071就是管理员,否则不是),所以所有来自7071端口的请求都会被认为合法(直接忽略白名单限制),所以只要将host更改为axin:7071,再重新发送proxy请求就可以实现。
在这里,只需要将一个普通的soap AuthRequest的用户名更改为zimbra就可以得到可利用的token了(此处可能不够清晰,具体看后续复现的操作)这个token虽然是合法的,但是它具有admin属性。所以要上传 shell还需要得到真正的admin token,需要利用刚刚的到的token 发送一个admin soap AuthRequest,就可以在响应中得到真正的admin token了,接着再利用这个token来构造文件上传的请求,就可以得到一个webshell了。
利用xxer.py搭建一个http以及ftp服务器,以此来接受xxe返回的数据。
ext.dtd文件内容如下:
上图中间的shell窗口就是攻击者ftp服务器收到的localconfig.xml文件内容。
上图中间的shell窗口就是ftp服务器收到的localconfig.xml文件内容其中包含超管密码。
在xml文本中加入 <account by="adminName">zimbra</account> ,便可得到token。而后可以利用这个token来进行ssrf,进而得到admin token。
利用刚刚得到的token,构造一下cookie,注意token的名字需要改为 ZM_ADMIN_AUTH_TOKEN,否则会报no auth token错误 然后Host头需要改为axin:7071。填入用户名以及密码(zimbra--kAQbqtlab)构造一个请求发送出去(请求到admin验证的链接),服务器就会返回一个经过认证的admin token,接下来利用这个 admin token上传shell。
构造一个上传webshell的恶意请求,便可以直接上传shell。
成功得到shell:
由于zimbra官方已经及时对高版本的zimbra打了补丁,所以最新版只要及时更新补丁就可以预防(详情请见Zimbra官网)。
2020年09月17日,IBM发布安全公告,WebSphere Application Server中存在一个安全漏洞,该漏洞是由于WebSphere Application Server在处理XML数据时容易受到XML外部实体注入(XXE)攻击。
2020年9月22日,FastAdmin远程代码执行漏洞细节曝光,黑客登录前台会员中心,即可远程GetShell,风险极大。
2020年9月17日,VMware发布安全公告,在Spring Framework版本5.2.0-5.2.8、5.1.0-5.1.17、5.0.0-5.0.18、4.3.0-4.3.28和较旧的不受支持的版本中,发现了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞(CVE-2020-5421)。
获取安全动态