0X01:Hadoop介紹:
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
0X02:漏洞介紹:
Hadoop允許任意用戶訪問管理接口。
0X03:利用工具:
Netcat
EXP
0X04:攻擊過程:
訪問URL:http://10.63.254.99:8008/cluster出現hadoop未授權訪問頁面。
構造post請求,從返回信息中可以看出,存在此漏洞。
修改exp設置目標URL,設置本地IP,准備反彈shell。
調用 New Application API 創建 Application
調用 Submit Application API 提交
使用nc本地監聽8888端口,等待反彈shell。
運行修改exp,開始反彈。
成功獲取服務器權限,並且權限為root。
可執行任意系統命令。
0X05:修復建議:
1. 配置Service Level Authorization
修改
coresite.xml
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
hadoop.security.authorization=true則開啟ServiceLevel Authorization,若為false則不經過任何驗證,所有用戶擁有全部權限。(修改此配置需要重啟hadoop)每個可配置多個用戶,用戶之間用“,”分割;可配置多個用戶組,分組之間用“,”分割,用戶和分組之間用空格分割,如果只有分組,前面保留一個空格,如:
<property>
<name>security.job.submission.protocol.acl</name>
<value>alice,bobgroup1,group2</value>
</property>
默認情況下,屬性不對任何用戶和分組開放。
該配置文件可使用以下命令動態加載:
(1)更新namenode相關屬性:bin/hadoop dfsadmin –refreshServiceAcl
(2)更新jobtracker相關屬性:bin/hadoopmradmin –refreshServiceAcl