JetBrains TeamCity 是JetBrains開發的一款持續集成工具。在2020年1月9號公開了2018.2.4版本一個RCE漏洞的POC。CVE編號為CVE-2019-15039,根據POC分析出漏洞原理是teamcity 的rmi遠程對象可從smb服務器或者本地路徑訪問maven項目的pom.xml文件,採用mvn的exec:exec參數進行代碼執行。
一 原理分析
1、環境搭建
Smb服務器 \\\\192.168.105.135\\share\\pom.xml
目標機 192.168.105.140
Nmap掃描結果
可以看到54470端口的rmi服務綁定了teamcity-mavenServer對象
2、漏洞復現
從teamcity安裝目錄下引入需要的jar包
發送payload
通過wireshark抓包可以看到服務器已經向我們含有惡意pom.xml文件的smb服務器發送請求,然後讀取到本地,執行mvn 命令完成導入maven倉庫的任務。不過pom.xml文件是我們惡意構造的,所以是可以通過mvn exec:exec命令實現任意代碼執行
在任務管理器中可以看到起了一個system權限的calc進程,代表服務器已經成功執行了我們的命令
3、poc分析
進入execute方法
可以看到這裡利用反射獲得了maven類的doExecute方法,然後對方法進行了invoke,這裡就傳入了MavenExecutionRequest對象,其中的file就是我們的惡意pom.xml文件,goals就是maven的 exec:exec參數
繼續跟進doExecute方法
169行對request進行處理
這裡就是從smb服務器獲取pom.xml的代碼,後面再對pom.xml文件進行解析,然後執行部署,漏洞也就發生在部署中,maven可以通過exec:exec實現執行命令。
二 總結
漏洞成因是teamcity將一個存在危險行為的對象綁定在了rmi端口,以至於攻擊者可以使用該對象對服務器發起攻擊。同時也知道了maven項目中pom.xml文件可控是可能導致代碼執行的。
三 修復意見
更新官方補丁或阻止匿名ip請求rmi端口。
參考地址:https://cxsecurity.com/issue/WLB-2020010067
本文僅限技術研究與討論,嚴禁用於非法用途。由於傳播、利用此文所提供的信息而造成的任何直接或者間接的後果及損失,均由使用者本人負責,安恆信息以及文章作者不為此承擔任何責任。安恆信息擁有對此文章的修改和解釋權,未經允許不得修改、增減內容,不得以任何方式將其用於商業目的。
-
“智慧城市”正在崛起 網安威脅也隨之而來!
新型惡意軟件JhoneRAT現身 頻繁針對中東地區
FBI要求蘋果解鎖槍擊案嫌疑人手機 特朗普呼籲蘋果應配合調查
西澳大利亞州P&N銀行發生數據洩露 用戶信息被暴露
Facebook頁面中發現嚴重漏洞 可暴露網頁賬戶信息
閱讀更多 E安全 的文章