<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          記一次對某物聯(lián)網(wǎng)云平臺及Hadoop生態(tài)系統(tǒng)的滲透全過程

          共 4839字,需瀏覽 10分鐘

           ·

          2023-07-28 20:38

           Part1 前言 

          大家好,我是ABC_123。本期分享一個之前做過的針對某物聯(lián)網(wǎng)云平臺的滲透測試案例,包括了對Hadoop生態(tài)系統(tǒng)的內(nèi)網(wǎng)橫向過程,由于內(nèi)網(wǎng)很多都是Yarn、MapReduce、Spark、HDFS、Ambari、Hortonworks這些組件,平時很少遇到,由此開始了長達3個月的斷斷續(xù)續(xù)地一邊學習,一邊研究的歷程。

          在此期間,我基本上把網(wǎng)上公布的所有的Hadoop組件的漏洞都嘗試了一遍,在不懈的努力下,最后還是取得了很多成果。今天就重新復習總結(jié)一下之前所學到的知識。

          建議大家把公眾號“希潭實驗室”設(shè)為星標,否則可能就看不到啦!因為公眾號現(xiàn)在只對常讀和星標的公眾號才能展示大圖推送。操作方法:點擊右上角的【...】,然后點擊【設(shè)為星標】即可。


           Part2 前置知識 

          首先介紹一下Hadoop生態(tài)系統(tǒng),讓大家先入個門,否則后面的文章可能看不懂。


          Ambari:如果把Hadoop比作一個擁有多個建筑物和各種設(shè)施大型的科技園區(qū),包含了大量的服務(wù)器、存儲設(shè)備和數(shù)據(jù)處理組件,Ambari相當于園區(qū)的管理辦公室。它提供了一個集中化的界面和工具,用于管理和監(jiān)控 Hadoop 集群的各個方面,包括集群的配置和安裝,服務(wù)的監(jiān)控和資源使用,資源調(diào)度和分配,故障診斷和日志分析。

          YARN:YARN是Hadoop的資源管理器,負責底層的資源管理和任務(wù)調(diào)度;而Ambari是一個集群管理工具,用于配置、部署和監(jiān)控Hadoop集群及其相關(guān)服務(wù)。

          KDC秘鑰分發(fā)系統(tǒng):可以比喻為一個類似于門禁系統(tǒng)的組件,在進入Hadoop園區(qū)之前,到達門禁處,你提供身份信息通過身份驗證,門禁中心KDC會給你頒發(fā)一個訪問令牌TGT,允許你在Hadoop園區(qū)訪問各種設(shè)施和資源。在 Hadoop 集群中,KDC 充當門禁中心的角色,確保集群內(nèi)部的安全通信和資源訪問,類似于一個園區(qū)的門禁系統(tǒng)確保只有授權(quán)人員才能進入園區(qū)并訪問各種設(shè)施。

          HDFS:Hadoop Distributed File System,比作園區(qū)內(nèi)的數(shù)據(jù)存儲中心或數(shù)據(jù)倉庫。

          Spark:比作園區(qū)內(nèi)的高性能計算中心或超級計算機。

          MapReduce:將數(shù)據(jù)處理任務(wù)切分為多個并行執(zhí)行的子任務(wù),并將這些任務(wù)分配給集群中的不同節(jié)點進行計算。

          HDFS、HIVE、Hbase之間的關(guān)系如下:

          Pig、Impala、Shark組件關(guān)系如下:

          總結(jié)起來,Pig適用于靈活的數(shù)據(jù)加工和轉(zhuǎn)換;Impala專注于實時查詢和分析結(jié)構(gòu)化數(shù)據(jù);而Shark/Spark SQL則結(jié)合了數(shù)據(jù)加工和實時查詢的能力,并具備更好的性能和交互性。

          MapReduce、Spark、Tez關(guān)系如下:

          MapReduce適用于離線批處理作業(yè);Spark提供了廣泛的數(shù)據(jù)處理功能和內(nèi)存計算能力;Tez通過DAG執(zhí)行模型和優(yōu)化策略提供更高效的作業(yè)執(zhí)行。它們各自在處理大規(guī)模數(shù)據(jù)時具有不同的特點和優(yōu)勢。


           Part3 復盤過程 

          首先放出一張ABC_123繪制的關(guān)于此次項目的流程圖,由于原圖丟失,下面這張圖是我“翻箱倒柜”找到的一張小圖,然后經(jīng)過AI圖片處理軟件放大后的,基本上只能處理到這個清晰程度了,后續(xù)有精力再重新畫一張,接下來就把此次滲透工作的關(guān)鍵步驟給大家講一講。


          這個圖是上圖的縮小版,不同的顏色代表不同的組件,這兩個圖都是用國外的maltego(情報分析)工具做的,一邊滲透一邊記錄,但是現(xiàn)在這款工具基本上不用了。


          • 外網(wǎng)打點過程

          由于平時很少遇到對物聯(lián)網(wǎng)云平臺及Hadoop生態(tài)系統(tǒng)的滲透工作,很多系統(tǒng)都是第一次見到,外網(wǎng)資產(chǎn)非常少,所以外網(wǎng)打點過程異常艱難,最終在前兩周,打了2個入口點。


           1   Zeppelin后臺反彈shell

          Zeppelin是一個開源的數(shù)據(jù)分析和可視化平臺,提供了一個交互式環(huán)境,讓用戶可以使用多種編程語言進行數(shù)據(jù)分析和處理,同時也提供了豐富的數(shù)據(jù)可視化功能,本次項目中,它與Hadoop生態(tài)系統(tǒng)的許多組件進行集成和使用。

          首先通過github搜索該網(wǎng)站的各種子域名的源代碼,無意中找到了一處java代碼,直接寫出了明文的Zeppelin用戶名及密碼(下圖是效果圖,非原圖)。


          接下來使用該用戶名密碼直接登錄了Zeppelin的后臺。


          網(wǎng)上有很多的Zeppelin的后臺執(zhí)行系統(tǒng)命令的方法,一般執(zhí)行命令的點都在如下圖位置,但是我記得在本次滲透實戰(zhàn)中,網(wǎng)上的各種方法都不好用。于是我看了Zeppelin的使用說明書,看了一天多,找到了另一處可以執(zhí)行任意cmd命令代碼的位置,這里暫時不提供,大家可以自己嘗試看看。


          這樣就通過Zepplin后臺執(zhí)行命令,直接反彈了一個Linux的shell,并注入Socks5代理程序。


           2   物聯(lián)網(wǎng)云平臺部署Docker存在網(wǎng)絡(luò)隔離問題

          這是在外網(wǎng)的另一個入口,普通用戶都可以注冊賬號,登錄后臺之后可以部署Docker,用戶可以自由選擇Nginx、Httpd、Mysql、Nodejs等docker環(huán)境。于是我萌生了一個想法,docker的網(wǎng)絡(luò)隔離會不會有問題呢?于是我挨個部署各種docker,均沒有安全問題,在我即將放棄的時候,部署了nodejs的應(yīng)用,在該應(yīng)用的管理界面可執(zhí)行cmd命令(以下是效果圖,非原圖)。


          如下圖所示,部署的docker應(yīng)用,存在cmd命令操作接口,可以直接執(zhí)行命令,并且?guī)в谢仫@,而且此docker可以連接外網(wǎng),后續(xù)的滲透發(fā)現(xiàn),該docker居然可以直接連通hadoop生態(tài)系統(tǒng)的一些組件,比如訪問存在未授權(quán)訪問的hadoop,訪問Spark系統(tǒng),訪問zabbix等。


          • 權(quán)限維持問題

          這里面有個關(guān)鍵點,權(quán)限維持3個月是怎么做到的,大致做法如下:

          1.  Zeppelin應(yīng)用由于是非docker環(huán)境,反彈的Socks5代理比較穩(wěn)定,主要應(yīng)對一些流量比較大的操作及耗費系統(tǒng)性能的內(nèi)網(wǎng)漏洞掃描工作。

          2.  docker的socks5代理,主要用來做權(quán)限維持的備用方案。這個docker容器非常不穩(wěn)定,代理流量一大就會斷掉,一旦運行多線程掃描工具就會卡死。于是我申請了多個賬號,在后臺應(yīng)用部署了多個docker應(yīng)用,每個docker都做了一個socks5代理,并用了不同的socks5代理IP。

          3.  docker的socks5代理結(jié)合內(nèi)網(wǎng)的zabbix權(quán)限。后續(xù)管理員經(jīng)常會關(guān)停Zeppelin系統(tǒng),好在內(nèi)網(wǎng)的zabbix是有漏洞的,首先通過docker的socks5代理訪問內(nèi)網(wǎng),然后在內(nèi)網(wǎng)zabbix上運行掃描工具。一旦這個入口被關(guān)閉,我就有了備選方案。

          歸納總結(jié)留了多個socks5代理入口,用了不同的代理ip地址,然后全程基本上只用其中的一兩個入口,保留一到兩個從未使用的入口。


          • Hadoop生態(tài)系統(tǒng)的內(nèi)網(wǎng)橫向

           1   Ambari管理員權(quán)限

          這個系統(tǒng)的管理員密碼最終被猜解到,比如說網(wǎng)站是www.xxx.com,Ambari的弱口令就是xxx@2022,也就是域名+@+年份組合。


           2   KDC密鑰分發(fā)系統(tǒng)漏洞

          這個系統(tǒng)是在項目進行2個多月的時候拿下的,當時我?guī)缀醢阉蓄愋偷膆adoop組件都看過一遍了,就剩下最重要的KDC秘鑰分發(fā)系統(tǒng)的3個IP沒看,起初我認為這個KDC秘鑰分發(fā)系統(tǒng)是不太可能有重要漏洞的,結(jié)果大跌眼鏡,沒想到還真有重大收獲。

          對這3個IP全端口掃描之后,發(fā)現(xiàn)開放了389端口,猜想這是KDC秘鑰分發(fā)系統(tǒng)的LDAP服務(wù),用一個ldap連接工具嘗試鏈接,起初是為了查詢ldap服務(wù)的域名的,結(jié)果居然連上LDAP數(shù)據(jù)庫了!當時記得特別清楚,還以為自己看花眼了,LDAP服務(wù)居然開放了匿名登錄,這真是一個嚴重的漏洞。

          于是接下來看了另外兩個KDC系統(tǒng)的LDAP服務(wù),有一個可以匿名登錄,另一個不可以。最后在ldap服務(wù)里面翻了很長時間,基本上整個hadoop生態(tài)的各種密碼都存放在里面,其中Spark系統(tǒng)的密碼是明文的,有的組件好像是加密的,具體情況記不清了(以下截圖為虛擬機測試環(huán)境截圖)


          最終這個ldap匿名登錄問題,導致了整個Hadoop生態(tài)系統(tǒng)的淪陷,是在內(nèi)網(wǎng)中發(fā)現(xiàn)的最嚴重的安全問題。而且Spark系統(tǒng)的管理員密碼,基本上是通用的,很多外網(wǎng)的系統(tǒng)都可以用這個賬號密碼進行登錄。


          • 外網(wǎng)應(yīng)用的MQTT協(xié)議安全問題

          MQTT(Message Queuing Telemetry Transport)是一種輕量級的通信協(xié)議,主要用于在物聯(lián)網(wǎng)設(shè)備、傳感器和應(yīng)用程序之間進行實時消息傳遞,具體看下圖解釋。


          如下圖所示,利用上述獲取到的Spark管理員的密碼,可以登陸外網(wǎng)的一個Web應(yīng)用系統(tǒng),登錄后臺之后,發(fā)現(xiàn)了類似于如下圖的功能,右鍵F12可以看到明文密碼(以下是效果圖,非原圖)。


          最終組合得到一個MQTT協(xié)議的連接字符串:mqtt://uusfwefwfewf:[email protected]:8083/mqtt,接下來我就犯了難,怎么去使用它呢?查閱大量的資料,發(fā)現(xiàn)有一款工具HiveMQ可以操作,如下圖所示,提示“connected”連接成功。


          這里面存在的安全問題就是,mqtt的連接地址允許任意IP地址登錄,沒有做可信登錄,導致任意攻擊者可以針對物聯(lián)網(wǎng)設(shè)備進行操控。


          • 其它漏洞匯總

          這些漏洞的利用過程就不過多介紹了,相信大家都耳熟能詳。外網(wǎng)有一個mysql延遲注入漏洞,還有幾個越權(quán)漏洞、邏輯漏洞;內(nèi)網(wǎng)包括以下漏洞:zookeeper未授權(quán)訪問漏洞、zabbix組件反彈shell漏洞、Spark系統(tǒng)代碼執(zhí)行漏洞、各種Hadoop未授權(quán)訪問漏洞,有的可以直接下載日志文件、內(nèi)網(wǎng)memchached未授權(quán)訪問漏洞等等。


          這里主要提到一點,針對Spark系統(tǒng)代碼執(zhí)行漏洞的利用,需要加載一個jar包,該漏洞的jar包編譯最好在jdk1.6版本下,兼容性比較好,然后注意查看Spark系統(tǒng)的版本,選擇相應(yīng)的exp。


           Part4 總結(jié) 

          1.  Github源碼泄露成了最重要的外網(wǎng)打點的突破口。

          2. Docker容器的網(wǎng)絡(luò)隔離沒有做好,導致越權(quán)訪問Hadoop集群的一些重要組件,造成大量日志文件泄露。

          3. 內(nèi)網(wǎng)最核心的KDC密鑰分發(fā)系統(tǒng)的ldap服務(wù)允許匿名登錄,造成了整個Hadoop生態(tài)系統(tǒng)的淪陷。

          4. MQTT協(xié)議未設(shè)置白名單IP限制使用,也導致重要的安全問題。

          5. 多留幾個入口并借助正常的應(yīng)用功能留后門,是權(quán)限維持的好辦法。


          公眾號專注于網(wǎng)絡(luò)安全技術(shù)分享,包括APT事件分析、紅隊攻防、藍隊分析、滲透測試、代碼審計等,每周一篇,99%原創(chuàng),敬請關(guān)注。

          Contact me: 0day123abc#gmail.com(replace # with @)


          瀏覽 319
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费一级a毛片在线播放直播 | 成人午夜天天爽 | 黄色一级A片不卡 | 一级无线免费视频 | av夜夜撸 |