Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

[R1] HP Intelligent Management Center (iMC) Platform euplat RMI Registry Java Deserialization Remote Code Execution

Critical

Synopsis

During the process of writing a detection plugin for CVE-2016-4372 / HP c05200601, Tenable discovered these additional issues. CVE-2016-4372 describes the deserialization of Java objects associated with the Apache Commons Collections library leading to remote code execution. There are a few affected HP products, but our interest was in "HPE iMC PLAT before 7.2 E0403P04". We installed and tested "iMC PLAT 7.2 E0403P06" on a Windows 7 box to investigate further. Note that the PoC written for this advisory is Windows-centric. Don't judge us. Additionally, to anyone who ever tries to install iMC in the future: the database has some very specific settings that have to be set, just 34 pages worth.

Exploit Vector: RCE through RMI Registry

iMC has two RMI registries: euplat and seplat. You can find their configuration files in C:\Program Files\iMC\euplat\conf and C:\Program Files\iMC\seplat\conf. By looking in their configuration files we can determine that seplat listens on TCP port 18888 and euplat lists on TCP port 21195. Why are we interested in RMI registries? RMI Registries communicate with clients by serialization. Therefore it’s a very good target for investigating deserialization vulnerabilities. The next question we need to address: can a remote attacker reach the RMI registry?


[email protected] /cygdrive/c/Program Files/iMC
$ netstat -ab | grep 18888
  TCP    0.0.0.0:18888          WIN-3QDBKNO2F6A:0      LISTENING
  TCP    [::]:18888             WIN-3QDBKNO2F6A:0      LISTENING

[email protected] /cygdrive/c/Program Files/iMC
$ netstat -ab | grep 21195
  TCP    0.0.0.0:21195          WIN-3QDBKNO2F6A:0      LISTENING
  TCP    [::]:21195             WIN-3QDBKNO2F6A:0      LISTENING

Yes, the registries appear to be bound to all interfaces. Additionally, HP documentation indicates that the port range used by euplat is for "IMC master and subordinate communication" (see "TCP usage" in the 7.2 (E0403) release notes)). This means that if a firewall is configured, it should allow for these communications. We also found documentation of HP showing their user configurations with the Windows firewall completely disabled (see figure 45 on page 26 of the "Deployment Migration to New Subordinate Server Configuration Examples" document).

Based on the above, we think it is fair to say we might be able to remotely connect to one of the RMI registries. Is the serialization communication exploitable? We need to look what libraries are available. We quickly can rule out seplat. It has few libraries available and none of use to us.

Euplat is a different story. It has a few of our favorite things:

  • Commons-Beanutils (RCE)
  • Commons-FileUpload (Remote file manipulation)
  • Jython (RCE)
  • JSON-lib (RCE)

Tenable created an proof of concept (exploit_euplatRMI.py), that can use any of the three RCE libraries (usage information is in the header). The remotely executed code is run as Administrator on Windows systems. It was shared with ZDI, not you.

Solution

HPE has released HP Intelligent Management Center Platform version 7.3 to address this issue. Please consult the vendor advisory for more details.

Disclosure Timeline

2016-08-05 - Issue discovered
2016-08-12 - Initial write-up
2016-08-15 - Submitted to ZDI for consideration, case bainesjr0011
2016-09-21 - Pinged ZDI for status
2016-09-21 - ZDI acks ping and indicates they will "nudge" this case.
2016-09-27 - ZDI offers $1k
2016-09-27 - Tenable accepts
2016-10-17 - Vulnerability reported to vendor by ZDI
2017-03-08 - HP releases advisory HPESBHF03713
2017-03-11 - ZDI releases advisory ZDI-17-162

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]