Hadoop Yarn RPC RCE 复现

2021-12-02 08:18:32 浏览数 (1)

Hadoop作为一个分布式计算应用框架,种类功能繁多,而Hadoop Yarn作为其核心组件之一,负责将资源分配至各个集群中运行各种应用程序,并调度不同集群节点上的任务执行。Hadoop Yarn RPC未授权访问使得攻击者无需认证即可通过RPC通信执行恶意命令。Hadoop Yarn RPC未授权访问漏洞存在于Hadoop Yarn中负责资源管理和任务调度的ResourceManager,成因是该组件为用户提供的RPC服务默认情况下无需认证即可访问。

下载环境地址:

https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

代码语言:javascript复制
tar-zxvf hadoop-3.3.0.tar.gz

配置java-home

代码语言:javascript复制
vi etc/hadoop/hadoop-env.sh

// 修改为

代码语言:javascript复制
export JAVA_HOME=/usr/local/jvm/java

设置主机允许无密码SSH链接

代码语言:javascript复制
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa       // 创建公钥私钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //
chmod 0600 ~/.ssh/authorized_keys // 设置权限,owner有读写权限,group和other无权限

运行环境

sbin/start-all.sh

找到启动的端口,本次实验环境是8042端口

漏洞复现

代码语言:javascript复制
java -jar YarnRpcUnauth.jar ip:port cmd

local logs可以查看到日志

https://github.com/0x0021h/expbox/blob/main/Hadoop Yarn RPC RCE.md

https://github.com/cckuailong/YarnRpcRCE/releases/download/0.0.1/YarnRpcUnauth.jar

修复建议

1. 建议启用Kerberos认证功能,以阻止未经授权的访问。

2. 如非必要,建议禁止外部地址访问Hadoop RPC服务相关端口;或配置为仅对可信地址开放。

参考链接

https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SecureMode.html#Configuration

0 人点赞