利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

下面講述了作者在參與美國國防部(dod) hack the pentagon 漏洞眾測項目中,利用jira漏洞cve-2017-9506構造了ssrf攻擊面,實現了對美軍非保密因特網協議路由器網(niprnet)的訪問,并且結合其它漏洞技巧,獲取到dod內網系統的一系列敏感信息。由于測試過程和內容的涉密性,該篇文章僅點到為止,未對過多技術細節和詳細場景作出披露,僅當學習分享,還望讀者多多包涵。

JIRA 是澳大利亞 Atlassian 公司開發的一款優秀的問題跟蹤管理軟件工具,可以對各種類型的問題進行跟蹤管理,包括缺陷、任務、需求、改進等。很多知名公司和開源軟件組織都在使用 JIRA,因其采用J2EE技術,并能夠進行跨平臺部署。

從頭說來 – 發現DoD的JIRA應用網站

在參與美國國防部(DoD)的漏洞眾測項目時,我發現其中有兩個特別的網站部署了項目跟蹤管理工具JIRA,經過初略分析后,我認為不存在可利用的漏洞,所以就直接沒繼續深挖了。

后來,我從Twitter中發現了一條利用JIRA漏洞實現SSRF攻擊的發貼:

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

它的意思是這樣的:

小心了,JIRA用戶!攻擊者可以利用JIRA漏洞CVE-2017-9506竊取你的內網數據。這是一種開放重定向漏洞,但在某些情況下,它可被利用重定向到內部JIRA系統的本地鏈接地址中,從而導致如AWS密鑰等某些內部資源信息泄露。

JIRA漏洞CVE-2017-9506說明

荷蘭安全研究機構Dontpanic給出了CVE-2017-9506大概的漏洞原因:JIRA包含的認證授權插件Atlassian OAuth plugin中存在一個名為 IconUriServlet 的組件,它用于接收客戶端中附帶參數值consumerUri的GET請求,但IconUriServlet 組件也能用于創建由服務端執行的另外一種HTTP GET請求,這種由JIRA作為間接代理發起的請求,由服務端響應后再經JIRA返回給客戶端,該過程中通過構造請求,可導致服務端內部信息泄露在響應內容中返回給客戶端。

Dontpanic給出的漏洞驗證方法:

https://%basepath%/plugins/servlet/oauth/users/icon-uri?consumerUri=https://google.com

把basepath換成JIRA系統網站鏈接,訪問上述頁面之后,如果正常出現google.com頁面,則證明JIRA系統存在該漏洞;如果訪問出現404頁面,則漏洞不存在。請注意,在consumerUri的末尾添加要測試的網站的請求!!!

測試DoD的JIRA應用網站漏洞

仔細閱讀了CVE-2017-9506的說明之后,我如獲至寶,趕緊轉向之前發現的兩個國防部網站上,急切想驗證一下這種漏洞利用技術的可行性。我測試了其中一個網站后發現,居然可以成功跳轉到Google頁面,這說明該網站一定存在漏洞!

https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri=http://google.com

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

根據AWS規定,任何實例都可通過請求AWS設定的元數據地址169.254.169.254,來檢索自身實例元數據示例(相關方法可參考AWS官方說明),為此我構造了以下鏈接發起請求:

https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri=http://169.254.169.254/latest/meta-data/local-hostname/

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

竟然能看到內部主機名!好吧,那我來試試能否獲取AWS密鑰呢:

https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri=http://169.254.169.254/latest/meta-data/iam/security-credential

但好像不行。經過仔細閱讀AWS官方文檔后,我重新使用了以下鏈接來獲取實例ID、私有IP地址等信息:

https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri=http://169.254.169.254/latest/dynamic/instance-identity/document

很好,竟然都能成功響應獲取到!

到了這一步,我想應該能說明問題了,于是沒再深入測試就簡單寫了份漏洞報告進行提交,但之后,DoD的項目分類人員把該漏洞定級為中危漏洞,但我認為這絕對是一個嚴重的高危漏洞。我與國防部進行了交流后,申請了深入測試的授權,以便測試該漏洞的最終影響。

深入測試 – 實現對非保密因特網協議路由器網(NIPRnet)的訪問和其它敏感信息獲取

前期偵察發現

首先,我從基本的端口探測開始,發現目標系統開啟了21、22、80、443、8080端口,有了這些端口信息之后,我就能測試各種錯誤信息的返回,通過這些信息判斷目標系統中的服務器和網絡部署情況,如下對目標系統8080端口發起請求后的響應信息:

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

其次,我又對gopher文件目錄查看協議、DICT字典服務器協議、FTP協議、LDAP輕量級目錄訪問協議等其它協議作了一遍請求測試。如系統返回了以下不支持LDAP的響應:

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

綜合利用發現

在記錄下這些信息時,我又想到了PortSwigger首席研究員James Kettle的在USA 2017黑帽大會的研究分享《Cracking the Lens: Targeting HTTP’s Hidden Attack-Surface》,James Kettle通過構造惡意的HTTP請求和Header頭信息,側面勾勒出目標系統中HTTP服務的隱藏攻擊面,最終,他利用了這種技術,‘偽裝’成美國國防部內部IP身份,成功入侵訪問到了DoD受限的內部網絡系統和相關資源。我記得在Kettle的分享中,他還展示了兩個他曾用來作入侵測試的DoD內部網站:(網站信息出處defensivecarry.com)

https://safe.amrdec.army.mil/safe/

https://dots.dodiis.mil/

結合這兩個James Kettle提到過的DoD內部網站,用我發現的DoD的兩個JIRA網站來向它們發起請求,目的就是測試能否以這種途徑實現對James Kettle提到的兩個DoD內部網站的訪問。最終,我用其中一個JIRA網站向James Kettle提到的兩個DoD內部網站發起請求后,其中一個顯示請求超時:

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

另一個返回了US Goverment(USG)的政府警告信息,如下:

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

在此測試過程中,我還發現了其它的DoD內部web服務,通過該內部web服務,我竟然能成功訪問到美軍的非保密協議路由網(NIPRnet),該網絡系統被DoD內部用來處理比機密級較低的敏感級信息。由于保密性原則,在此我就不詳細披露具體方法和途徑。

通過響應內容判斷獲取內部敏感信息

我用第二個JIRA網站向James Kettle提到的兩個DoD內部網站發起請求后,返回的響應信息基本沒什么可用之處。

經過測試,最終我發現可以根據響應時間來評估DoD內部系統端口的開放情況。就比如,當向內部系統請求22端口時候,其響應用時1000毫秒,而請求21端口時響應用時將近10000毫秒,從這種時間差上可對一些端口情況作出猜測判斷。另外,由于缺少詳細的錯誤信息響應返回,我無法對系統中的具體協議作出判斷,但我要著重強調本文的重點是:通過該內部的web服務端,我可以訪問到DoD的非保密協議路由網(NIPRnet)!我還使用了Burp的Collaborator插件探測了對該web服務端請求發起后,服務端和請求端數據交換時存在的信息泄露情況。

比如從請求頭中的’X-Forwarded-For’可以獲取到內部IP,我用Burp的Collaborator插件查詢了所有可交互的內部IP,雖然最終能查詢到內部IP和相關的網絡服務信息,但卻不能在該web服務端上實現AWS元數據檢索。

最終,我向DoD提交了涉及的兩個漏洞之后,兩個漏洞都被評級為高危(Critical),由此,我聯想到我今年年初向DoD上報的兩個SSRF漏洞,想看看上述漏洞能否用這種SSRF方式有所深入利用。

JIRA SSRF的深入利用

我年初上報的兩個SSRF漏洞是,用某個web應用過濾器可以對特定的IP地址發起HTTP連接請求,例如能以提交CONNECT IP 請求方式,枚舉出目標系統內的應用服務;另外也能通過更改主機頭信息對目標系統內部IP或外部IP發起經過驗證的請求信息,如militarywebsite.mil@internal_IP。當我在這兩個JIRA網站上用這種SSRF方式進行測試時發現,之前提示超時、SSL錯誤和其它響應的請求環境中,竟然也能用Blind SSRF方法實現對內部IP和網絡服務進行枚舉探測。所以,這個點上的SSRF漏洞利用最終也被DoD評級為中危。

JIRA SSRF漏洞利用的其它技巧

在我對以上漏洞的綜合測試過程中,我發現在某些情況下,會莫名其妙地發生堆棧錯誤并泄露各種敏感信息,比如,用不完整的HTTP頭信息http://或http://[::],這種堆棧錯誤時泄露的敏感信息包括數據庫IP、數據庫版本、應用插件、操作系統架構和其它系統:

利用JIRA漏洞訪問美軍非保密因特網協議路由器網的示例分析

發生堆棧錯誤時,仍然可以繼續對目標網站進行深入的信息獲取利用,比如,我發現有時候目標網站會指向其它Altassian實例,如某次測試中,我發現目標站點某子域名中部署有Altassian的confluence實例,經過測試證明,這些實例同樣會受到信息泄露漏洞的影響。

總結梳理

作者描述了參與美國國防部漏洞眾測項目時發現的JIRA漏洞,并概要性地介紹了整個漏洞利用的測試過程,我們一起來梳理下:

1 其中兩個部署有JIRA實例的DoD網站存在授權插件漏洞CVE-2017-9506,攻擊者利用該漏洞可獲取目標網站系統內部資源信息,并能形成SSRF攻擊面;

2 結合CVE-2017-9506利用方法,我從存在漏洞的DoD網站中獲取到了JIRA實例 ID、私有IP地址、一系列錯誤響應等信息;

3 綜合PortSwigger首席研究員James Kettle分享提到的兩個DoD網站,利用CVE-2017-9506請求方法,發現請求的DoD網站返回了有效USG(政府警告)信息;

4 在第3步過程中,我通過發現的某個內部web服務,結合CVE-2017-9506利用方法,實現了對DoD非保密協議路由網(NIPRnet)的訪問;

5 結合CVE-2017-9506利用方法,在存在漏洞的DoD網站上復現了SSRF攻擊,實現了內部IP和網絡服務枚舉,以及后續堆棧錯誤時的敏感信息獲取。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享