Kube-apiserver

API Server是k8s control panel中的一个组件,下游与etcd(k8s数据库)通讯,通过kubelet控制每个节点的行为,上游露出API供pod内部编程挪用和管理员从外部通过kubectl挪用。

API Server默认支持8080免鉴权端口(已被最新k8s默认设置禁用)以及6443鉴权端口。因K8s自己的设置欠妥、鉴权欠妥导致API Server直接被攻破案例可参考:《K8s 6443批量入侵观察》。

除此之外,一种常见的行使路径是攻击者通过营业应用(如web rce)攻入pod,在pod中寻找到高权限的service account并与API Server举行横向移动。

手动组织kubectl请求

某些情况下我们攻破的pod是一个缩减的容器环境,没有kubectl curl等常见下令,此时与api-server通讯的方式有三种:1)植入kubectl 2)署理流量 3)手工组织http请求与apiserver通讯。

针对pod内部无依赖直接与apiserver通讯的场景,已经集成在CDK 的tool模块中,通过kcurl下令与apiserver举行交互,无内陆环境依赖。

,

欧博手机版下载

欢迎进入欧博手机版下载(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,
  • https://github.com/cdk-team/CDK/wiki/Tool:-kcurl

该下令支持通过 匿名接见、通过pod内置的service account token鉴权接见以及通过指定token文件鉴权三种通讯模式,通过手工指定url和post data向apiserver发包。

其中关键在于,若何把kubectl的下令翻译成对apiserver通讯的http包,这里提供两种方式:

假设我们要通过kubectl apply部署一个pod,yaml如下:

apiVersion: v1
kind: Pod
metadata:
  name: cdxy-test-2021
spec:
  containers:
  - image: ubuntu:latest
    name: container
    args:
    - "sleep"
    - "infinity"

在执行kubectl时,kubectl会把这个yaml组织成json,作为http请求的data,发往指定api的url, 这个历程可以在内陆预先通过--v=8抓取:

kubectl apply -f ubuntu.yaml --v=8

然后在攻入的pod中使用cdk kcurl重放:

cdk kcurl (anonymous|default|<token-path>) <method> <url> [<data>]

用该方式可以快速翻译所有kubectl的操作。除此之外针对yaml转json还可以使用kubectl create -f ubuntu.yaml --edit -o json 直接天生post data。

登录并阅读全文 Allbet Gaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:usdt支付接口(www.caibao.it):K8s渗透测试之kube-apiserver行使
发布评论

分享到:

usdt不用实名买入卖出(caibao.it):英国单日新增新冠确诊病例数创新高
1 条回复
  1. 电银付激活码
    电银付激活码
    (2021-02-12 00:04:47) 1#

    联博开奖网www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。很好嘛

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。