滲透測試-Tomcat(CVE-2020-1938)漏洞復現

漏洞介紹

Java 是目前 Web 開發中最主流的編程語言,而 Tomcat 是當前最流行的 Java 中間件服務器之一,從初版發佈到現在已經有二十多年曆史,在世界範圍內廣泛使用。

2020年2月20日,國家信息安全漏洞共享平臺(CNVD)發佈了Apache Tomcat 文件包含漏洞(CNVD-2020-10487 / CVE-2020-1938)。該漏洞的危害等級:。目前廠商已發佈新版本完成漏洞的修復。

漏洞簡介

CVE-2020-1938 漏洞是由長亭科技安全研究員發現的存在於 Tomcat 中的安全漏洞。Tomcat 服務器作一個免費的開放源代碼的Web 應用服務器,其安裝後會默認開啓ajp連接器,方便與其他web服務器通過ajp協議進行交互。

但由於 Tomcat AJP 協議設計上存在缺陷,攻擊者通過 Tomcat AJP Connector 可以讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,例如可以讀取 webapp 配置文件或源代碼。此外在目標應用有文件上傳功能的情況下,配合文件包含的利用還可以達到遠程代碼執行的危害。

該漏洞詳細的原理分析可參見:【WEB安全】Tomcat-Ajp協議漏洞分析

受影響版本

  • Apache Tomcat 6
  • Apache Tomcat 7 < 7.0.100
  • Apache Tomcat 8 < 8.5.51
  • Apache Tomcat 9 < 9.0.31

不受影響版本

  • Apache Tomcat = 7.0.100
  • Apache Tomcat = 8.5.51
  • Apache Tomcat = 9.0.31

因爲本次漏洞影響範圍比較大,所以這個漏洞在發佈的初期,各大SRC漏洞平臺上都刷瘋了。在滲透測試過程中,如果發現目標網站的 Tomcat 版本號在受影響的版本範圍內,可對其進行漏洞的驗證測試。

漏洞復現

看網上好多博主復現該漏洞的方式是:虛擬機直接下載 Tomcat 存在漏洞的版本(如Tomcat-8.5.32)的 Docker 鏡像,直接運行後便可執行 POC 腳本進行攻擊,但我在復現的時候發現運行容器啓動 Tomcat 服務後,8009 端口並未如博主們所述的那樣處於開放狀態(具體原因不詳,知情大佬請留言賜教……),無法成功進行攻擊。

但我發現在最新下載的 Vulhub 漏洞環境中發現已經集成了該漏洞(只是 Vulhub 官網的復現文檔尚未同步),故下文基於 Vulhub 漏洞環境進行漏洞復現。
在這裏插入圖片描述實驗環境:

主機 作用 IP地址
Ubuntu 虛擬機 基於 Vulhub 漏洞環境搭建 Tomcat-9.0.30 靶場 172.31.1.135
Kali Liunx 虛擬機 使用 Nmap、POC腳本對靶機實施探測、攻擊 172.31.3.198

1、在 Ubuntu 虛擬機對應的漏洞環境路徑下開啓終端,執行如下命令運行靶場環境:
在這裏插入圖片描述
2、可以看到 Vulub 爲我們自動搭建並啓動了基於 Tomcat-9.0.30 的靶場環境:
在這裏插入圖片描述
3、局域網內的 Kali 虛擬機可成功進行訪問:
在這裏插入圖片描述
4、使用 Nmap 對靶機進行端口掃描,查看8009端口是否處於開放狀態:
在這裏插入圖片描述
5、在 Kali 中從 Github 克隆 POC 腳本 到本地:
在這裏插入圖片描述6、嘗試讀取靶機上 Tomcat 服務器的/usr/local/tomcat/webapps/ROOT/WEB-INF文件:
在這裏插入圖片描述7、返回 Ubuntu 虛擬機,進入 Docker 容器,查看相應的文件是否與 Kali 攻擊機獲取到的一致:
在這裏插入圖片描述
至此,我們已成功復現 CVE-2020-1938 漏洞,利用文件包含漏洞進階獲得 RCE 的攻擊方式可參考文章:CVE-2020-1938 幽靈貓漏洞RCE

修復方案

  1. 臨時禁用AJP協議8009端口,在conf/server.xml配置文件中註釋掉<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />
  2. 配置ajp配置中的secretRequired跟secret屬性來限制認證;
  3. 官方下載最新版下載地址:
    https://tomcat.apache.org/download-70.cgi
    https://tomcat.apache.org/download-80.cgi
    https://tomcat.apache.org/download-90.cgi

或Github下載:https://github.com/apache/tomcat/releases。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章