Hadoop是一個由Apache基金會所開發的分布式系統基礎架構,由於服務器直接在開放了 Hadoop 機器 HDFS 的 50070 web 端口及部分默認服務端口,黑客可以通過命令行操作多個目錄下的數據,如進行刪除,下載,目錄瀏覽甚至命令執行等操作。在默認情況下,Hadoop允許任意用戶訪問管理接口。
環境搭建
cd /vulhub/hadoop/unauthorized-yarn
docker-compose up -d
環境啟動后,訪問http://your-ip:8088即可看到Hadoop YARN ResourceManager WebUI頁面。
http://IP:8088/cluster
利用過程
通過REST API命令執行
利用過程:
在本地監聽端口 > 創建Application > 調用Submit Application API提交
- 本機監聽 nc -lvvp 9999
- 通過腳本反彈
解決方法
1. 配置Service Level Authorization
修改core-site.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
2、如無必要, 關閉 Hadoop Web 管理⻚面。
3、開啟身份驗證 ,防止未經授權用戶訪問。
設置“安全組”訪問控制策略,將 Hadoop 默認開放的多個端口對公網全部禁止或限制可信任的 IP 地址才能訪問包括 50070 以及 WebUI 等相關端口。