云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露

这篇具有很好参考价值的文章主要介绍了云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全

云原生-K8s安全-etcd未授权访问

如上图所示:etcd服务是运行在master节点上的,master节点上查看该服务默认通过证书认证,主要存放节点的数据,如一些token和证书。
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全当然,初始安全情况下,该服务是安全的(2379不对外开放,本地可访问),下面三种主要是配置问题

三种攻击2379端口方式

配置文件:/etc/kubernetes/manifests/etcd.yaml

云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全注释掉或者改为false,重启k8s服务

systemctl restart kubelet.service 

V2版本利用:
直接访问http://ip:2379/v2/keys/?recursive=true ,
可以看到所有的key-value值。(secrets token)
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全如图表示对方api版本是V3版本,目前V2版本已经很少见了
使用etcd-v3.4.27工具进行连接利用

第一种:没有配置指定–client-cert-auth 参数打开证书校验,暴露在外Etcd服务存在未授权访问风险。
-暴露外部可以访问,直接未授权访问获取secrets和token利用
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全直接使用工具进行连接报错,因为从上方web访问可以看出是需要https证书
复现搭建:
https://www.cnblogs.com/qtzd/p/k8s_etcd.html
安装etcdctl:
https://github.com/etcd-io/etcd/releases
安装kubectl:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全
第二种:在打开证书校验选项后,通过本地127.0.0.1:2379可免认证访问Etcd服务,但通过其他地址访问要携带cert进行认证访问,一般配合ssrf或其他利用,较为鸡肋。
-只能本地访问,直接未授权访问获取secrets和token利用

第三种:实战中在安装k8s默认的配置2379只会监听本地,如果访问没设置0.0.0.0暴露,那么也就意味着最多就是本地访问,不能公网访问,只能配合ssrf或其他。
-只能本地访问,利用ssrf或其他进行获取secrets和token利用

*复现利用:
*暴露etcd未授权->获取secrets&token->通过token访问API-Server接管
*SSRF解决限制访问->获取secrets&token->通过token访问API-Server接管
*V2/V3版本利用参考:https://www.cnblogs.com/qtzd/p/k8s_etcd.html

利用参考:
https://www.wangan.com/p/7fy7f81f02d9563a
https://www.cnblogs.com/qtzd/p/k8s_etcd.html

V3版本利用:
1、连接提交测试

./etcdctl --endpoints=192.168.139.136:23791 get / --prefix
./etcdctl --endpoints=192.168.139.136:23791 put /testdir/testkey1 “Hello world1”
./etcdctl --endpoints=192.168.139.136:23791 put /testdir/testkey2 “Hello world2”
./etcdctl --endpoints=192.168.139.136:23791 put /testdir/testkey3 “Hello world3”

2、获取k8s的secrets:

./etcdctl --endpoints=192.168.139.136:23791 get / --prefix --keys-only | grep /secrets/

3、读取service account token:

./etcdctl --endpoints=192.168.139.136:23791 get / --prefix --keys-only | grep /secrets/kube-system/clusterrole
./etcdctl --endpoints=192.168.139.136:23791 get /registry/secrets/kube-system/clusterrole-aggregation-controller-token-jdp5z

4、通过token访问API-Server,获取集群的权限:

kubectl --insecure-skip-tls-verify -s https://127.0.0.1:6443/ --token=“ey…” -n kube-system get pods

云原生-K8s安全-Dashboard未授权访问

默认端口:8001
配置不当导致dashboard未授权访问,通过dashboard我们可以控制整个集群。
kubernetes dashboard的未授权其实分两种情况:
一种是在本身就存在着不需要登录的http接口,但接口本身并不会暴露出来,如接口被暴露在外,就会导致dashboard未授权。另外一种情况则是开发嫌登录麻烦,修改了配置文件,使得安全接口https的dashboard页面可以跳过登录。

*复现利用:
*用户开启enable-skip-login时可以在登录界面点击跳过登录进dashboard
*Kubernetes-dashboard绑定cluster-admin(拥有管理集群的最高权限)
1、安装:https://blog.csdn.net/justlpf/article/details/130718774
2、启动:kubectl create -f recommended.yaml
3、卸载:kubectl delete -f recommended.yaml
4、查看:kubectl get pod,svc -n kubernetes-dashboard
5、利用:新增Pod后续同前面利用一致
搭建环境太麻烦了
正常情况下Dashboard如图:
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全有漏洞的情况下:(没搭建出来……)
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全
点击跳过直接进入控制面板
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全利用流程:找到暴露面板->dashboard跳过-创建或上传pod->进入pod执行-利用挂载逃逸

云原生-K8s安全-Configfile鉴权文件泄漏

攻击者通过Webshell、Github等拿到了K8s配置的Config文件,操作集群,从而接管所有容器。K8s configfile作为K8s集群的管理凭证,其中包含有关K8s集群的详细信息(API Server、登录凭证)。如果攻击者能够访问到此文件(如办公网员工机器入侵、泄露到Github的代码等),就可以直接通过API Server接管K8s集群,带来风险隐患。用户凭证保存在kubeconfig文件中,通过以下顺序来找到kubeconfig文件:
-如果提供了–kubeconfig参数,就使用提供的kubeconfig文件
-如果没有提供–kubeconfig参数,但设置了环境变量$KUBECONFIG,则使用该环境变量提供的kubeconfig文件
-如果以上两种情况都没有,kubectl就使用默认的kubeconfig文件~/.kube/config

*复现利用:
*K8s-configfile->创建Pod/挂载主机路径->Kubectl进入容器->利用挂载逃逸
1、将获取到的config复制
2、安装kubectl使用config连接
安装:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux
连接:kubectl -s https://192.168.139.130:6443/ --kubeconfig=config --insecure-skip-tls-verify=true get nodes
3、上传利用test.yaml创建pod

kubectl apply -f test.yaml -n default --kubeconfig=config

4、连接pod后进行容器挂载逃逸

kubectl exec -it xiaodisec bash -n default --kubeconfig=config 
cd /mnt
chroot . bash

云原生-K8s安全-Kubectl Proxy不安全配置

当运维人员需要某个环境暴露端口或者IP时,会用到Kubectl Proxy
使用kubectl proxy命令就可以使API server监听在本地的xxxx端口上
环境搭建:

kubectl --insecure-skip-tls-verify proxy --accept-hosts=^.*$ --address=0.0.0.0 --port=8009

*复现利用:
*类似某个不需认证的服务应用只能本地访问被代理出去后形成了外部攻击入口点。
*找到暴露入口点,根据类型选择合适方案

kubectl -s http://10.10.10.167:8009 get pods -n kube-system

云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露,Cyber-Security,云原生,kubernetes,安全文章来源地址https://www.toymoban.com/news/detail-721647.html

到了这里,关于云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生Kubernetes:K8S安全机制

    目录 一、理论 1.K8S安全机制 2.Authentication认证 3.Authorization授权 4.Admission Control准入控制 5.User访问案例 6.ServiceAccount访问案例 二、实验 1.Admission Control准入控制 2.User访问案例 3.ServiceAccount访问案例 三、问题 1.生成资源报错 2.镜像拉取失败 四、总结 (1)概念 Kubernetes 作为一个分

    2024年02月07日
    浏览(24)
  • 云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载

    Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。 Docker 容器与虚拟机类似,但二者在原理上不同,容器是将

    2024年02月07日
    浏览(36)
  • 云上攻防-云原生篇&Docker安全&系统内核&版本漏洞&CDK自动利用&容器逃逸

    细节部分在权限提升章节会详解,常用: CVE-2016-5195 CVE-2019-16884 CVE-2021-3493 CVE-2021-22555 CVE-2022-0492 CVE-2022-0847 CVE-2022-23222 Docker version = 18.09.2 RunC version = 1.0-rc6 1、安装docker对应版本 2、启动环境测试: 3、编译修改后EXP后等待管理进入执行 https://github.com/Frichetten/CVE-2019-5736-PoC 还有

    2024年02月08日
    浏览(34)
  • k8s etcd 简介

    Etcd是CoreOS基于Raft协议开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。 如,Etcd也可以作为微服务的注册中心,比如SpringCloud也基于ETCD实现了注册中心功能,可以替代earka,具体参考:Spring Cloud Etcd 在分布式系统中,如何

    2024年02月10日
    浏览(30)
  • k8s之etcd

            etcd 是云原生架构中重要的基础组件。有如下特点: 简单:安装配置简单,而且提供了 HTTP API 进行交互,使用也很简单 键值对存储:将数据存储在分层组织的目录中,如同在标准文件系统中 监测变更:监测特定的键或目录以进行更改,并对值的更改做出反应 安

    2024年04月24日
    浏览(13)
  • 37.云原生之springcloud+k8s+GitOps+istio+安全实践

    云原生专栏大纲 安装gitlab,将https://gitee.com/zhouwei1996/spring-cloud-bookinfo.git迁移至gitlab gitlab中创建全局变量,如镜像仓库账号密码,保证gitlab-ci.yaml中内容安全 共享runner创建,获取token如下:glrt-wfzAecJmszsZb3GorS8J 安装gitlab-runner,参考:22.云原生之GitLab CICD实战及解析 修改ConfigM

    2024年03月22日
    浏览(58)
  • k8s中部署etcd集群

            Etcd是一个高可用的 、 开源的、分布式的Key/value存储系统 , 提供共享配置、服务的注册和发现、数据TTL失效、数据改变监视、多值、目录监听、分布式原子锁操作等功能 。 通常,k8s使用etcd进行数据存储,本文将部署etcd集群用做应用的存储。 一、前提         部

    2024年02月08日
    浏览(28)
  • 【K8S系列】深入解析etcd

    时间永远是旁观者,所有的过程和结果,都需要我们自己去承担。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级论点 蓝色 :用来标记二级论点 Kubernetes (k8s) 是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下etcd。 希

    2023年04月17日
    浏览(15)
  • K8s 内存泄漏处理方法

    问题描述: 产生的所有文件如下: runc Kubelet 替换前的文件 检查kmem是否关闭前需要将此节点的pod杀掉重启或者重启服务器,当结果为0时成功 [root@k8s-master ~]# cat /sys/fs/cgroup/memory/kubepods/burstable/memory.kmem.usage_in_bytes [root@k8s-master ~]# cat /sys/fs/cgroup/memory/kubepods/memory.kmem.slabinfo 12. 经

    2024年02月13日
    浏览(21)
  • 【云原生-K8s】镜像漏洞安全扫描工具Trivy部署及使用

    基础描述 Trivy是一个开源的容器镜像漏洞扫描器,可以扫描常见的操作系统和应用程序依赖项的漏洞。它可以与Docker和Kubernetes集成,帮助用户在构建和部署容器镜像时发现安全漏洞。Trivy支持多种漏洞数据库,包括Red Hat、Debian、Alpine等,可以根据用户的需求进行配置。Trivy还

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包