ManageEngine Applications Manager远程代码执行漏洞

一背景介绍:

ManageEngine Applications Manager是一款用于应用性能监控及服务器性能监控的软件。它提供了监视和管理J2EE底层结构、J2EE应用的解决方案,它能监视Web服务器、数据库、应用服务器中的不同部件和这些部件所部署的系统,同时它还提供了开放标准(如SNMP、JMX),保护了投资也方便了集成.其管理功能覆盖了管理方案中最重要的方面,即监视应用服务器的底层结构及部署在其中的应用的故障(健壮性)和性能,并且,它还可以用于管理定制的应用和其他服务器.如:Oracle数据库服务器、电子邮件服务器、文件服务器、搜索引擎、认证服务器等.

1 受影响的系统版本:

ManageEngine Applications Manager 13.5

CVE: CVE-2018-7890

2 漏洞描述:

ManageEngine Applications Manager 13.5版本存在远程代码执行漏洞。testCredential.do是一个公开访问的端点,该端点会接受多个用户输入,并通过访问指定的系统来验证用户提供的凭证,然后会调用多个内部类,最后执行一个PowerShell脚本。但是,若指定的系统是OfficeSharePointServer,则不会验证该脚本收到的用户名及密码参数,导致命令注入。

二 漏洞细节:

漏洞细节:

 1

testCredentialForConfMonitors 是一个可以公开访问的类。其中,monType可以从外部传入控制,该变量代表指定的系统。当monType为OfficeSharePointServer时,newMonConf.preConfMap.containsKey(monType),返回值为false,程序运行到else中。

然后,1调用NewMonitorConf类的方法getClass()。

2

该方法对传入的montype进行了数据库查询,最终返回了查询后的结果。接着,2将从返回的结果中的Dcclass字段的值赋值给了dcclass变量。返回的这个dcclass值是OfficeSharePointServer相关类的路径。

3

接着,3使用class.forName来返回这个类(SharePointServerDataCollector),并实例化为对象。最后,4用实例化后的admc对象来调用类中的CheckAuthentication方法。

然后,继续看CheckAuthenticationfang方法

这里需要控制跳转到else里,同时isPowershellEnabled可控,传入Powershell= true

4

5

在这里,变量host,username和password都是直接从外部传入赋值,可控。并且,这三个变量没有经过任何过滤就直接传入到了powershell命令中 ,然后通过Runtime.getRuntime().exec() 执行任意命令。

 

三 漏洞证明:

payload:

21

浏览器运行:

6

burpsuit:

7

返回以上错误信息代表存在漏洞。

 

四 Metasploit利用

反弹Metasploit shell

8

获取系统当前用户信息

9

获取系统信息

10

其中,exp地址为:

https://raw.githubusercontent.com/mmetince/metasploit-framework/ec10a82c56e01c92983c6b8d6857221986aab32c/modules/exploits/windows/http/manageengine_appmanager_exec.rb

五 漏洞影响

11

从上图得知,Applications Manager处于公网的数量并不多,这是因为该软件多数用在内网环境下,直接被利用的范围较小。但是,由于该漏洞有固定的请求地址,当攻击者入侵进入企业内部网络后,可通过扫描的方式探测和发现,从而进行利用,控制存在漏洞的服务器。

六 防御措施:

目前官方已修复该漏洞,可从官网下载最新版本。

 

Windows平台下载安装Manage engine 的过程:

1)   官网提供历史版本下载

https://www.manageengine.com/products/applications_manager/support.html

 

可以找到build为13450的版本, 该版本存在漏洞

https://archives.manageengine.com/applications_manager/13450/

 

官方公告在13640版本上修复了该远程执行漏洞

12

2)      安装过程

13

14

选择HTTP和SSL的端口

15

填写注册信息

16

3)      Web管理服务启动

17

Web服务可以正常进行访问了

18

 

Written by